Extension Mechanisms

The removal of source code from the areas of key functionality referred to above has resulted in a change to the recommended approach to using extension mechanisms on customer projects. Previously, if customers wished to use the various application extension mechanisms (e.g. extension classes, subclass with and without replace, aggregation), they could search across the codebase to see where and how target classes were being invoked within application code. They could then make an assessment of the functional effects of the extension being considered.

From 6.0.3, customers will no longer have the source code for some areas of key functionality, and in addition a large number of APIs have been marked as Internal. The following section summarizes the change in recommended extensions practices for customer projects.

Note that this section only refers to restrictions on extending application artifacts. All extension mechanisms can continue to be used on customer-defined classes, and all such artifacts can of course be External in nature, and invoked from any other part of a customer implementation.

Important: This section just provides a high-level summary. Full details of which mechanisms are allowed on which class types from version 6.0.3 are provided in Discouraged Extension Mechanisms. Where mechanisms have been discouraged, this appendix will where appropriate recommend alternative mechanisms to be employed by customers.