Build 4596 - March 2016

The following defects are resolved in this build.

NXPSR-11139 Allow for customization of named system colors through nexaweb-client.xml
NXPSR-11146Performance issue related to multiple request to load plugin jars by JVM classloader
NXPSR-11147

Add configuration to allow use of cache_version applet parameter

 

NXPSR-11139  Allow for customization of named system colors through nexaweb-client.xml

The color values for named system colors (e.g. WindowText, Highlight) can be redefined in nexaweb-client.xml.

A new section systemcolor-configuration has been added to define the system colors.

Color values can be hex values (e.g. #FF0000) or rgb strings (e.g. rgb(0,255,255).

 

For example,

The following configuration will redefine the color value for "Highlight" and introduce a new system color name "CustomSystem"

      <systemcolor-configuration>
              <systemColor name="Highlight" value="#FF0000"/>
             <systemColor name="CustomSystem" value="rgb(0,255,0)"/>
      </systemcolor-configuration>

 

NXPSR-11147  Add configuration to allow use of cache_version applet parameter

By default, jars listed in the archive of a Java Applet are cached using their "Last-Modified" value. However, in cases of a server restart or a node in a cluster, the "Last-Modified" value does not always accurately reflect the version of the jar listed in the archive.    One solution for this is the use of the "cache_version" applet parameter.  The "cache_version" parameter contain a list of version numbers for the jars listed in the cache_archive. A cached jar will be updated if the version specified in the "cache_version" is greater than the one stored in cache.

For more details see https://docs.oracle.com/javase/1.5.0/docs/guide/plugin/developer_guide/applet_caching.html.

 

nexaweb-client.xml

Additional configuration support has been added to nexaweb-client.xml to enable the use of the "cache_version" applet parameter. Two new tags have been added to the <client-classpath>  to control how the  "cache_version" parameter is populated.

<use-cache-version>

The value for the <use-cache-version> tag is a boolean that indicates whether or not to setup the "cache_version" parameter. When set to true, a value for "cache_version" will be created with version numbers for the jars in the archive list for the applet. The archive jars for the applet include the platform jars for the client (e.g. detect.jar, Nexaweb-Client.jar), the pre-loaded plugin jars (i.e. WEB-INF/client/plugins/pre-loaded) and any jar specified in the <pre-loaded-in-applet-def> section.  This could include the RFClient.jar or any custom client jar used by the app.

<cache-version>

When specified the value of the <cache-version> tag will be used as the version number for all the jars specified in the archive list.   If the <cache-version> tag is not specified, the platform version including build number will be used to specify the version (e.g "4.5.49.4596").

For the jars specified in the <pre-loaded-in-applet-def> section, the <cache-version> value can be overridden by specifying the "cache-version" attribute of the <archive> tag for the jar. For example, the following will set the cache-version of the "HelloWorld.jar" to "4.2.26"  <archive name="HelloWorld-client.jar" path="/WEB-INF/client/lib/HelloWorld-client.jar" pack200Path="/WEB-INF/client/lib/HelloWorld-client.jar.pack.gz" cache-version="4.2.26"/> By specifying a cache-version separate from the version number used for the platform, would allow an archive to be updated without forcing the update the jars of the platform.

 

Examples

Use platform build version for all jars in the archive.

The following configuration will set the "cache_version" parameter for all jars in the archive to the platform version (e.g. 4.5.49.4596)

<client-classpath>
     <pre-loaded-in-applet-def> 
           <archive name="HelloWorld-client.jar" path="/WEB-INF/client/lib/HelloWorld-client.jar" pack200Path="/WEB-INF/client/lib/HelloWorld-client.jar.pack.gz"/>
     </pre-loaded-in-applet-def> 
    <use-cache-version>true</use-cache-version>
</client-classpath>

 

Specify version number to be used for all jars in the archive

The following configuration will set the "cache_version" parameter for all jars in the archive to the value of the <cache-version> tag "4.2.13".

<client-classpath>
     <pre-loaded-in-applet-def> 
           <archive name="HelloWorld-client.jar" path="/WEB-INF/client/lib/HelloWorld-client.jar" pack200Path="/WEB-INF/client/lib/HelloWorld-client.jar.pack.gz"/>
     </pre-loaded-in-applet-def> 
    <use-cache-version>true</use-cache-version>
    <cache-version>4.2.13</cache-version>
</client-classpath>

 

Use platform version for platform jars, while setting specific version for custom archive

The following configuration will set the "cache_version" parameter for the platform jars to the platform version (e.g. 4.5.49.4596) and the value for HelloWorld-client.jar to be "4.2.26".

<client-classpath>
     <pre-loaded-in-applet-def> 
           <archive name="HelloWorld-client.jar" path="/WEB-INF/client/lib/HelloWorld-client.jar" pack200Path="/WEB-INF/client/lib/HelloWorld-client.jar.pack.gz" cache-version="4.2.26"/>
     </pre-loaded-in-applet-def> 
    <use-cache-version>true</use-cache-version>
</client-classpath>

Use specified version for platform jars, and separate version number for custom archive

The following configuration will set the "cache_version" parameter for the platform jars to be "4.2.13" and the value for HelloWorld-client.jar to be "4.2.26".

<client-classpath>
     <pre-loaded-in-applet-def> 
           <archive name="HelloWorld-client.jar" path="/WEB-INF/client/lib/HelloWorld-client.jar" pack200Path="/WEB-INF/client/lib/HelloWorld-client.jar.pack.gz" cache-version="4.2.26"/>
     </pre-loaded-in-applet-def> 
    <use-cache-version>true</use-cache-version>
    <cache-version>4.2.13</cache-version>
</client-classpath>