Author: ggregory
Date: Fri Nov 14 13:45:01 2025
New Revision: 80709
Log:
Publish commons-jexl3 3.6.0 Release
Added:
release/commons/jexl/binaries/commons-jexl-3.6.0-bin.tar.gz
- copied unchanged from r80708,
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.tar.gz
release/commons/jexl/binaries/commons-jexl-3.6.0-bin.tar.gz.asc
- copied unchanged from r80708,
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.tar.gz.asc
release/commons/jexl/binaries/commons-jexl-3.6.0-bin.tar.gz.sha512
- copied unchanged from r80708,
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.tar.gz.sha512
release/commons/jexl/binaries/commons-jexl-3.6.0-bin.zip
- copied unchanged from r80708,
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.zip
release/commons/jexl/binaries/commons-jexl-3.6.0-bin.zip.asc
- copied unchanged from r80708,
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.zip.asc
release/commons/jexl/binaries/commons-jexl-3.6.0-bin.zip.sha512
- copied unchanged from r80708,
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.zip.sha512
release/commons/jexl/source/commons-jexl-3.6.0-src.tar.gz
- copied unchanged from r80708,
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.tar.gz
release/commons/jexl/source/commons-jexl-3.6.0-src.tar.gz.asc
- copied unchanged from r80708,
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.tar.gz.asc
release/commons/jexl/source/commons-jexl-3.6.0-src.tar.gz.sha512
- copied unchanged from r80708,
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.tar.gz.sha512
release/commons/jexl/source/commons-jexl-3.6.0-src.zip
- copied unchanged from r80708,
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.zip
release/commons/jexl/source/commons-jexl-3.6.0-src.zip.asc
- copied unchanged from r80708,
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.zip.asc
release/commons/jexl/source/commons-jexl-3.6.0-src.zip.sha512
- copied unchanged from r80708,
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.zip.sha512
Replaced:
release/commons/jexl/RELEASE-NOTES.txt
- copied unchanged from r80708,
dev/commons/jexl/3.6.0-RC2/RELEASE-NOTES.txt
Deleted:
dev/commons/jexl/3.6.0-RC2/RELEASE-NOTES.txt
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.tar.gz
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.tar.gz.asc
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.tar.gz.sha512
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.zip
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.zip.asc
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.zip.sha512
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.tar.gz
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.tar.gz.asc
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.tar.gz.sha512
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.zip
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.zip.asc
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.zip.sha512
Copied: release/commons/jexl/RELEASE-NOTES.txt (from r80708,
dev/commons/jexl/3.6.0-RC2/RELEASE-NOTES.txt)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/jexl/RELEASE-NOTES.txt Fri Nov 14 13:45:01 2025
(r80709, copy of r80708, dev/commons/jexl/3.6.0-RC2/RELEASE-NOTES.txt)
@@ -0,0 +1,781 @@
+
+Apache Commons JEXL 3.6.0 Release Notes
+---------------------------------------
+
+The Apache Commons JEXL team is pleased to announce the release of Apache
Commons JEXL 3.6.0.
+
+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-440: Switch statement & expressions.
+
+Fixed Bugs
+----------
+
+o JEXL-448: Engines caching misses local variables handling and global
eviction capability.
+o JEXL-447: Regression in script-defined functions. Thanks to William Price.
+o JEXL-446: ClassTool module inspection is too strict. Thanks to William
Price.
+o JEXL-442: Local variables are not resolved in interpolation string
expression. Thanks to Xu Pengcheng.
+o JEXL-441: Tokenization error if "\n" in template expression. Thanks to Xu
Pengcheng.
+o JEXL-439: When using reference capture, incorrect scoping when local
variable redefines a captured symbol. Thanks to Xu Pengcheng.
+o JEXL-437: Semicolons not actually optional between function calls on
separate lines. Thanks to William Price.
+o
org.apache.commons.jexl3.internal.introspection.AbstractExecutor.initMarker(Class,
String, Class...) throws IllegalArgumentException instead of Exception. Thanks
to Gary Gregory.
+o Reuse BigInteger constants instead of creating new instances in
JexlArithmetic.toBigInteger(Object). Thanks to Gary Gregory.
+
+Changes
+-------
+
+o Bump org.apache.commons:commons-parent from 81 to 91 #344, #368,
#372. Thanks to Gary Gregory, Dependabot.
+o Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.19.0 #355.
Thanks to Gary Gregory, Dependabot.
+o Bump com.google.code.gson:gson from 2.13.1 to 2.13.2 #371. Thanks
to Gary Gregory, Dependabot.
+
+
+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.5.0
+ Release Notes
+
+
+INTRODUCTION:
+=============
+
+JEXL is a library intended to facilitate the implementation of dynamic and
scripting features in
+applications and frameworks written in Java.
+
+JEXL implements an Expression Language based on some extensions to the JSTL
Expression Language supporting most of the
+constructs seen in shell-script or ECMAScript.
+
+Its goal is to expose scripting features usable by technical operatives or
consultants working with enterprise platforms.
+
+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
+
+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
+
+========================================================================================================================
+Release 3.6.0
+========================================================================================================================
+
+Version 3.6.0 is a minor release.
+
+Compatibility with previous releases
+====================================
+Version 3.6.0 is source and binary compatible with 3.5.
+
+
+What's new in 3.6.0:
+====================
+Switch / case statements and expressions have been added to JEXL.
+
+New Features in 3.6.0:
+======================
+* JEXL-440: Switch/case statement and expression
+
+Bugs Fixed in 3.6.0:
+====================
+* JEXL-447: Regression in script-defined functions
+* JEXL-446: ClassTool module inspection is too strict
+* JEXL-442: Local variables are not resolved in interpolation string
expression
+* JEXL-441: Tokenization error if "\n" in template expression.
+* JEXL-439: When using reference capture, incorrect scoping when local
variable redefines a captured symbo
+* JEXL-437: Semicolons actually not optional between function calls on
separate lines
+
+
+========================================================================================================================
+Release 3.5.0
+========================================================================================================================
+
+Version 3.5.0 is a minor release.
+
+Compatibility with previous releases
+====================================
+Version 3.5.0 is source and binary compatible with 3.4.
+
+
+What's new in 3.5.0:
+====================
+Operator overloading has been enhanced so that overloading compare() will
benefit all comparison operators.
+A feature flag has been introduced to allow pass-by-reference of captured
variables closely mimicking
+EcmaScript behavior.
+
+New Features in 3.5.0:
+======================
+* JEXL-438: Allow parser factory specification.
+* 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:
+====================
+* JEXL-436: The increment (decrement) operator does not check for null
operand
+* JEXL-435: Changed behavior of empty operator overloading
+* JEXL-434: The safe-access array operator is not safe
+* JEXL-433: Debugger does not accept empty return statement
+* JEXL-432: Namespace functors are not cleared when the classloader is
updated
+* 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.5.0:
+=================
+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
+========================================================================================================================
+
+Version 3.4 is a minor release.
+
+Compatibility with previous releases
+====================================
+Version 3.4 is source and binary compatible with 3.3.
+
+
+What's new in 3.4:
+==================
+Features and permissions are easier to define through new methods.
+Some new syntaxes are introduced (thus the new minor); try/catch/finally
(including with resources),
+an array-access safe navigation ((x?[y]), strict equality/inequality operators
(===, !==) and
+more permissive structured literals. See the JIRA tickets for more details.
+
+New Features in 3.4:
+====================
+* JEXL-423: Add support for instanceof / !instanceof
+* JEXL-422 Add strict equality (===) and inequality (!==) operators
+* JEXL-421: ArrayBuilder: array type should reflect common class of its
entries
+* JEXL-419: Add permission syntax to allow class/method/field
+* JEXL-418: Add try-catch-finally support
+* JEXL-408: Using JexlFeatures is tedious
+* JEXL-404: Support array-access safe navigation (x?[y])
+* JEXL-401: Captured variables should be read-only
+* JEXL-398: Allow 'trailing commas' or ellipsis while defining array, map
and set literals
+o Add Maven property project.build.outputTimestamp for build
reproducibility. Thanks to Gary Gregory.
+
+Bugs Fixed in 3.4:
+==================
+* JEXL-420: Error while comparing float and string value
+* JEXL-417: JexlArithmetic looses precision during arithmetic operator
execution
+* JEXL-416: Null-valued pragma throws NPE in 3.3
+* JEXL-415: Incorrect template eval result
+* JEXL-414: SoftCache may suffer from race conditions
+* JEXL-412: Ambiguous syntax between namespace function call and map
object definition.
+* JEXL-410: JexlFeatures: ctor does not enable all features
+* JEXL-409: Disable LEXICAL should disable LEXICAL_SHADE
+* JEXL-405: Recursive functions corrupt evaluation frame if reassigned
+* JEXL-403: Exception while evaluating template literal used in array
assignment in loop.
+* JEXL-402: parse failed with empty return value.
+o [StepSecurity] ci: Harden GitHub Actions #180. Thanks to
step-security-bot, Gary Gregory.
+o Guard logging calls. Thanks to PMD, Gary Gregory.
+o Deprecate SimpleNode.SimpleNode(Parser, int) in favor of
SimpleNode.SimpleNode(int). Thanks to PMD, Gary Gregory.
+o Deprecate JexlNode.JexlNode(Parser, int) in favor of
JexlNode.JexlNode(int). Thanks to PMD, Gary Gregory.
+
+Changes in 3.4:
+===============
+o Bump commons-parent from 67 to 69. Thanks to dependabot.
+o Bump github actions. Thanks to dependabot.
+o Bump commons-parent from 57 to 70. Thanks to Gary Gregory,
Dependabot.
+o Bump org.ow2.asm:asm from 9.5 to 9.7 #200, #242. Thanks to
dependabot.
+o Bump commons-logging from 1.2 to 1.3.2 #241, #255. Thanks to
Gary Gregory, Dependabot.
+o Bump com.google.code.gson:gson from 2.10.1 to 2.11.0 #258.
Thanks to Gary Gregory, Dependabot.
+
+========================================================================================================================
+Release 3.3
+========================================================================================================================
+
+Version 3.3 is a minor release.
+
+Compatibility with previous releases
+====================================
+Version 3.3 is source and binary compatible with 3.2.
+However, the default setting for permissions that determine which packages,
classes and methods are accessible
+to scripts has been reduced to a very narrow set. When migrating from previous
version of JEXL, this may result
+in breaking your application behavior ; this breaking change requires
remediation in your code.
+Despite the obvious inconvenience - our sincere apologies on the matter -, how
much functional and semantic power is
+accessible through scripts has a real impact on your application security and
stability ; that potential risk requires
+an informed review and conscious choice on your end.
+To mitigate the change, you can revert to the previous behavior with one line
of code (see JexlPermissions, JexlBuilder
+and JexlScriptEngine) or use this opportunity to reduce exposure. Whether
Files, URLs, networking, processes,
+class-loaders or reflection classes or whether loops or side effects are
accessible are part of your choice to make.
+
+What's new in 3.3:
+==================
+JEXL 3.3 brings the ability to configure permissions on libraries in the
manner pioneered
+with the @NoJexl annotation on source code. This is achieved through a crude
but light mechanism akin to
+a security manager that controls what JEXL can introspect and thus expose to
scripts.
+Used in conjunction with options (JexlOptions) and features (JexlFeatures),
the permissions (JexlPermissions)
+allow fine-tuning the end-user freedom and scripting integration through
syntactic and semantic sanitation.
+JEXL 3.3 also adds some syntactic (ECMAScript) features (let, const, =>, for,
...) to further reduce
+the skill set required to write scripts.
+
+New Features in 3.3:
+====================
+* JEXL-392: Enable namespace declaration based on scripts
+* JEXL-391: Improve in/=~ operator when arguments are arrays and
collections
+* JEXL-390: Pragmas should not be statements
+* JEXL-389: Improve parsing timings
+* JEXL-385: Support disabling fortran-style relational operators syntax
+* JEXL-382: Simplify grammar and lexical state management
+* JEXL-380: Multiple values per pragma key
+* JEXL-379: Allow new to use class identifier
+* JEXL-373: Add support for prefix/postfix increment/decrement operators
+* JEXL-372: Add support for 'standard' for loop
+* JEXL-369: Add 'let' and 'const' variable declarations
+* JEXL-367: Named function and fat-arrow (=>) lambda syntax
+* JEXL-366: Fail to evaluate string and number comparison
+* JEXL-365: Lambda expressions
+* JEXL-363: Allow retrieving captured variables in script
+* JEXL-360: Add missing bitshift operators ( >>, >>>, <<)
+* JEXL-359: Allow per-operator arithmetic handling of null arguments
+* JEXL-357: Configure accessible packages/classes/methods/fields
+
+Bugs Fixed in 3.3:
+==================
+* JEXL-386: Non-inheritable permissions on interfaces are ignored in an
inheritable sandbox
+* JEXL-384: Improve control over JexlArithmetic null argument handling
+* JEXL-378: Incremental operator and decremental operator do not honor the
side-effect flag
+* JEXL-376: Introspector captures methods on non-exported classes
(modules, java9+)
+* JEXL-375: Cannot access enums by their name when using sandbox
+* JEXL-374: No exception if dereferencing null object using safe(false)
and antish(false)
+* JEXL-371: Override of a protected method with public visibility is not
callable
+* JEXL-370: Cannot check if variable is defined using ObjectContext if the
value is null
+* JEXL-368: Namespace functor resolution is not cached
+* JEXL-364: Evaluator options not propagated in closures
+* JEXL-362: JexlInfo position reporting is off
+* JEXL-361: Null may be used as operand silently even in arithmetic
strict(true) mode
+* JEXL-354: #pragma does not handle negative integer or real literals
+* JEXL-353: Documentation error for not-in/not-match operator
+
+========================================================================================================================
+Release 3.2.1
+========================================================================================================================
+
+Version 3.2.1 is a maintenance release.
+
+Compatibility with previous releases
+====================================
+Version 3.2.1 is source and binary compatible with 3.2.
+
+Bugs Fixed in 3.2.1:
+==================
+* JEXL-352: Possible memory leak regarding parser jjtree nodes in JEXL 3.2
+* JEXL-351: JXLT Template fails when using sandboxing
+* JEXL-350: map[null] throws "unsolvable property" when a Sandbox is used
+
+========================================================================================================================
+Release 3.2
+========================================================================================================================
+
+Version 3.2 is a minor release.
+
+Compatibility with previous releases
+====================================
+Version 3.2 is binary compatible with 3.1. However, JEXL now requires Java 8
or above.
+
+Unfortunately, it is not strictly source compatible. This release does break
source compatibility by adding methods to existing
+interfaces and an abstract method to an abstract class. However, since these
interfaces and class are not expected to be implemented
+or derived by code external to the JEXL project, this compatibility break
should remain unnoticeable.
+It is nevertheless possible and we are sorry if it causes problems to any of
you.
+
+What's new in 3.2:
+==================
+* Lexical scoping for local variables and parameters allowing at parse and/or
runtime to reduce scripting errors and bugs and align with
+ known development languages best practice (C, Java, ...).
+* Interpolated strings in identifiers, as in x.`${prefix}_${suffix}` that in
many cases would be equivalent to
+ x[prefix + '_' + suffix] or x[`${prefix}_${suffix}`].
+* Safe-navigation mode and operator '?.' allowing lenient handling of
non-existent or null properties so that an expression
+ like 'x?.y?.z' would behave as 'x.y.z' in nominal execution and return null
instead of throwing an exception in error
+ cases. The safe() option on the builder enables the behavior making '.' and
'[...]' behave as '?.'.
+* A set of syntactic restrictions can be applied to scripts ranging from not
allowing side-effects to not allowing
+ loops enabling fine control over what end-users may be able to enter as
expressions/scripts.
+
+New Features in 3.2:
+====================
+* JEXL-344: Don't fill stack trace for JexlExpression#Return (to improve
performance)
+* JEXL-334: Remove offensive terminology from code and API
+* JEXL-333: Allow declaration of namespace within script
+* JEXL-317: Support script cancellation through less invasive API
+* JEXL-307: Variable redeclaration option
+* JEXL-295: Add unary plus operator
+* JEXL-292: Allow specifying custom Permissions class for Uberspect to be
used later by Introspector
+* JEXL-288: Annotation can not be specified for a standalone statement
+* JEXL-275: Allow safe navigation as option
+* JEXL-274: Handle soft and hard stack overflow
+* JEXL-273: Add do...while(...) loops
+* JEXL-264: Allow space, quote & double-quote in identifiers
+* JEXL-260: Automatically inject JexlContext in constructor call when
possible
+* JEXL-253: Permissions by super type in JexlSandbox
+* JEXL-252: Allow for interpolated strings to be used in property access
operators
+* JEXL-250: Safe navigation operator (?.)
+* JEXL-249: Java 1.8 as minimum supported version
+* JEXL-248: Allow range subexpression as an array property assignment
identifier
+* JEXL-243: Allow restricting available features in Script/Expressions
+* JEXL-238: Restrict getLiteralClass to a Number for NumberLiterals
+* JEXL-237: Ability to restrict usage of certain names when declaring
local variables
+* JEXL-236: Support CharSequence in size(), empty() and contains()
operators
+* JEXL-234: Extend application of operators startsWith and endsWith from
String to CharSequence types
+* JEXL-226: Add ?? operator support
+* JEXL-224: The ability to overload call() operator in customized
JexlArithmetic implementation
+* JEXL-212: Restrict usage of assignment statements in JexlExpression
+* JEXL-175: java.util.regex.Pattern creation operator (regex literals)
+
+Bugs Fixed in 3.2:
+==================
+* JEXL-349: Script valid in 3.0 no longer valid
+* JEXL-348: Parsing error when mixing namespaces with conditional
expressions
+* JEXL-347: Missing unsolvable property exception for reference when used
with equals
+* JEXL-346: namespace function syntax leads to strange error for "common
case" of ternary operator
+* JEXL-336: Escape some control characters
+* JEXL-331: Please document \uXXXX escape sequence
+* JEXL-330: JexlException.Parsing.getMessage() throws exception when
parse error is in long expression
+* JEXL-328: JXLT template scripts evaluation do not process pragmas
+* JEXL-327: map[null] does not work in assignment context
+* JEXL-326: Link to "JavaCC" on syntax reference page is broken
+* JEXL-325: Potential race-condition in NumberParser.toString()
+* JEXL-324: JexlEngine.createExpression("new()").getParsedText() throws
NPE
+* JEXL-323: Ant-style variables can throw exception when evaluated for
their value
+* JEXL-322: JXLT String literals cannot contain curly brace
+* JEXL-321: Empty do-while loop is broken
+* JEXL-320: "mvn test" fails with COMPILATION ERROR in
SynchronizedArithmetic.java on Java 11
+* JEXL-319: Apache project documentation gives instructions in subversion
+* JEXL-318: Annotation processing may fail in lexical mode
+* JEXL-315: JxltEngine literal string strings ending in \ $ or # throw
JxltEngine$Exception
+* JEXL-314: Comparison NULL values of variables NAME1.NAME2
+* JEXL-312: @NoJexl fails to disallow method call
+* JEXL-311: Jxlt template scripts fail using verbatim expressions
embedded in lambdas
+* JEXL-309: Line numbers are not correct when template report errors
+* JEXL-306: Ternary operator ? protects also its branches from resolution
errors
+* JEXL-305: Script debugger produces incorrect syntax
+* JEXL-304: Error parsing overview.limit.var
+* JEXL-303: Block syntax is broken
+* JEXL-302: JexlScript.getVariables returns strange values for array
access
+* JEXL-301: Array access operator does not fail on null object in
non-strict arithmetic mode
+* JEXL-300: Ant-ish variables should not use safe-access operator syntax
+* JEXL-299: Improve message error when method could not be found
+* JEXL-298: Unable to call 'empty' and 'size' member methods with
parameters
+* JEXL-296: Real literal in scientific format is not parsed without suffix
+* JEXL-291: Using sandbox prevents array-syntax lookup by number in Map
+* JEXL-290: Safe navigation fails on chained method calls
+* JEXL-289: Passing undeclared function parameter can overwrite a local
function variable
+* JEXL-287: Wrong resolution of local variables
+* JEXL-286: For statement without a body should update its variable
+* JEXL-285: For statement variable may seem unaffected by iteration
+* JEXL-282: Pragmas with antish names are broken
+* JEXL-281: MethodExecutor incorrectly tests for empty parameters list
+* JEXL-280: break/continue statements outside of the loop
+* JEXL-279: Null variables property access do not throw exceptions
+* JEXL-278: Ambiguous exceptions should point to actual statement
ambiguity
+* JEXL-272: Dereferencing null property not reported on method call
+* JEXL-271: Hoisted variable is lost when currying lambda
+* JEXL-270: Wrong Script$Curried creation when script.curry() method is
called inside script
+* JEXL-261: JexlEngine.setClassLoader(...) should reload namespaces that
are classes
+* JEXL-257: Function throwing IllegalArgumentException may be called twice
+* JEXL-246: Intermittent ambiguous method invocation when processing
assignOverload
+* JEXL-245: Engine in strict mode fails to fail on unsolvable variables
or properties
+* JEXL-244: Webapp classloader memory leaks
+* JEXL-241: NPE when script containing string interpolation executed in
multiple threads
+* JEXL-240: Unable to invoke a call operator using antish style variable
resolution
+* JEXL-231: Syntax for accessing List elements is not mentioned in docs
+* JEXL-230: List literal is not mentioned in docs
+* JEXL-227: JexlScriptEngineFactory.getEngineVersion() should return
actual version
+* JEXL-225: Incorrect invoking methods with ObjectContext
+
+There are no other changes.
+
+
+========================================================================================================================
+Release 3.1
+========================================================================================================================
+
+Version 3.1 is a minor release.
+
+Compatibility with previous releases
+====================================
+Version 3.1 is binary compatible with 3.0.
+
+However it is not source compatible, this release does break source
compatibility by adding methods to existing
+interfaces; these interfaces are however not expected to be implemented by
code external to the JEXL project.
+This compatibility break should remain hypothetical. It is nevertheless
possible and we are sorry if it causes problems
+to any of you.
+If you encounter this issue, besides continuing using JEXL 3.0, your code
likely delegates method calls to JEXL3 objects
+and you shall be able to continue doing so with these new methods.
+
+The three interfaces and methods are:
+
+1 - 'isCancellable()' in interface org.apache.commons.jexl3.JexlEngine$Options
+2 - 'callable(JexlContext)' in interface
org.apache.commons.jexl3.JexlExpression
+3 - 'getPragmas()' in interface org.apache.commons.jexl3.JxltEngine$Template
+
+What's new in 3.1:
+==================
+* Annotations syntax (@annotation) and processing capabilities.
+ Annotations in JEXL are 'meta-statements'; they allow to wrap the execution
of the JEXL statement in a user provided
+ caller; a typical example would be: ""@synchronized(x) x.someMethod();".
Annotations may be declared with zero or more
+ parameters. Annotation processing is implemented by providing a
JexlContext.AnnotationProcessor; its processAnnotation
+ method will call the annotated statement encapsulated in a Callable.
Annotation arguments are evaluated and passed
+ as arguments to processAnnotation.
+* Better support for script execution options, error handling and cancelling.
+* All operators can be overloaded.
+
+New Features in 3.1:
+====================
+* JEXL-222: The ability to declare indexed property getter/setter in
customized JexlArithmetic implementation
+* JEXL-219: Blacklist by default in sandbox
+* JEXL-216: Improve parsing concurrency in multithreaded environment
+* JEXL-211: Add callable method to JexlExpression interface
+* JEXL-201: Allow Interpreter to use live values from JexlEngine.Option
interface implemented by JexlContext
+* JEXL-198: JxltEngine Template does not expose pragmas
+* JEXL-197: Add annotations
+* JEXL-194: Allow synchronization on iterableValue in foreach statement
+
+Bugs Fixed in 3.1:
+==================
+* JEXL-221: Sporadic undefined property error caused by NPE at
MapGetExecutor.tryInvoke()
+* JEXL-217: Interpreter.getAttribute() raises exception in non-strict mode
when cached property resolver is used
+* JEXL-215: JexlEngine.createInfo() is redundantly called when debug and
caching is enabled leading to sub-optimal performance
+* JEXL-214: Redundant call of fillInStackTrace() in
JexlEngine.createInfo() ?
+* JEXL-213: rename JexlBuilder.loader(Charset arg) to
JexlBuilder.charset(Charset arg)
+* JEXL-210: The way to cancel script execution with an error
+* JEXL-209: Unsolvable function/method '<?>.<null>(...)'
+* JEXL-208: Documentation typos/inconsistencies
+* JEXL-207: Inconsistent error handling
+* JEXL-206: testCallableCancel() test hangs sporadically
+* JEXL-205: testCancelForever() is not terminated properly as 'Fixed'
+* JEXL-204: Script is not interrupted by a method call throwing Exception
+* JEXL-203: JexlArithmetic.options() diverts Interpreter to use default
implementation of JexlArithmetic instead of custom one
+* JEXL-202: Detect invalid assignment operator usage with non-assignable
l-value during script parsing
+* JEXL-196: Script execution hangs while calling method with one argument
without parameter
+* JEXL-195: Support for AtomicBoolean in logical expressions
+* JEXL-193: InterruptedException is swallowed in function call in silent
and non-strict mode
+* JEXL-192: Invalid return type when expected result is null
+* JEXL-191: Jexl3 unsolvable property exception when using enum
+* JEXL-190: local function within context is not resolved if function
resolver class without namespace is specified
+* JEXL-189: Possible bug in Interpreter.isCancelled()
+* JEXL-188: Possible bug in JexlArithmetic.isFloatingPointNumber()
+* JEXL-187: Jexl Syntax doc does not mention 'continue' and 'break'
operators
+* JEXL-186: Performance regression in arithmetic operations compared to
JEXL 2.1
+
+
+========================================================================================================================
+Release 3.0
+========================================================================================================================
+
+Version 3.0 is a major release changing the public JEXL API.
+
+Due to binary and source incompatibilities and the scope of modifications,
JEXL has moved to the
+org.apache.commons.jexl3 package.
+However, this is a drop-in replacement through JSR-223 and casual code usage
should find easy equivalence between
+jexl-2.x and 3.x (besides the package name).
+Also note that JEXL 3.0 now requires Java 6.
+
+
+What's new in 3.0:
+==================
+* A redesigned API that properly segregates the "public" part and the
"internal" parts of JEXL.
+* A real difference between Expression and Script (scripts accept statements:
for, while, etc).
+* The ability to create JEXL functions in script, closure/variables
hoisting/currying included.
+* A set of assignment operators (+=, *= , ...).
+* A set of String matching operators (^= startsWith, $= endsWith) and their
negative counterparts (!^, !$)
+* A range operator (x .. y) to ease writing loops (for(var x : 1 .. 10) ... )
+* A literal set syntax to ease creating sets: { 1, 2...}
+
+New features in 3.0:
+====================
+* JEXL-178: 'Unsolvable property' message to provide details about
underlying exception
+* JEXL-177: Unified expressions to be used in String literals in JEXL
scripts
+* JEXL-176: Synonym operator name 'in' for operator =~ // Remove
'foreach...in' syntax
+* JEXL-174: Overloadable property access operators
+* JEXL-173: Duck-typed java closures
+* JEXL-170: Implement assignment operators
+* JEXL-164: public getters for high/low properties for IntegerRange and
LongRange
+* JEXL-152: Extend Range literal to support Long values
+* JEXL-149: Set Construction as per EL 3.0 spec
+* JEXL-133: String matching Operator short-hand inspired by CSS3
+* JEXL-128: ObjectContext<> should implement NamespaceResolver
+* JEXL-127: Allow the creation of functions
+* JEXL-123: Redesign API for stability
+* JEXL-122: Move JEXL from org.apache.comms.jexl2 to
org.apache.commons.jexl3
+* JEXL-136: Script calls within scripts may fail with number arguments
+* JEXL-135: Using map as script parameter or local variable
+* JEXL-134: Issue with evaluation of concat of variables : \r + \n gives 0
+* JEXL-131: UnifiedJexl parsing may fail with NPE
+* JEXL-130: Ternary Conditional fails for Object values
+* JEXL-126: Decimal numbers literals should be 'double' by default
(instead of 'float')
+
+
+Bugs Fixed in 3.0:
+==================
+* JEXL-184: dot-ed identifiers parsing failure
+* JEXL-180: Documentation - suggests using float for financials
+* JEXL-171: Map access operator does not work if key name clashes with map
property name
+* JEXL-169: A string is wrongly identified as FloatingPointNumber
+* JEXL-168: Dedicated operator for String concatenation
+* JEXL-79: Add support for growable arrays (ArrayLists)
+* JEXL-167: Possible loss of value when converting BigDecimal to BigInteger
+* JEXL-166: Incorrect operator symbol for bitwise complement in
jexlArithmetic
+* JEXL-163: empty(new ("java.lang.Long", 4294967296)) returns true
+* JEXL-162: empty() function throws an exception : unsupported type
+* JEXL-160: typo in package.html
+* JEXL-158: Handle locale decimal separators correctly
+* JEXL-157: Replace File.pathSeparator with File.separator
+* JEXL-146: Performance problem in Interpreter.unknownVariable mechanism
+* JEXL-145: Sandbox calling wrong check (classname vs class)
+* JEXL-144: Empty array property setting fails
+* JEXL-142: Map expression issue with empty key
+* JEXL-141: Suffix for Big Decimal and Big Integer Literal is incorrectly
mentioned in Java docs
+* JEXL-137: Invalid script variable list for nested array/map access
+
+Detail of all changes in changes.xml.
+
+
+========================================================================================================================
+Release 2.1.1
+========================================================================================================================
+
+Version 2.1.1 is a micro release to fix a regression detected in 2.1:
+
+* JEXL-124: Array parameters to methods don't work anymore (JEXL 2.1.1)
+
+There are no other changes.
+
+
+========================================================================================================================
+Release 2.1
+========================================================================================================================
+
+Version 2.1 is a minor release adding new features and fixing known issues
detected in 2.0.
+
+Compatibility with previous releases
+====================================
+Version 2.1 is binary compatible with 2.0.1.
+
+However it is not source compatible.
+New methods have been added to the org.apache.commons.jexl2.Script and
org.apache.commons.jexl2.JexlInfo interfaces.
+Any source code that implements these interfaces will need to be updated.
+
+What's new in 2.1:
+==================
+* A more thorough arithmetic (JexlArithmetic) that allows fine control over
decimals (scale and precision), a
+ new syntax for numeric literals (OGNL inspired Big and Huge notations) and a
better type handling keeping the most
+ appropriate representation in casual operations.
+* The introduction of script variables and parameters that reduce context
dependencies and methods; this allows to
+ perform checks after script creation (light static checking hints). Plus the
ability to call script from scripts.
+* A sandoxing feature to restrict and rename what JEXL can access from the
environment allowing tighter control over security.
+* Extensions to UnifiedJEXL that allow the creation of templates.
+
+New features in 2.1:
+====================
+* JEXL-114: Allow scripts to create local variables // Add return keyword
+* JEXL-113: Add functions to extract which variables, parameters and local
variables are used to evaluate a script
+* JEXL-118: Provide an IN operator
+* JEXL-115: Add support for asynchronous script execution and cancellation
+* JEXL-116: Add control over classes, methods, constructors and properties
allowed in scripts
+* JEXL-120: Add simple template features
+* JEXL-119: Allow indexed properties container resolution in expressions
+* JEXL-106: When divide two BigDecimal values in an expression it results
in java.lang.ArithmeticException
+* JEXL-102: Add "jexl2" as a supported name
+
+Bugs Fixed in 2.1:
+==================
+* JEXL-83: Make JexlArithmetic immutable (and threadsafe)
+* JEXL-24: Support Long for integer literal instead of Integers
+* JEXL-107: literals and parenthesized expressions can not be used as
references
+* JEXL-108: parsing error if i define a empty literal array/map
+* JEXL-101: Vararg methods where the first argument is no vararg can not
be called with only the fixed parameters given
+* JEXL-105: Array literals are considered constant even when they are not
+* JEXL-104: NPE in JexlArithmetic when an Array-Expression containing a
null is used.
+* JEXL-112: Cannot parse Integer.MIN_VALUE
+* JEXL-111: expression execute error
+
+Bugs fixed in 2.0.1:
+====================
+
+* JEXL-100: Array access expressions fail when evaluated twice and cache
is enabled
+* JEXL-99: Documentation of Thread Safety / Invalid code examples on
homepage
+* JEXL-98: Quote escaping cannot be escaped
+
+
+2.0
+==================
+
+Bugs fixed in 2.0:
+==================
+
+* JEXL-90: JEXL parser allows invalid expressions, e.g. "a=1 b=2 3"
+* JEXL-88: MethodKey.java - name clash getMostSpecific() with Java 1.5.0
+* JEXL-87: Inconsistent behavior of arithmetical operations
+* JEXL-81: Introspector does not use ListGetExecutor for List
+* JEXL-80: Lenient mode should not throw exception when {g,s}etting an
undefined property
+* JEXL-78: Ternary operator throws Exception when JexlEngine in strict
mode
+* JEXL-76: Remove unnecessary class VisitorAdapter
+* JEXL-71: Parsing errors?
+* JEXL-67: Potential NPE in util.introspection.MethodKey
+* JEXL-66: testDottedNames expects map enumeration order
+* JEXL-64: Inconsistent behavior of dotted names
+* JEXL-62: NPE in Interpreter
+* JEXL-59: ClassMap holds a reference to class
+* JEXL-56: Logging wrongly uses java.util.logging
+* JEXL-50: Div operator does not do integer division
+* JEXL-49: Block statements aren't parsed
+* JEXL-48: NPE during expression evaluation
+* JEXL-45: Unhandled division by zero
+* JEXL-42: NullPointerException evaluating an expression
+* JEXL-40: JEXL fails to find abstract public methods in the base class
if overridden by non-public derived types
+* JEXL-32: BigDecimal values are treated as Long values which results in
loss of precision
+* JEXL-30: ASTAddNode does not add BigDecimal objects correctly
+* JEXL-27: Cannot assign a value to the property of an object, such as
object.prop = value.
+* JEXL-26: ASTArrayAccess messes up on fallback to JexlContext
+* JEXL-19: Ternary conditional not supported
+* JEXL-3 : Static method resolution and changes to context
+
+Other issues fixed (Improvements/New Features):
+===============================================
+
+* JEXL-95: Enhance JSR-223 implementation
+* JEXL-94: Allow stateful namespaces (ns:function)
+* JEXL-93: Add public fields as targets of set/get property
+* JEXL-92: JexlContext API should be more flexible
+* JEXL-89: Drop main() and suite() methods from Test cases
+* JEXL-85: 2.0 grammar finishing touches & debugger update
+* JEXL-82: Change foreach syntax
+* JEXL-77: Rename last Velocity originated classes
+* JEXL-72: Remove deprecated classes and methods entirely
+* JEXL-70: Add main class to allow scripts etc to be tested
+* JEXL-63: JSR-223 support
+* JEXL-61: Usage of strong references on Method/Constructor & WeakHashMap
usage
+* JEXL-60: Refactor o.a.c.jexl.util and o.a.c.jexl.util.introspection
+* JEXL-58: UnifiedJEXL
+* JEXL-57: Change pom.xml to make it Netbeans Maven2 plugin friendly
+* JEXL-55: JEXL 2.0 redux, attempting to restart the effort to release 2.0
+* JEXL-54: Light performance enhancements
+* JEXL-47: Allow single-line comments with //
+* JEXL-43: Website overview does not mention method calls and new 2.0
features
+* JEXL-41: Allow nested ${} evaluation
+* JEXL-35: Final API requirements
+* JEXL-34: Remove pre and post resolution of variables via the
JexlExprResolver classes.
+* JEXL-33: Remove unnecessary throws Exception from various classes
+* JEXL-29: Support non-object-level functions/methods, as size and empty
function
+* JEXL-25: Call method with varargs
+* JEXL-24: Support Long for integer literal instead of Integers
+* JEXL-21: operator overloading / hooks on operator processing
+* JEXL-16: allowing quote escaping
+* JEXL-15: Needs definable functions
+* JEXL-11: Don't make null convertible into anything
+* JEXL-10: Make possible checking for unresolved variables
+
+Other Changes:
+==============
+
+o Add @since 2.0 tags to code so we can track API additions via Javadoc
+
+Upgrading from JEXL 1.x
+=======================
+
+JEXL now requires Java 1.5 or later.
+
+Version 2.0 resides in the org.apache.commons.jexl2 package; part of the
version 1.x API is reimplemented as an
+add-on source library in the jexl-compat directory; since it can not fully
reimplement the original public 1.x, it may
+only be used to ease transition in strictly controlled deployments.
+
+The following classes are implemented through the jexl-compat source library:
+ * ExpressionFactory
+ * ScriptFactory
+ * Expression
+ * Script
+ * JexlContext
+ * JexlHelper
+
+Migration notes
+===============
+
+When migrating from jexl 1.x to jexl 2.0, the following hints may be helpfull.
+
+The following classes no longer exist:
+ * ExpressionFactory, ScriptFactory: create a JexlEngine and use
createExpression() or createScript()
+ instead.
+
+The following classes have been renamed and replaced:
+
+ * VelMethod <=> JexlMethod
+ * VelPropertyGet <=> JexlPropertyGet
+ * VelPropertySet <=> JexlPropertySet
+
+The following methods have been removed:
+
+ * Info.getTemplateName() - use Info.getName() instead
+ * Expression.addPostResolver() / Expression.addPreResolver() - set ant-like
variables in JexlContext, implement
+ a specific JexlContext or derive JexlcontextInterpreter/JexlEngine instead
+
+Behavior changes
+================
+
+* Public fields are considered when using JexlPropertyGet / JexlPropertySet:
JEXL 1.x behavior can be reimplemented
+by subclassing UberspectImpl.
+
+*Division (/ operator) behavior change: division between integers no longer
casts its operands to double; integer division
+ allways results in a integer. The 1.x behavior can be reimplemented by
subclassing JexlArithmetic.
+
+New Features:
+=============
+
+Assignment expression: a = b (and a.b.c = d)
+ * Assigns a variable (ant-like variable or bean-property)
+
+Ternary operator expression: a ? b : c (and a ?: c)
+ * The usual inline conditional shortcut and its 'Elvis' form (a ?: b
evaluates as a ? a : b)
+
+Constructor call expression: new('my.class.name', arguments...)
+ * Creates a new instance of a class using the most appropriate constructor
according
+ to the actual arguments
+
+Function namespace: ns:func(arguments...)
+ * A function namespace allows the use of class or instance methods in
function calls
+
+UnifiedJEXL
+ * Adds ${...} and #{...} JSP/EL syntax support on top of the JexlEngine
+
+JSR-223 support
+ * Implement JSR-223 Scripting Engine for JEXL script (need BSF-3.0 on Java
< 6)
+
+Error and exception handling
+ * Configuring the leniency and verbosity of the JEXL engine allows user
control over the
+ error handling policy
Copied: release/commons/jexl/binaries/commons-jexl-3.6.0-bin.tar.gz (from
r80708, dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.tar.gz)
==============================================================================
Binary file (source and/or target). No diff available.
Copied: release/commons/jexl/binaries/commons-jexl-3.6.0-bin.tar.gz.asc (from
r80708, dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.tar.gz.asc)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/jexl/binaries/commons-jexl-3.6.0-bin.tar.gz.asc Fri Nov
14 13:45:01 2025 (r80709, copy of r80708,
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.tar.gz.asc)
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEELbTx7w+nYezE6pNchv3H4qESYssFAmkSNW8ACgkQhv3H4qES
+YsvFRQf+PwikQApWSC7GGmdMdWAtov3KPQajIQbYAydAOd18R/0BAkJbIrvfCKAh
+S8H4wENhGyVtQo4sbf7ubNPFZSJw7En/6PC/SoLCEaDq+RwBenogjT85qvWs7vRW
+lF+TuUeaWTprL+1T8UsIX1tPPtn17Ipfuhp8PWSDrDiKDpjzhN0DtKsebqY9/+Cx
+RhpYRLimUFj9OZTBHIqS0EqN3F2w8YXWhQ8BNCJ1IU764YwJXcGTcnTmW5Xp7kMQ
+cpQy8buxwwrzSSLVTsA9F/Cv6p3Old0b6suxJmCqJIz1WxZZEpMFREfuOLQrc/YJ
+DV3ngUm6H7vCEZfHcSk6j3PhgZh9gA==
+=469Q
+-----END PGP SIGNATURE-----
Copied: release/commons/jexl/binaries/commons-jexl-3.6.0-bin.tar.gz.sha512
(from r80708,
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.tar.gz.sha512)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/jexl/binaries/commons-jexl-3.6.0-bin.tar.gz.sha512 Fri Nov
14 13:45:01 2025 (r80709, copy of r80708,
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.tar.gz.sha512)
@@ -0,0 +1 @@
+162cd995f520e021bd1284b8fbea41ba718ead9d03ccda7ed8f5a449c8c49e5cf0fc9277fc91a09305ae64007810c916853a22e4858652ad2e77f8751fa42952
Copied: release/commons/jexl/binaries/commons-jexl-3.6.0-bin.zip (from r80708,
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.zip)
==============================================================================
Binary file (source and/or target). No diff available.
Copied: release/commons/jexl/binaries/commons-jexl-3.6.0-bin.zip.asc (from
r80708, dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.zip.asc)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/jexl/binaries/commons-jexl-3.6.0-bin.zip.asc Fri Nov
14 13:45:01 2025 (r80709, copy of r80708,
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.zip.asc)
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEELbTx7w+nYezE6pNchv3H4qESYssFAmkSNW8ACgkQhv3H4qES
+YsvUBwf/TU7URPs/I3Shob0Qg8HviJeija8Hwe+MXm7RPkkd8P7paKTdisktYqWh
+NEvd98reMV4Uct6Nq952zOM4ie4MQ+YuC1Rrctbom2aT+GTLcqwiHGv+D3HB/jTE
+6EgDb63KxzryW4yz8aoPbcTsWmBl3l3I1RnQb8U3PJZPPnqb0Mm/QGP5wsHsEtT4
+exK0OG9Y4wVl7uc8Bzk0mxHUy2vF7dCkT3xPXo1LPvdoikoQI5XLS7XZNIJxAq2m
+BkFSTh680E82w+pL40QUgqeLLWOSy8RTFcXCUa2DWfXuHcSb0Cfwy8XBj90F1kVF
+OcGcVKat25+K2sT+EBfCfXccTVDvOw==
+=T3bi
+-----END PGP SIGNATURE-----
Copied: release/commons/jexl/binaries/commons-jexl-3.6.0-bin.zip.sha512 (from
r80708, dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.zip.sha512)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/jexl/binaries/commons-jexl-3.6.0-bin.zip.sha512 Fri Nov
14 13:45:01 2025 (r80709, copy of r80708,
dev/commons/jexl/3.6.0-RC2/binaries/commons-jexl-3.6.0-bin.zip.sha512)
@@ -0,0 +1 @@
+944d67649a4bd5ba2f4cde68d8eace2f21dee414beb19addee7800e2c19a0d0c1f92d11f662abc9435fac84e7fe59aa869c92dd9fc70517d0b117b24e0b845d1
Copied: release/commons/jexl/source/commons-jexl-3.6.0-src.tar.gz (from r80708,
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.tar.gz)
==============================================================================
Binary file (source and/or target). No diff available.
Copied: release/commons/jexl/source/commons-jexl-3.6.0-src.tar.gz.asc (from
r80708, dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.tar.gz.asc)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/jexl/source/commons-jexl-3.6.0-src.tar.gz.asc Fri Nov
14 13:45:01 2025 (r80709, copy of r80708,
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.tar.gz.asc)
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEELbTx7w+nYezE6pNchv3H4qESYssFAmkSNW8ACgkQhv3H4qES
+Yst38Af+MColDfAGzhNGU/LplifyJNHx03pRx3nO1Az1YDt00rEfC3p0gnO3ovpN
+ffPLRl7jo7eHcfg/zS/z7z7gpJoq5dMMyrpntqfVCX24gsuXrLWdPWUcv6Bk5pRo
+qqaXTATmiFSDDgL5RoIRdpHhDIe5/crIlfYvBMSYghxiqihSrvB5zyQzFbnKfdp5
+PfKLVHkwIxtkeZxRLzpypURa0PHCNUo6K3DMKEGsrxAqHQtyj66wTirGVwgrt3NL
+3e/9uIvccTNG5B+IxUFnT/qONYVh7Y2zb7felkIGxKqSgRNCwfR/+ttHsBldfgcX
+qO4eqJGE0qB5iMGzNG/a79zhXGcIFA==
+=jbDI
+-----END PGP SIGNATURE-----
Copied: release/commons/jexl/source/commons-jexl-3.6.0-src.tar.gz.sha512 (from
r80708, dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.tar.gz.sha512)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/jexl/source/commons-jexl-3.6.0-src.tar.gz.sha512 Fri Nov
14 13:45:01 2025 (r80709, copy of r80708,
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.tar.gz.sha512)
@@ -0,0 +1 @@
+af56543cc2f70b43c75b0c4fdfca73924900c523630f39d5fb47b2acecb386c774c7bc81c076f98ba196869c3ac13e963fe8538e12f585c12324ce4766a1795c
Copied: release/commons/jexl/source/commons-jexl-3.6.0-src.zip (from r80708,
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.zip)
==============================================================================
Binary file (source and/or target). No diff available.
Copied: release/commons/jexl/source/commons-jexl-3.6.0-src.zip.asc (from
r80708, dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.zip.asc)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/jexl/source/commons-jexl-3.6.0-src.zip.asc Fri Nov 14
13:45:01 2025 (r80709, copy of r80708,
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.zip.asc)
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEELbTx7w+nYezE6pNchv3H4qESYssFAmkSNW8ACgkQhv3H4qES
+YstImgf+P5zYdOIjvyrdzRWZVkp+55xnGjJsOs15EWZV5La6ka7j9R+EMo7N1OHd
+eGdnXNlW2TTcqTM32oQhZh+SoH06y/hce59BDTf135mFmlEPZHWLb1S5FV7ke/Kl
+FbMwKlHHGvezxg1k5W0f68TJ5E0XL124mnlZmqG+9S8uewDyZTRD7u7SmWPO73qE
+Y6dZ4t7VE9jSWSEJd8RlDtZvDIOtJAA8cUqCNG46NYY5n05wSLOqXB3odO2evbM8
+EhhA/yDchYmVDX0rUMU8MGH3quDrHKgfzzobkxf+2sMRWB406GeZmS/b9tyA992h
+kgZxxD5cQ8WAH81KuYnpPBYZY1JgVA==
+=9zbq
+-----END PGP SIGNATURE-----
Copied: release/commons/jexl/source/commons-jexl-3.6.0-src.zip.sha512 (from
r80708, dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.zip.sha512)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/jexl/source/commons-jexl-3.6.0-src.zip.sha512 Fri Nov
14 13:45:01 2025 (r80709, copy of r80708,
dev/commons/jexl/3.6.0-RC2/source/commons-jexl-3.6.0-src.zip.sha512)
@@ -0,0 +1 @@
+99beed9bb0647fad606d90c097be137eb1e5e60257e8dc32dcd0ff9651d0e7c115cd5978dea14da9493564fd037dc1b7a9a1afb5d09a45cff22d89bacad2aad9