|
• Avoid using APIs that are not marked as supported in the Javadoc.
• Avoid using APIs that are not a part of the Java SE library or that conflict with the Windchill+ guidelines.
• Transition your code from any deprecated API to a suitable alternate that is marked as supported.
For a list of deprecated APIs, see Deprecated API.
|
Element
|
Details
|
Error Code
|
---|---|---|
Out-of-the-box (OOTB) files
|
Modifications to OOTB files, except the ones listed in Allowed Customization, are not allowed.
|
Modification to OOTB file or package
|
Windchill classes
|
Implementing or extending the following classes is not allowed:
• wt.templateutil.processor.DefaultTemplateProcessor
• wt.enterprise.BasicTemplateProcessor
• wt.enterprise.TemplateProcessor
• com.ptc.cat.gxt.client.AbstractEntryPoint
• wt.services.ServiceEventListenerAdapter
• com.infoengine.object.factory.AdapterWebject
• com.infoengine.SAK.ObjectWebject
• com.infoengine.SAK.ActionWebject
|
Use of unauthorized windchill class implementation
|
Java packages
|
• java.lang.reflect
• java.rmi
• java.lang.invoke
• java.sql
• java.nio.channels
• java.nio.file
|
Use of unauthorized Java packages
|
Java network calls
|
• TrustManager
• TrustManagerFactory
• X509TrustManager
• CertPathTrustManagerParameters
• HandshakeCompletedEvent
• HandshakeCompletedListener
|
Use of unauthorized Java packages
|
Database customization
|
• Custom modeled objects
• Database extensions for tables, stored procedures, triggers, and others
|
Unauthorized hard modelling
|
Custom UIs or customization of OOTB UIs
|
UIs built using the following:
• OOTB JavaServer Pages (.jsp)
• AngularJS
• GWT
• Template processor
Use MVC Builders for building UIs.
|
Use of unauthorized JSP tags or AngularJS
|
Overwriting OOTB UI, actions, services
|
Create custom UIs using actions and action models. For more information, see Windchill Action Framework.
|
Modification to OOTB file or package
|
Third-party libraries
|
Third-party libraries, including OOTB third-party libraries, are not allowed during customization. However, there are a few exceptions. See Allowed Customization for information on allowed third-party libraries.
|
Use of unauthorized third-party libraries
|
Access to server command line
|
Customization that requires access to the command line on the server is not allowed.
|
Use of main method
|
Remote file server customization
|
Example: Custom content virus scanner
|
|
JDBC access to Windchill database
|
Use only Windchill supported APIs to connect to and query the Windchill database.
|
Use of unauthorized Java packages
|
JNDI connection to LDAP user store
|
LDAP is not supported.
|
The External System Integration category in Windchill Performance Advisor displays Adapter Integration.
|
Info*Engine
|
• Custom Info*Engine tasks or webjects
• Custom Info*Engine web services
• Custom Info*Engine adapters
Use Windchill REST Services to fetch Windchill data for generating reports and other requirements.
|
Unauthorized hard modelling
Use of unauthorized windchill class implementation
|
JNI customization
|
Native API calls are not allowed.
|
Use of unsecure code
|
Annotations
|
• com.ptc.windchill.annotations.metadata.GenAsBinaryLink
• com.ptc.windchill.annotations.metadata.GenAsDatastoreArray
• com.ptc.windchill.annotations.metadata.GenAsDatastoreSequence
• com.ptc.windchill.annotations.metadata.GenAsDatastoreStruct
• com.ptc.windchill.annotations.metadata.GenAsObjectMappable
• com.ptc.windchill.annotations.metadata.GenAsPersistable
• com.ptc.windchill.annotations.metadata.GenAsPrimitiveType
• com.ptc.windchill.annotations.metadata.GenAsUnPersistable
• com.infoengine.object.factory.WebjectDef
|
Unauthorized hard modelling
|
JSP Tag Classes
|
• com.ptc.core.components.tags.components.DescribeTableTag
• com.ptc.core.components.tags.components.DescribeColumnTag
• com.ptc.core.components.tags.components.SetComponentPropertyTag
• com.ptc.core.components.tags.components.GetModelTag
• com.ptc.core.components.tags.components.DescribeTableTreeTag
• com.ptc.core.components.tags.components.SetTablePluginTag
• com.ptc.core.components.tags.components.AddServiceArgumentTag
• com.ptc.core.components.tags.components.DescribeStatusGlyphTag
• com.ptc.core.components.tags.components.DescribeInfoPageTag
• com.ptc.core.components.tags.components.AddPropertyPanelDescriptorTag
• com.ptc.core.components.tags.section508.RenderAccessibilityLinkTag
• com.ptc.core.components.tags.components.ExcludeColumnTag
• com.ptc.core.components.tags.components.DescribePropertyPanelTag
• com.ptc.core.components.tags.core.EnableCorePlatformTag
|
Use of unauthorized JSP tags or AngularJS
|