Customization Best Practices
SDL recommends two high-level steps for customizations.
For more in-depth information on these topics, refer to Architecture Overview.
- Step 1: Determine the Best Customization Approach
The overall approach to customization has short-term and long-term impact. There are two overall approaches to customizing Contenta Web. This topic explains the pros and cons of each one. - Step 2: Isolate Customizations to Delivered Code
SDL has several recommendations for making customizations to delivered CW user interfaces and code. - Differences in Contenta Web Files
Between major releases of Contenta Web, SDL recommends checking the differences in all files that are delivered with ones that a developer might have customized. - Merge Changes into SDL-Delivered Code
If you isolate customizations to delivered code, it is simpler and more reliable to merge custom changes into any delivered files. The developer is more familiar with his/her own code and is more careful about merging his/her code into foreign code. It is easier to miss a small but significant SDL change if a merge is attempted the other way. - Multi-Threaded Approach
Many of the Contenta Web views consist of multiple panes which means that multiple threads can be competing for access to the Contenta Server process, the Portal. - Customization Considerations with Multi-threading
Any developer creating tools for Contenta Web must consider the need for transaction synchronization if tools use multiple panes or have multiple threads. By default, multiple panes imply multiple threads. - Error Handling
When used from Java/JSP, Contenta throws exceptions when errors occur. The exceptions contain information about the error that occurred. SDL makes the following recommendations regarding error handling in custom CW code: - CW and Contenta API Memory Management
CW is a cross-platform application that runs on both Windows and UNIX and uses the Contenta API. On Windows, the Contenta API is COM-based. For Java applications (e.g., CW), the following guidelines must be followed: