Changes to Gosu code that accesses Java API version 7.0 types

The Guidewire Java API version 7.0 remains deprecated but available. While your legacy code works in this release, Guidewire strongly recommends that you upgrade your Java code to use the version 9.0 API to avoid future upgrade issues.

Additionally, any Gosu code that accessed Java code that used the Java API version 7.0 was upgraded automatically to accommodate different default behavior. The result of the automatic upgrade is the same run time behavior as in 7.0 and 8.0.

In previous releases, PolicyCenter had two implicit behaviors when calling Java code that used the Java API version 7.0:

  • For function arguments or return values, Gosu implicitly converted entity types to the external entities through a proxy.
  • For function arguments or return values, Gosu implicitly cloned any collections.

Both behaviors no longer occur, so any code that used the Java API version 7.0 requires explicit conversion of entity types and explicit collection cloning. For existing code that you have not yet converted to Java API version 9.0, an automatic upgrade step converts any affected function calls. Your code is replaced by code that does those actions explicitly rather than implicitly. Although the code may be harder to read after conversion, the run time behavior is the same as in version 7.0 and 8.0. If you need to modify your code, Guidewire recommends upgrading your code to use the Java API version 9.0.

The configuration upgrade tools find all method calls to libraries and classes in the plugin directories that indicate the Guidewire Java API version 7.0. These method calls correspond to method calls on Java types that were defined in Java classes and libraries within plugin directories with paths that do not include /basic/.

The directories that trigger the code upgrade are:

  • PolicyCenter/modules/configuration/plugins/PLUGIN_DIR/lib
  • PolicyCenter/modules/configuration/plugins/PLUGIN_DIR/classes

The PLUGIN_DIR value represents a plugin directory as specified for that plugin implementation in the Studio Plugins editor. For use with general Gosu code not associated with a plugin, PLUGIN_DIR has the value Gosu. For code that applies to multiple plugin directories, PLUGIN_DIR has the value shared.

For any Gosu code that calls methods on those types, any Gosu in Studio is upgraded automatically.

After the upgrade to version 9.0 is complete, there is no behavior difference between the plugin directory subdirectory that has /basic/ in the path. See Changed location for Java plugin directories for non-osgi Java code.

Important: After you upgrade any Java code to the Guidewire Java API 9.0, you can remove any of the added conversion code. However, remember that the behavior of collection is different in 9.0, because collections are not cloned as they were in the 7.0 version of the API. Before moving code to production, audit any related code that might be affected by this change in collection behaviors.