Avoiding Upgrade Impacts
When developing on top of ThingWorx Utilities, steps can be taken to avoid issues when upgrading to a newer release in the future. Depending on the updates that are provided in future releases, you may need to ensure that custom code and objects are compatible with the updates made to ThingWorx Utilities. To avoid upgrade issues, we recommend the following:
Resource Providers
• When extending the ThingWorx Utilities ontology to support new domains, avoid modeling specific resource types, such as Customer and Contact. Instead, model the capabilities that are provided by these resources, like Addressable and Contactable.
• Java-based thing templates should not be modified in the ThingWorx Composer. To prevent a Java-based thing template from being modified in the ThingWorx Composer, ensure that the thing template is set to be non-editable when it is imported as part of an extension.
Capabilities
• To avoid naming conflicts, the field name of a capability data shape should contain the prefix of a capability. For example, the Contactable capability has field names such as ContactablePhoneNumber and ContactableEmail instead of PhoneNumber or Email.
• To prevent upgrade impacts due to future changes to any ontology extension you create, the ThingWorx entities that make up the capabilities that are part of your ontology extension (for example, the thing shapes and data shapes) should be set to be non-editable when imported through an extension.