This is an automated email from the ASF dual-hosted git repository. henrib pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-jexl.git
The following commit(s) were added to refs/heads/master by this push: new 590ffbbb JEXL: prepare 3.5.0 RC2; 590ffbbb is described below commit 590ffbbb6de5a7698c3d5aa1d202e569ae72454f Author: Henrib <hbies...@gmail.com> AuthorDate: Sat Apr 12 10:57:15 2025 +0200 JEXL: prepare 3.5.0 RC2; --- RELEASE-NOTES.txt | 81 ++++------------------ .../java/org/apache/commons/jexl3/JexlBuilder.java | 8 +-- .../org/apache/commons/jexl3/JexlFeatures.java | 4 +- .../org/apache/commons/jexl3/JexlOperator.java | 6 +- .../java/org/apache/commons/jexl3/JexlOptions.java | 2 +- .../apache/commons/jexl3/internal/Operator.java | 2 +- .../commons/jexl3/introspection/JexlUberspect.java | 2 +- .../commons/jexl3/parser/JexlScriptParser.java | 2 +- .../jexl3/scripting/JexlScriptEngineFactory.java | 4 +- .../jexl3/scripting/JexlScriptEngineTest.java | 4 +- 10 files changed, 30 insertions(+), 85 deletions(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 54ca12cb..eff4c7c2 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,64 +1,6 @@ -Apache Commons JEXL 3.5.0 Release Notes - -Introduction ------------- - -Apache Commons JEXL is a library that facilitates the implementation of scripting features in - applications and frameworks written in Java. - -This is a feature and maintenance release. Java 8 or later is required. - -New features ------------- - -o JEXL-438: Allow parser factory specification. Thanks to Yair Lenga. -o JEXL-428: Make Comparable object high priority while comparing. Thanks to Xu Pengcheng. -o JEXL-427: Avoid coercing logical expressions to boolean. Thanks to Xu Pengcheng. -o JEXL-426: Enable pass-by-reference for Captured Variables. Thanks to Xu Pengcheng. -o Add and use CoercionException.CoercionException(String, Throwable). Thanks to Gary Gregory. - -Fixed Bugs ----------- - -o JEXL-436: The increment (decrement) operator does not check for null operand Thanks to Vincent Bussol. -o JEXL-435: Changed behavior of empty operator overloading Action. Thanks to Vincent Bussol. -o JEXL-434: The safe-access array operator is not safe. Thanks to Vincent Bussol. -o JEXL-433: Debugger does not accept empty return statement. Thanks to Vincent Bussol. -o JEXL-432: Namespace functors are not cleared when the classloader is updated. Thanks to Vincent Bussol. -o JEXL-431: Parse error with variables declared in a catch clause. Thanks to Vincent Bussol. -o JEXL-429: Ternary expression regression. Thanks to Shuo Geng. -o JEXL-425: Multiline format literals does not always return string. Thanks to Xu Pengcheng. -o Replace NumberParser use of Locale.ENGLISH with Locale.ROOT. Thanks to Gary Gregory. -o Pick up maven-antrun-plugin version from parent POM org.apache:apache. Thanks to Gary Gregory. - -Changes -------- - -o Bump org.apache.commons:commons-parent from 71 to 79 #279, #282, #287, #291, #295, #301. Thanks to Gary Gregory. -o Bump commons-logging:commons-logging from 1.3.2 to 1.3.5 #267, #280, #325. -o Bump org.codehaus.mojo:animal-sniffer-maven-plugin from 1.23 to 1.24 #266. -o Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0 #270, #274, #283. -o Bump org.ow2.asm:asm from 9.7 to 9.7.1 #294. Thanks to Dependabot, Gary Gregory. -o Bump com.google.code.gson:gson from 2.11.0 to 2.13.0 #321. Thanks to Dependabot, Gary Gregory. - - -Historical list of changes: https://commons.apache.org/proper/commons-jexl/changes.html - -For complete information on Apache Commons JEXL, including instructions on how to submit bug reports, -patches, or suggestions for improvement, see the Apache Commons JEXL website: - -https://commons.apache.org/proper/commons-jexl/ - -Download page: https://commons.apache.org/proper/commons-jexl/download_jexl.cgi - -Have fun! --Apache Commons Team - ------------------------------------------------------------------------------- - Apache Commons JEXL - Version 3.4.1 + Version 3.5.0 Release Notes @@ -73,7 +15,7 @@ constructs seen in shell-script or ECMAScript. Its goal is to expose scripting features usable by technical operatives or consultants working with enterprise platforms. -Java 8 is required. +This is a feature and maintenance release. Java 8 or later is required. Historical list of changes: https://commons.apache.org/proper/commons-jexl/changes-report.html @@ -110,6 +52,7 @@ New Features in 3.5.0: * JEXL-428: Make Comparable object high priority while comparing * JEXL-427: Avoid coercing logical expressions to boolean * JEXL-426: Enable pass-by-reference for Captured Variables +o Add and use CoercionException.CoercionException(String, Throwable). Thanks to Gary Gregory. Bugs Fixed in 3.5.0: ==================== @@ -121,16 +64,18 @@ Bugs Fixed in 3.5.0: * JEXL-431: Parse error with variables declared in a catch clause * JEXL-429: Ternary expression regression * JEXL-425: Multiline format literals does not always return string +o Replace NumberParser use of Locale.ENGLISH with Locale.ROOT. Thanks to Gary Gregory. +o Pick up maven-antrun-plugin version from parent POM org.apache:apache. Thanks to Gary Gregory. -Changes in 3.4.1: +Changes in 3.5.0: ================= -o Replace NumberParser use of Locale.ENGLISH with Locale.ROOT -o Bump org.apache.commons:commons-parent from 71 to 78 -o Bump commons-logging:commons-logging from 1.3.2 to 1.3.4 -o Bump org.codehaus.mojo:animal-sniffer-maven-plugin from 1.23 to 1.24 -o Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0 -o Bump org.hamcrest:hamcrest from 2.2 to 3.0 -o Bump org.ow2.asm:asm from 9.7 to 9.7.1 +o Bump org.apache.commons:commons-parent from 71 to 79 #279, #282, #287, #291, #295, #301. Thanks to Gary Gregory. +o Bump commons-logging:commons-logging from 1.3.2 to 1.3.5 #267, #280, #325. +o Bump org.codehaus.mojo:animal-sniffer-maven-plugin from 1.23 to 1.24 #266. +o Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0 #270, #274, #283. +o Bump org.ow2.asm:asm from 9.7 to 9.7.1 #294. Thanks to Dependabot, Gary Gregory. +o Bump com.google.code.gson:gson from 2.11.0 to 2.13.0 #321. Thanks to Dependabot, Gary Gregory. + ======================================================================================================================== Release 3.4 diff --git a/src/main/java/org/apache/commons/jexl3/JexlBuilder.java b/src/main/java/org/apache/commons/jexl3/JexlBuilder.java index 5567108b..0bb2440e 100644 --- a/src/main/java/org/apache/commons/jexl3/JexlBuilder.java +++ b/src/main/java/org/apache/commons/jexl3/JexlBuilder.java @@ -280,7 +280,7 @@ public class JexlBuilder { /** * Gets the Jexl script parser factory the engine will use. * @return the cache factory - * @since 3.4.1 + * @since 3.5.0 */ public Supplier<JexlScriptParser> parserFactory() { return this.parserFactory; @@ -291,7 +291,7 @@ public class JexlBuilder { * * @param factory the function to produce a cache. * @return this builder - * @since 3.4.1 + * @since 3.5.0 */ public JexlBuilder parserFactory(final Supplier<JexlScriptParser> factory) { this.parserFactory = factory; @@ -493,7 +493,7 @@ public class JexlBuilder { * Is lexical scope enabled? * @see JexlOptions#isLexical() * @return whether lexical scope is enabled - * @deprecated 3.4.1 + * @deprecated 3.5.0 */ @Deprecated public boolean lexical() { @@ -516,7 +516,7 @@ public class JexlBuilder { * Checks whether lexical shading is enabled. * @see JexlOptions#isLexicalShade() * @return whether lexical shading is enabled - * @deprecated 3.4.1 + * @deprecated 3.5.0 */ @Deprecated public boolean lexicalShade() { diff --git a/src/main/java/org/apache/commons/jexl3/JexlFeatures.java b/src/main/java/org/apache/commons/jexl3/JexlFeatures.java index c6afc783..e5df760d 100644 --- a/src/main/java/org/apache/commons/jexl3/JexlFeatures.java +++ b/src/main/java/org/apache/commons/jexl3/JexlFeatures.java @@ -593,7 +593,7 @@ public final class JexlFeatures { * </p> * @param flag true to enable, false to disable * @return this features instance - * @since 3.4.1 + * @since 3.5.0 */ public JexlFeatures namespaceIdentifier(final boolean flag) { setFeature(NS_IDENTIFIER, flag); @@ -872,7 +872,7 @@ public final class JexlFeatures { /** * Is namespace identifier syntax enabled? * @return true if namespace identifier syntax is enabled, false otherwise - * @since 3.4.1 + * @since 3.5.0 */ public boolean supportsNamespaceIdentifier() { return getFeature(NS_IDENTIFIER); diff --git a/src/main/java/org/apache/commons/jexl3/JexlOperator.java b/src/main/java/org/apache/commons/jexl3/JexlOperator.java index 9d55c802..81774f2f 100644 --- a/src/main/java/org/apache/commons/jexl3/JexlOperator.java +++ b/src/main/java/org/apache/commons/jexl3/JexlOperator.java @@ -380,7 +380,7 @@ public enum JexlOperator { * Marker for side effect. * <br>Returns this from 'self*' overload method to let the engine know the side effect has been performed and * there is no need to assign the result. - * @deprecated 3.4.1 + * @deprecated 3.5.0 */ ASSIGN("=", null, null), @@ -431,7 +431,7 @@ public enum JexlOperator { /** * Compare overload as in compare(x, y). * <br><strong>Method:</strong> {@code boolean compare(L x, R y);}. - * @since 3.4.1 + * @since 3.5.0 */ COMPARE("<>", "compare", 2), @@ -553,7 +553,7 @@ public enum JexlOperator { * <p>This also allows reusing the core logic when extending the applicative type-system; for * instance, implementing a Comparator class that calls compare * (<code>operator.tryOverload(this, JexlOperator.COMPARE, left, right)</code>, etc.</p> - * @since 3.4.1 + * @since 3.5.0 */ public interface Uberspect extends JexlArithmetic.Uberspect { /** diff --git a/src/main/java/org/apache/commons/jexl3/JexlOptions.java b/src/main/java/org/apache/commons/jexl3/JexlOptions.java index bcc8c93b..9c9a81a7 100644 --- a/src/main/java/org/apache/commons/jexl3/JexlOptions.java +++ b/src/main/java/org/apache/commons/jexl3/JexlOptions.java @@ -227,7 +227,7 @@ public final class JexlOptions { * an expression like (3 "" 4 "" 5) will evaluate to true. If not, it will evaluate to 5. * To preserve strict compatibility with 3.4, set the flag to true. * @return true if short-circuit logicals coerce their result to boolean, false otherwise - * @since 3.4.1 + * @since 3.5.0 */ public boolean isBooleanLogical() { return isSet(BOOLEAN_LOGICAL, flags); diff --git a/src/main/java/org/apache/commons/jexl3/internal/Operator.java b/src/main/java/org/apache/commons/jexl3/internal/Operator.java index e4abbd33..81a3a6a8 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/Operator.java +++ b/src/main/java/org/apache/commons/jexl3/internal/Operator.java @@ -552,7 +552,7 @@ public final class Operator implements JexlOperator.Uberspect { /** * Special handling of overloads where another attempt at finding a method may be attempted. - * <p>As of 3.4.1, only the comparison operators attempting to use compare() are handled.</p> + * <p>As of 3.5.0, only the comparison operators attempting to use compare() are handled.</p> * @param operator the operator * @param args the arguments * @return an instance or null diff --git a/src/main/java/org/apache/commons/jexl3/introspection/JexlUberspect.java b/src/main/java/org/apache/commons/jexl3/introspection/JexlUberspect.java index 8b0db316..8d88bdc8 100644 --- a/src/main/java/org/apache/commons/jexl3/introspection/JexlUberspect.java +++ b/src/main/java/org/apache/commons/jexl3/introspection/JexlUberspect.java @@ -211,7 +211,7 @@ public interface JexlUberspect { * * @param arithmetic the arithmetic instance * @return an operator uberspect instance - * @since 3.4.1 + * @since 3.5.0 */ default JexlOperator.Uberspect getOperator(final JexlArithmetic arithmetic) { return null; diff --git a/src/main/java/org/apache/commons/jexl3/parser/JexlScriptParser.java b/src/main/java/org/apache/commons/jexl3/parser/JexlScriptParser.java index 9b443a16..ce71484a 100644 --- a/src/main/java/org/apache/commons/jexl3/parser/JexlScriptParser.java +++ b/src/main/java/org/apache/commons/jexl3/parser/JexlScriptParser.java @@ -23,7 +23,7 @@ import org.apache.commons.jexl3.internal.Scope; /** * The interface that produces a JEXL script AST from a source. - * @since 3.4.1 + * @since 3.5.0 */ public interface JexlScriptParser { /** diff --git a/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngineFactory.java b/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngineFactory.java index 6e108a58..243d88fc 100644 --- a/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngineFactory.java +++ b/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngineFactory.java @@ -53,7 +53,7 @@ public class JexlScriptEngineFactory implements ScriptEngineFactory { @Override public String getEngineVersion() { - return "3.4"; // ensure this is updated if function changes are made to this class + return "3.5"; // ensure this is updated if function changes are made to this class } @Override @@ -68,7 +68,7 @@ public class JexlScriptEngineFactory implements ScriptEngineFactory { @Override public String getLanguageVersion() { - return "3.4"; // this should be derived from the actual version + return "3.5"; // this should be derived from the actual version } @Override diff --git a/src/test/java/org/apache/commons/jexl3/scripting/JexlScriptEngineTest.java b/src/test/java/org/apache/commons/jexl3/scripting/JexlScriptEngineTest.java index ff54d116..1bea8d8b 100644 --- a/src/test/java/org/apache/commons/jexl3/scripting/JexlScriptEngineTest.java +++ b/src/test/java/org/apache/commons/jexl3/scripting/JexlScriptEngineTest.java @@ -191,9 +191,9 @@ public class JexlScriptEngineTest { void testScriptEngineFactory() { final JexlScriptEngineFactory factory = new JexlScriptEngineFactory(); assertEquals("JEXL Engine", factory.getParameter(ScriptEngine.ENGINE)); - assertEquals("3.4", factory.getParameter(ScriptEngine.ENGINE_VERSION)); + assertEquals("3.5", factory.getParameter(ScriptEngine.ENGINE_VERSION)); assertEquals("JEXL", factory.getParameter(ScriptEngine.LANGUAGE)); - assertEquals("3.4", factory.getParameter(ScriptEngine.LANGUAGE_VERSION)); + assertEquals("3.5", factory.getParameter(ScriptEngine.LANGUAGE_VERSION)); assertNull(factory.getParameter("THREADING")); assertEquals(NAMES, factory.getParameter(ScriptEngine.NAME)); assertEquals(EXTENSIONS, factory.getExtensions());