Author: henrib Date: Tue Mar 14 17:34:26 2017 New Revision: 1786940 URL: http://svn.apache.org/viewvc?rev=1786940&view=rev Log: JEXL: Updated doc on the risks of implementing JEXL interfaces in user classes
Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/package.html Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/package.html URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/package.html?rev=1786940&r1=1786939&r2=1786940&view=diff ============================================================================== --- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/package.html (original) +++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/package.html Tue Mar 14 17:34:26 2017 @@ -75,16 +75,25 @@ </ul> <h3><a name="usage_note">Important note</a></h3> + <p> + We recommend you do <em>not</em> implement any JEXL interface with your own classes + and always favor composition over inheritance; + whenever JEXL exposes an interface, it is only meant to shield you from its own implementation. + It is possible that new methods are added from JEXL interfaces in minor versions to fix bugs + or add new features; this will break the source compatibility of any code that depends on such modified interfaces. + </p> The public API classes reside in the 2 packages: <ul> <li>org.apache.commons.jexl3</li> <li>org.apache.commons.jexl3.introspection</li> </ul> + <p> The following packages follow a "use at your own maintenance cost" policy; these are only intended to be used for extending JEXL. Their classes and methods are not guaranteed to remain compatible in subsequent versions. If you think you need to use directly some of their features or methods, it might be a good idea to check with the community through the mailing list first. + </p> <ul> <li>org.apache.commons.jexl3.parser</li> <li>org.apache.commons.jexl3.scripting</li>