diff --git a/pom.xml b/pom.xml
index 0ab5bf917..95e6a62e3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -295,7 +295,6 @@
maven-changes-plugin
2.12.1
- ${basedir}/src/site/xdoc/changes.xml
%URL%/%ISSUE%
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 702e6a1c0..46b7a99a1 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -1,58 +1,692 @@
-
-
+
-
- Apache Commons JEXL Release Notes
-
-
-
-
-
-
-
-
-
- Bump actions/setup-java from v1.4.3 to v2 #160.
-
-
-
+
+ Apache Commons JEXL Release Notes
+ Commons Developers
+
+
+
+
+ Bump actions/setup-java from v1.4.3 to v2 #160.
+
+
+ Don't fill stack trace for JexlExpression#Return (to improve performance)
+
+
+ Escape some control characters
+
+
+ Update JUnit to 4.13.1
+
+
+ Remove offensive terminology from code and API
+
+
+ Allow declaration of namespace within script
+
+
+ Please document \uXXXX escape sequence
+
+
+ JexlException.Parsing.getMessage() throws exception when parse error is in long expression
+
+
+ JXLT template scripts evaluation do not process pragmas
+
+
+ map[null] does not work in assignment context
+
+
+ Link to "JavaCC" on syntax reference page is broken
+
+
+ Potential race-condition in NumberParser.toString()
+
+
+ JexlEngine.createExpression("new()").getParsedText() throws NPE
+
+
+ Ant-style variables can throw exception when evaluated for their value
+
+
+ JXLT String literals cannot contain curly braces
+
+
+ Empty do-while loop is broken
+
+
+ "mvn test" fails with COMPILATION ERROR in SynchronizedArithmetic.java on Java 11
+
+
+ Apache project documentation gives instructions in subversion
+
+
+ Annotation processing may fail in lexical mode
+
+
+ Support script cancellation through less invasive API
+
+
+ JxltEngine literal string strings ending in \ $ or # throw JxltEngine$Exception
+
+
+ Comparison NULL values of variables NAME1.NAME2
+
+
+ @NoJexl fails to disallow method call
+
+
+ Jxlt template scripts fail using verbatim expressions embedded in lambdas
+
+
+ Line numbers are not correct when template report errors
+
+
+ Variable redeclaration option
+
+
+ Ternary operator ? protects also its branches from resolution errors
+
+
+ Script debugger produces incorrect syntax
+
+
+ Error parsing overview.limit.var
+
+
+ Block syntax is broken
+
+
+ JexlScript.getVariables returns strange values for array access
+
+
+ Array access operator does not fail on null object in non-strict arithmetic mode
+
+
+ Improve message error when method could not be found
+
+
+ Unable to call 'empty' and 'size' member methods with parameters
+
+
+ Real literal in scientific format is not parsed without suffix
+
+
+ Add unary plus operator
+
+
+ Allow specifying custom Permissions class for Uberspect to be used later by Introspector
+
+
+ Using sandbox prevents array-syntax lookup by number in Map
+
+
+ Safe navigation fails on chained method calls
+
+
+ Passing undeclared function parameter can overwrite a local function variable
+
+
+ Annotation can not be specified for a standalone statement
+
+
+ Wrong resolution of local variables
+
+
+ For statement without a body should update its variable
+
+
+ For statement variable may seem unaffected by iteration
+
+
+ Pragmas with antish names are broken
+
+
+ MethodExecutor incorrectly tests for empty parameters list
+
+
+ break/continue statements outside of the loop
+
+
+ Null variables property access do not throw exceptions
+
+
+ Ambiguous exceptions should point to actual statement ambiguity
+
+
+ Allow safe navigation as option
+
+
+ Handle soft and hard stack overflow
+
+
+ Add do...while(...) loops
+
+
+ Dereferencing null property not reported on method call
+
+
+ Hoisted variable is lost when currying lambda
+
+
+ Wrong Script$Curried creation when script.curry() method is called inside script
+
+
+ Allow space, quote and double-quote in identifiers
+
+
+ JexlEngine.setClassLoader(...) should reload namespaces that are classes
+
+
+ Automatically inject JexlContext in constructor call when possible
+
+
+ Function throwing IllegalArgumentException may be called twice
+
+
+ Permissions by super type in JexlSandbox
+
+
+ Allow for interpolated strings to be used in property access operators
+
+
+ Safe navigation operator
+
+
+ Java 1.8 as minimum supported version
+
+
+ Allow range subexpression as an array property assignment identifier
+
+
+ Intermittent ambiguous method invocation when processing assignOverload
+
+
+ Engine in strict mode fails to fail on unsolvable variables or properties
+
+
+ Webapp classloader memory leaks
+
+
+ Allow restricting available features in Script/Expressions
+
+
+ NPE when script containing string interpolation executed in multiple threads
+
+
+ Unable to invoke a call operator using antish style variable resoltion
+
+
+ Restrict getLiteralClass to a Number for NumberLiterals
+
+
+ Ability to restrict usage of certain names when declaring local variables
+
+
+ Support CharSequence in size(), empty() and contains() operators
+
+
+ Extend application of operators startsWith and endsWith from String to CharSequence types
+
+
+ Syntax for accessing List elements is not mentioned in docs
+
+
+ List literal is not mentioned in docs
+
+
+ JexlScriptEngineFactory.getEngineVersion() should return actual version
+
+
+ add ?? operator support
+
+
+ Incorrect invoking methods with ObjectContext
+
+
+ The ability to overload call() operator in customized JexlArithmetic implementation
+
+
+ Restrict usage of assignment statements in JexlExpression
+
+
+ java.util.regex.Pattern creation operator (regex literals)
+
+
+
+
+ The ability to declare indexed property getter/setter in customised JexlArithmetic implementation
+
+
+ Sporadic undefined property error caused by NPE at MapGetExecutor.tryInvoke()
+
+
+ Blacklist by default in sandbox
+
+
+ Interpreter.getAttribute() raises exception in non-strict mode when cached property resolver is used
+
+
+ Improve parsing concurrency in multithreaded environment
+
+
+ JexlEngine.createInfo() is redundantly called when debug and caching is enabled leading to sub-optimal performance
+
+
+ Redundant call of fillInStackTrace() in JexlEngine.createInfo() ?
+
+
+ rename JexlBuilder.loader(Charset arg) to JexlBuilder.charset(Charset arg)
+
+
+ Add callable method to JexlExpression interface
+
+
+ The way to cancel script execution with an error
+
+
+ Unsolvable function/method '<?>.<null>(...)'
+
+
+ Documentation typos/inconsistencies
+
+
+ Inconsistent error handling
+
+
+ testCallableCancel() test hangs sporadically
+
+
+ testCancelForever() is not terminated properly
+
+
+ Script is not interrupted by a method call throwing Exception
+
+
+ JexlArithmetic.options() diverts Interpreter to use default implementation of JexlArithmetic instead of custom one
+
+
+ Detect invalid assignment operator usage with non-assignable l-value during script parsing
+
+
+ Allow Interpreter to use live values from JexlEngine.Option interface implemented by JexlContext
+
+
+ JxltEngine Template does not expose pragmas
+
+
+ Add annotations
+
+
+ Script execution hangs while calling method with one argument without parameter
+
+
+ Support for AtomicBoolean in logical expressions
+
+
+ allow synchronization on iterableValue in foreach statement
+
+
+ InterruptedException is swallowed in function call in silent and non-strict mode
+
+
+ Invalid return type when expected result is null
+
+
+ Jexl3 unsolvable property exception when using enum
+
+
+ local function within context is not resolved if function resolver class without namespace is specified
+
+
+ Possible bug in Interpreter.isCancelled()
+
+
+ Possible bug in JexlArithmetic.isFloatingPointNumber()
+
+
+ Jexl Syntax doc does not mention 'continue' and 'break' operators
+
+
+ Performance regression in arithmetic operations compared to JEXL 2.1
+
+
+
+
+ dot-ed identifiers parsing failure
+
+
+ Documentation - suggests using float for financials
+
+
+ Added a 'curry' method to script returning script with bound arguments
+
+
+ 'Unsolvable property' message to provide details about underlying exception
+
+
+ Unified expressions to be used in String literals in JEXL scripts
+
+
+ Synonym operator name 'in' for operator =~ // Remove 'foreach...in' syntax
+
+
+ Overloadable property access operators
+
+
+ Duck-typed java closures
+
+
+ Map access operator does not work if key name clashes with map property name
+
+
+ Implement assignment operators
+
+
+ A string is wrongly identified as FloatingPointNumber
+
+
+ Dedicated operator for String concatenation
+
+
+ Add support for growable arrays (ArrayLists)
+
+
+ Possible loss of value when converting BigDecimal to BigInteger
+
+
+ Incorrect operator symbol for bitwise complement in jexlArithmetic
+
+
+ public getters for high/low properties for IntegerRange and LongRange
+
+
+ empty(new ("java.lang.Long", 4294967296)) returns true
+
+
+ empty() function throws an exception : unsupported type
+
+
+ typo in package.html
+
+
+ Handle locale decimal separators correctly
+
+
+ Replace File.pathSeparator with File.separator
+
+
+ Added a method to get parameters from a template
+
+
+ Identifiers beginning with 0s (like 00200) shoud not be considered integers
+
+
+ Extend Range literal to support Long values
+
+
+ Set Construction as per EL 3.0 spec
+
+
+ Added #pragma instruction, allowing scripts to communicate information to the underlying execution
+ context.
+
+
+ Hoisted variables in a lambda are seen as local variables; should be seen as global
+
+
+ Local variables must preclude antish variables handling
+
+
+ Depending on unkown conditions, overriden varargs method may return false to isVarArgs;
+ fix by checking method in declaring class hierarchy.
+
+
+ Performance problem in Interpreter.unknownVariable mechanism
+
+
+ Functions assigned to local variables can not perform recursive calls
+
+
+ Improved error reporting on undefined or null variables
+
+
+ Improved operator overloading logic in JexlArithmeric (caching)
+
+
+ Sandbox calling wrong check (classname vs class)
+
+
+ JXLT fails to parse expressions that use map constants
+
+
+ Added break/continue in JEXL syntax
+
+
+ Added convenience methods to pass/use JexlInfo and arguments in templates
+
+
+ Added ability to overload some operators in JexlArithmetic (through introspection, based on method names)
+
+
+ Fixed issue in edge case method resolution wrt overload and varargs
+
+
+ Switch logging to log4j 1.2
+
+
+ Empty array property setting fails
+
+
+ Map expression issue with empty key
+
+
+ Suffix for Big Decimal and Big Integer Literal is incorrectly mentioned in Java docs
+
+
+ Invalid script variable list for nested array/map access
+
+
+ Fixed Engine.getVariables that was erroneously considering method calls as variable usage
+
+
+ Fixed issue in ternary expression
+ (grammar was not precise enough to differentiate namespace:function calls vs ternary right hand side)
+
+
+ NaN is now a keyword equivalent to #NaN (deprecated): POTENTIAL SCRIPT BREAK!
+
+
+ Syntactically enforce that expressions do not contain statements: POTENTIAL EXPRESSION BREAK!
+ (ie an expression is not a script and can NOT use 'if','for'... and blocks)
+
+
+ Added syntactic shortcut to create parametric scripts (script source creates an anonymous function)
+
+
+ Segregated JexlScript and JexlExpression further to avoid calling JexlExpression.evaluate on JexlScript
+ (instead of JexlScript.execute) which had the unexpected property of only evaluating the first statement
+
+
+ Fix an edge case of ambiguous method matching (see http://apache-commons.680414.n4.nabble.com/jexl-mathod-within-namespace-not-found-if-parameter-is-int-tt4637888.html)
+
+
+ Fix issue wrt isEmpty and method varargs (assignable types vs equal types)
+ (see http://apache-commons.680414.n4.nabble.com/jexl-empty-function-crashes-if-called-with-int-tt4637895.html)
+
+
+ String matching Operator short-hand inspired by CSS3
+
+
+ Added the range operator (x .. y)
+
+
+ ObjectContext should implement NamespaceResolver
+
+
+ Allow the creation of functions
+
+
+ Redesign API for stability
+
+
+ Move JEXL from org.apache.comms.jexl2 to org.apache.commons.jexl3
+
+
+ Script calls within scripts may fail with number arguments
+
+
+ using map as script parameter or local variable
+
+
+ Issue with evaluation of concat of variables : \r + \n gives 0
+
+
+ UnifiedJexl (2.1.x) parsing may fail with NPE
+
+
+ Ternary Conditional fails for Object values
+
+
+ Decimal numbers literals fix be 'double' by default (instead of 'float')
+
+
+
+
+ Array parameters to methods don't work anymore (regression)
+
+
+
+
+ Add simple template features
+
+
+ Make ParseException work in sandboxed environment
+
+
+ Allow indexed properties container resolution in expressions
+
+
+ Provide an IN operator: =~ / match operator extended to provide IN behavior (!~ as NOT IN)
+
+
+ Add control over classes, methods, constructors and properties allowed in scripts
+
+
+ Add support for asynchronous script execution and cancellation
+
+
+ Allow scripts to create local variables // Add return keyword
+
+
+ Add functions to extract which variables, parameters and local variables are used to evaluate a script
+
+
+ Cannot parse Integer.MIN_VALUE.
+
+
+ Support Long for integer literal instead of Integers.
+
+
+ Added ObjectContext that wraps an object as JexlContext and added JexlContext as source to solve
+ top-level namespace functions.
+
+
+ expression execute error depending on numeric type
+
+
+ Make JexlArithmetic immutable (and threadsafe); also added a mutable JexlThreadedArithmetic.
+
+
+ Parsing error if i define a empty literal array/map
+
+
+ Literals and parenthesized expressions can not be used as references
+
+
+ When divide two BigDecimal values in an expression it results in java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
+
+ Array literals are considered constant even when they are not.
+ NPE in JexlArithmetic when an Array-Expression containing a null is used.
+ Add "jexl2" as a supported name
+
+ Vararg methods where the first argument is no vararg can not be called with only the fixed parameters given
+
+
+
+ Array access expressions fail when evaluated twice and cache is enabled
+ Documentation of Thread Safety / Invalid code examples on homepage
+ Quote escaping cannot be escaped
+
+
+ Bean-ish & ant-ish like assignment
+ Ternary operator support
+ adding Perl-like regular-expression operators
+ Support for ${...} and #{...} expressions
+ User definable functions
+ JSR-223 support
+ Make possible checking for unresolved variables
+ Don"t make null convertible into anything
+ Allow single-line comments with //
+ Comments don"t allow double-quotes
+ Array literal syntax is not supported
+ allowing quote escaping
+ Call method with varargs
+ BigDecimal values are treated as Long values which results in loss of precision
+ Remove unnecessary throws Exception from various classes
+ Div operator does not do integer division
+ Inconsistent behavior of arithmetical operations
+ operator overloading / hooks on operator processing
+ "new" operator support
+ Support Unicode escapes in string literals
+ Various performance enhancements & caches
+
+
+ Fix jdk1.3 only code that has crept into JEXL tests
+ Allow unicode literals to be used
+
+
+ Consistently throw ParseException in case of a parsing failure, not an Error.
+ Allow for static methods to be called on classes and not just objects.
+ Added Script and ScriptFactory to allow scripts to be executed from text, files or a URL.
+ Added implementation for bitwise operators: and, complement, or, xor.
+ Added implementation for the foreach statement.
+ Added implementation for the while statement.
+ Added implementation for block statements, e.g. curly braces containing multiple statements.
+ Added implementation for the if statement.
+ Unary minus was only working for integer values.
+ Add @since tags to code so we can track API additions via javadoc
+ Support assignment to variables
+ 'abc'.substring(0,1+1) is empty (method matching problem)
+
+
+ Support ant-style properties
+
+
+ Fix string concatenation broken for variables
+ Implement short circuit logic for boolean and/or
+ Handle any size() method that returns an int
+ Can't issue .size() on java.util.Set
+
+
diff --git a/src/site/xdoc/changes.xml b/src/site/xdoc/changes.xml
deleted file mode 100644
index ce6e90af9..000000000
--- a/src/site/xdoc/changes.xml
+++ /dev/null
@@ -1,689 +0,0 @@
-
-
-
-
-
-
- Apache Commons JEXL Release Notes
- Commons Developers
-
-
-
-
- Don't fill stack trace for JexlExpression#Return (to improve performance)
-
-
- Escape some control characters
-
-
- Update JUnit to 4.13.1
-
-
- Remove offensive terminology from code and API
-
-
- Allow declaration of namespace within script
-
-
- Please document \uXXXX escape sequence
-
-
- JexlException.Parsing.getMessage() throws exception when parse error is in long expression
-
-
- JXLT template scripts evaluation do not process pragmas
-
-
- map[null] does not work in assignment context
-
-
- Link to "JavaCC" on syntax reference page is broken
-
-
- Potential race-condition in NumberParser.toString()
-
-
- JexlEngine.createExpression("new()").getParsedText() throws NPE
-
-
- Ant-style variables can throw exception when evaluated for their value
-
-
- JXLT String literals cannot contain curly braces
-
-
- Empty do-while loop is broken
-
-
- "mvn test" fails with COMPILATION ERROR in SynchronizedArithmetic.java on Java 11
-
-
- Apache project documentation gives instructions in subversion
-
-
- Annotation processing may fail in lexical mode
-
-
- Support script cancellation through less invasive API
-
-
- JxltEngine literal string strings ending in \ $ or # throw JxltEngine$Exception
-
-
- Comparison NULL values of variables NAME1.NAME2
-
-
- @NoJexl fails to disallow method call
-
-
- Jxlt template scripts fail using verbatim expressions embedded in lambdas
-
-
- Line numbers are not correct when template report errors
-
-
- Variable redeclaration option
-
-
- Ternary operator ? protects also its branches from resolution errors
-
-
- Script debugger produces incorrect syntax
-
-
- Error parsing overview.limit.var
-
-
- Block syntax is broken
-
-
- JexlScript.getVariables returns strange values for array access
-
-
- Array access operator does not fail on null object in non-strict arithmetic mode
-
-
- Improve message error when method could not be found
-
-
- Unable to call 'empty' and 'size' member methods with parameters
-
-
- Real literal in scientific format is not parsed without suffix
-
-
- Add unary plus operator
-
-
- Allow specifying custom Permissions class for Uberspect to be used later by Introspector
-
-
- Using sandbox prevents array-syntax lookup by number in Map
-
-
- Safe navigation fails on chained method calls
-
-
- Passing undeclared function parameter can overwrite a local function variable
-
-
- Annotation can not be specified for a standalone statement
-
-
- Wrong resolution of local variables
-
-
- For statement without a body should update its variable
-
-
- For statement variable may seem unaffected by iteration
-
-
- Pragmas with antish names are broken
-
-
- MethodExecutor incorrectly tests for empty parameters list
-
-
- break/continue statements outside of the loop
-
-
- Null variables property access do not throw exceptions
-
-
- Ambiguous exceptions should point to actual statement ambiguity
-
-
- Allow safe navigation as option
-
-
- Handle soft and hard stack overflow
-
-
- Add do...while(...) loops
-
-
- Dereferencing null property not reported on method call
-
-
- Hoisted variable is lost when currying lambda
-
-
- Wrong Script$Curried creation when script.curry() method is called inside script
-
-
- Allow space, quote and double-quote in identifiers
-
-
- JexlEngine.setClassLoader(...) should reload namespaces that are classes
-
-
- Automatically inject JexlContext in constructor call when possible
-
-
- Function throwing IllegalArgumentException may be called twice
-
-
- Permissions by super type in JexlSandbox
-
-
- Allow for interpolated strings to be used in property access operators
-
-
- Safe navigation operator
-
-
- Java 1.8 as minimum supported version
-
-
- Allow range subexpression as an array property assignment identifier
-
-
- Intermittent ambiguous method invocation when processing assignOverload
-
-
- Engine in strict mode fails to fail on unsolvable variables or properties
-
-
- Webapp classloader memory leaks
-
-
- Allow restricting available features in Script/Expressions
-
-
- NPE when script containing string interpolation executed in multiple threads
-
-
- Unable to invoke a call operator using antish style variable resoltion
-
-
- Restrict getLiteralClass to a Number for NumberLiterals
-
-
- Ability to restrict usage of certain names when declaring local variables
-
-
- Support CharSequence in size(), empty() and contains() operators
-
-
- Extend application of operators startsWith and endsWith from String to CharSequence types
-
-
- Syntax for accessing List elements is not mentioned in docs
-
-
- List literal is not mentioned in docs
-
-
- JexlScriptEngineFactory.getEngineVersion() should return actual version
-
-
- add ?? operator support
-
-
- Incorrect invoking methods with ObjectContext
-
-
- The ability to overload call() operator in customized JexlArithmetic implementation
-
-
- Restrict usage of assignment statements in JexlExpression
-
-
- java.util.regex.Pattern creation operator (regex literals)
-
-
-
-
- The ability to declare indexed property getter/setter in customised JexlArithmetic implementation
-
-
- Sporadic undefined property error caused by NPE at MapGetExecutor.tryInvoke()
-
-
- Blacklist by default in sandbox
-
-
- Interpreter.getAttribute() raises exception in non-strict mode when cached property resolver is used
-
-
- Improve parsing concurrency in multithreaded environment
-
-
- JexlEngine.createInfo() is redundantly called when debug and caching is enabled leading to sub-optimal performance
-
-
- Redundant call of fillInStackTrace() in JexlEngine.createInfo() ?
-
-
- rename JexlBuilder.loader(Charset arg) to JexlBuilder.charset(Charset arg)
-
-
- Add callable method to JexlExpression interface
-
-
- The way to cancel script execution with an error
-
-
- Unsolvable function/method '<?>.<null>(...)'
-
-
- Documentation typos/inconsistencies
-
-
- Inconsistent error handling
-
-
- testCallableCancel() test hangs sporadically
-
-
- testCancelForever() is not terminated properly
-
-
- Script is not interrupted by a method call throwing Exception
-
-
- JexlArithmetic.options() diverts Interpreter to use default implementation of JexlArithmetic instead of custom one
-
-
- Detect invalid assignment operator usage with non-assignable l-value during script parsing
-
-
- Allow Interpreter to use live values from JexlEngine.Option interface implemented by JexlContext
-
-
- JxltEngine Template does not expose pragmas
-
-
- Add annotations
-
-
- Script execution hangs while calling method with one argument without parameter
-
-
- Support for AtomicBoolean in logical expressions
-
-
- allow synchronization on iterableValue in foreach statement
-
-
- InterruptedException is swallowed in function call in silent and non-strict mode
-
-
- Invalid return type when expected result is null
-
-
- Jexl3 unsolvable property exception when using enum
-
-
- local function within context is not resolved if function resolver class without namespace is specified
-
-
- Possible bug in Interpreter.isCancelled()
-
-
- Possible bug in JexlArithmetic.isFloatingPointNumber()
-
-
- Jexl Syntax doc does not mention 'continue' and 'break' operators
-
-
- Performance regression in arithmetic operations compared to JEXL 2.1
-
-
-
-
- dot-ed identifiers parsing failure
-
-
- Documentation - suggests using float for financials
-
-
- Added a 'curry' method to script returning script with bound arguments
-
-
- 'Unsolvable property' message to provide details about underlying exception
-
-
- Unified expressions to be used in String literals in JEXL scripts
-
-
- Synonym operator name 'in' for operator =~ // Remove 'foreach...in' syntax
-
-
- Overloadable property access operators
-
-
- Duck-typed java closures
-
-
- Map access operator does not work if key name clashes with map property name
-
-
- Implement assignment operators
-
-
- A string is wrongly identified as FloatingPointNumber
-
-
- Dedicated operator for String concatenation
-
-
- Add support for growable arrays (ArrayLists)
-
-
- Possible loss of value when converting BigDecimal to BigInteger
-
-
- Incorrect operator symbol for bitwise complement in jexlArithmetic
-
-
- public getters for high/low properties for IntegerRange and LongRange
-
-
- empty(new ("java.lang.Long", 4294967296)) returns true
-
-
- empty() function throws an exception : unsupported type
-
-
- typo in package.html
-
-
- Handle locale decimal separators correctly
-
-
- Replace File.pathSeparator with File.separator
-
-
- Added a method to get parameters from a template
-
-
- Identifiers beginning with 0s (like 00200) shoud not be considered integers
-
-
- Extend Range literal to support Long values
-
-
- Set Construction as per EL 3.0 spec
-
-
- Added #pragma instruction, allowing scripts to communicate information to the underlying execution
- context.
-
-
- Hoisted variables in a lambda are seen as local variables; should be seen as global
-
-
- Local variables must preclude antish variables handling
-
-
- Depending on unkown conditions, overriden varargs method may return false to isVarArgs;
- fix by checking method in declaring class hierarchy.
-
-
- Performance problem in Interpreter.unknownVariable mechanism
-
-
- Functions assigned to local variables can not perform recursive calls
-
-
- Improved error reporting on undefined or null variables
-
-
- Improved operator overloading logic in JexlArithmeric (caching)
-
-
- Sandbox calling wrong check (classname vs class)
-
-
- JXLT fails to parse expressions that use map constants
-
-
- Added break/continue in JEXL syntax
-
-
- Added convenience methods to pass/use JexlInfo and arguments in templates
-
-
- Added ability to overload some operators in JexlArithmetic (through introspection, based on method names)
-
-
- Fixed issue in edge case method resolution wrt overload and varargs
-
-
- Switch logging to log4j 1.2
-
-
- Empty array property setting fails
-
-
- Map expression issue with empty key
-
-
- Suffix for Big Decimal and Big Integer Literal is incorrectly mentioned in Java docs
-
-
- Invalid script variable list for nested array/map access
-
-
- Fixed Engine.getVariables that was erroneously considering method calls as variable usage
-
-
- Fixed issue in ternary expression
- (grammar was not precise enough to differentiate namespace:function calls vs ternary right hand side)
-
-
- NaN is now a keyword equivalent to #NaN (deprecated): POTENTIAL SCRIPT BREAK!
-
-
- Syntactically enforce that expressions do not contain statements: POTENTIAL EXPRESSION BREAK!
- (ie an expression is not a script and can NOT use 'if','for'... and blocks)
-
-
- Added syntactic shortcut to create parametric scripts (script source creates an anonymous function)
-
-
- Segregated JexlScript and JexlExpression further to avoid calling JexlExpression.evaluate on JexlScript
- (instead of JexlScript.execute) which had the unexpected property of only evaluating the first statement
-
-
- Fix an edge case of ambiguous method matching (see http://apache-commons.680414.n4.nabble.com/jexl-mathod-within-namespace-not-found-if-parameter-is-int-tt4637888.html)
-
-
- Fix issue wrt isEmpty and method varargs (assignable types vs equal types)
- (see http://apache-commons.680414.n4.nabble.com/jexl-empty-function-crashes-if-called-with-int-tt4637895.html)
-
-
- String matching Operator short-hand inspired by CSS3
-
-
- Added the range operator (x .. y)
-
-
- ObjectContext should implement NamespaceResolver
-
-
- Allow the creation of functions
-
-
- Redesign API for stability
-
-
- Move JEXL from org.apache.comms.jexl2 to org.apache.commons.jexl3
-
-
- Script calls within scripts may fail with number arguments
-
-
- using map as script parameter or local variable
-
-
- Issue with evaluation of concat of variables : \r + \n gives 0
-
-
- UnifiedJexl (2.1.x) parsing may fail with NPE
-
-
- Ternary Conditional fails for Object values
-
-
- Decimal numbers literals fix be 'double' by default (instead of 'float')
-
-
-
-
- Array parameters to methods don't work anymore (regression)
-
-
-
-
- Add simple template features
-
-
- Make ParseException work in sandboxed environment
-
-
- Allow indexed properties container resolution in expressions
-
-
- Provide an IN operator: =~ / match operator extended to provide IN behavior (!~ as NOT IN)
-
-
- Add control over classes, methods, constructors and properties allowed in scripts
-
-
- Add support for asynchronous script execution and cancellation
-
-
- Allow scripts to create local variables // Add return keyword
-
-
- Add functions to extract which variables, parameters and local variables are used to evaluate a script
-
-
- Cannot parse Integer.MIN_VALUE.
-
-
- Support Long for integer literal instead of Integers.
-
-
- Added ObjectContext that wraps an object as JexlContext and added JexlContext as source to solve
- top-level namespace functions.
-
-
- expression execute error depending on numeric type
-
-
- Make JexlArithmetic immutable (and threadsafe); also added a mutable JexlThreadedArithmetic.
-
-
- Parsing error if i define a empty literal array/map
-
-
- Literals and parenthesized expressions can not be used as references
-
-
- When divide two BigDecimal values in an expression it results in java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
-
- Array literals are considered constant even when they are not.
- NPE in JexlArithmetic when an Array-Expression containing a null is used.
- Add "jexl2" as a supported name
-
- Vararg methods where the first argument is no vararg can not be called with only the fixed parameters given
-
-
-
- Array access expressions fail when evaluated twice and cache is enabled
- Documentation of Thread Safety / Invalid code examples on homepage
- Quote escaping cannot be escaped
-
-
- Bean-ish & ant-ish like assignment
- Ternary operator support
- adding Perl-like regular-expression operators
- Support for ${...} and #{...} expressions
- User definable functions
- JSR-223 support
- Make possible checking for unresolved variables
- Don"t make null convertible into anything
- Allow single-line comments with //
- Comments don"t allow double-quotes
- Array literal syntax is not supported
- allowing quote escaping
- Call method with varargs
- BigDecimal values are treated as Long values which results in loss of precision
- Remove unnecessary throws Exception from various classes
- Div operator does not do integer division
- Inconsistent behavior of arithmetical operations
- operator overloading / hooks on operator processing
- "new" operator support
- Support Unicode escapes in string literals
- Various performance enhancements & caches
-
-
- Fix jdk1.3 only code that has crept into JEXL tests
- Allow unicode literals to be used
-
-
- Consistently throw ParseException in case of a parsing failure, not an Error.
- Allow for static methods to be called on classes and not just objects.
- Added Script and ScriptFactory to allow scripts to be executed from text, files or a URL.
- Added implementation for bitwise operators: and, complement, or, xor.
- Added implementation for the foreach statement.
- Added implementation for the while statement.
- Added implementation for block statements, e.g. curly braces containing multiple statements.
- Added implementation for the if statement.
- Unary minus was only working for integer values.
- Add @since tags to code so we can track API additions via javadoc
- Support assignment to variables
- 'abc'.substring(0,1+1) is empty (method matching problem)
-
-
- Support ant-style properties
-
-
- Fix string concatenation broken for variables
- Implement short circuit logic for boolean and/or
- Handle any size() method that returns an int
- Can't issue .size() on java.util.Set
-
-
-