Considerations While Upgrading ThingWorx Extensions
Use the following best practices while upgrading the extensions:
Upgrading to ThingWorx 8.4 and Later Releases
JSON libraries are not shipped with ThingWorx 8.4 and later releases. If your extension projects require the JSON libraries, update the build.gradle file as below:
Add the following code in the dependencies block:
compile group: 'org.json', name: 'json', version: '20090211'
Add the following code anywhere in the gradle file:
repositories {
jcenter()
}
Upgrade Java-Backed Extensions
While upgrading Java-backed extensions, use the following best practices:
When you upgrade a Java-backed extension by importing a new version, restart the ThingWorx Platform. When the ThingWorx Platform restarts, the extension ZIP file is placed in a queue:
/ThingworxStorage/extensions/upgradequeue
After you restart the Tomcat server, ThingWorx tries to import the extension ZIP files in the queue.
Check the application logs after restarting the ThingWorx Platform to ensure that all the queued extensions are successfully imported.
In-place upgrades of complex Java-backed extensions are possible. However, a Tomcat class loader does not allow in-place upgrades of Java-backed extensions in the following scenarios:
When you add a new Java-backed entity to your JAR
When you delete or rename a Java-backed entity in your JAR
In such cases, consider the following workaround:
You can create new entities if their services are implemented only in JavaScript.
It is recommended to create a new extension for the new functionality and further create a separate JAR file.
An Updated Extension Retains the Functionality of an Older Version
The loaded classes from the previous version cause the extension to retain the functionality of the previous version. Restart Tomcat to load the updated extension.
Was this helpful?