This is an automated email from the ASF dual-hosted git repository. ggregory 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 69f68655 Bump actions/cache from 3.0.2 to 3.0.3 69f68655 is described below commit 69f6865582bdf2a67afb06e68d22af192737ce2c Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Tue May 31 16:36:52 2022 -0400 Bump actions/cache from 3.0.2 to 3.0.3 --- .github/workflows/maven.yml | 106 +-- src/changes/changes.xml | 1510 +++++++++++++++++++++---------------------- 2 files changed, 808 insertions(+), 808 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 9d4b78c3..cdaeb917 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -1,53 +1,53 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -name: Java CI - -on: [push, pull_request] - -jobs: - build: - - runs-on: ${{ matrix.os }} - continue-on-error: ${{ matrix.experimental }} - strategy: - matrix: - os: [ubuntu-latest, windows-latest] - java: [ 8, 11, 17 ] - experimental: [false] -# include: -# - java: 18-ea -# os: ubuntu-latest -# experimental: true -# - java: 18-ea -# os: windows-latest -# experimental: true - fail-fast: false - - steps: - - uses: actions/checkout@v3 - - uses: actions/cache@v3.0.2 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- - - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@v3 - with: - distribution: 'temurin' - java-version: ${{ matrix.java }} - - name: Build with Maven - run: mvn -V --file pom.xml --no-transfer-progress -DtrimStackTrace=false +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Java CI + +on: [push, pull_request] + +jobs: + build: + + runs-on: ${{ matrix.os }} + continue-on-error: ${{ matrix.experimental }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest] + java: [ 8, 11, 17 ] + experimental: [false] +# include: +# - java: 18-ea +# os: ubuntu-latest +# experimental: true +# - java: 18-ea +# os: windows-latest +# experimental: true + fail-fast: false + + steps: + - uses: actions/checkout@v3 + - uses: actions/cache@v3.0.3 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Set up JDK ${{ matrix.java }} + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: ${{ matrix.java }} + - name: Build with Maven + run: mvn -V --file pom.xml --no-transfer-progress -DtrimStackTrace=false diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 55a6c728..e55bbb69 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -1,755 +1,755 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- -/* -* Licensed to the Apache Software Foundation (ASF) under one or more -* contributor license agreements. See the NOTICE file distributed with -* this work for additional information regarding copyright ownership. -* The ASF licenses this file to You under the Apache License, Version 2.0 -* (the "License"); you may not use this file except in compliance with -* the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ ---> - -<document> - <properties> - <title>Apache Commons JEXL Release Notes</title> - <author email="d...@commons.apache.org">Commons Developers</author> - </properties> - <body> - <release version="3.3" date="YYYY-MM-DD"> - <!-- UPDATE --> - <action dev="henrib" type="add" issue="JEXL-357" > - Configure accessible packages/classes/methods/fields - </action> - <action dev="henrib" type="fix" issue="JEXL-354" due-to="William Price"> - #pragma does not handle negative integer or real literals - </action> - <action dev="henrib" type="fix" issue="JEXL-353" due-to="Mr.Z"> - Documentation error for not-in/not-match operator - </action> - <!-- UPDATE --> - <action dev="ggregory" type="update" due-to="Gary Gregory"> - Bump actions/cache from 3 to 3.0.2. - </action> - <action dev="ggregory" type="update" due-to="Dependabot"> - Bump actions/checkout from 2 to 3 #79. - </action> - <action dev="ggregory" type="update" due-to="Gary Gregory"> - Bump actions/setup-java from 2 to 3. - </action> - <action dev="ggregory" type="update" due-to="Dependabot"> - Bump checkstyle from 9.2 to 9.2.1 #72. - </action> - <action dev="ggregory" type="update" due-to="Dependabot"> - Bump spotbugs-maven-plugin from 4.4.1 to 4.5.3.0 #73. - </action> - <action dev="ggregory" type="update" due-to="Dependabot"> - Bump maven-pmd-plugin from 3.15.0 to 3.16.0 #82. - </action> - </release> - <release version="3.2.1" date="2021-06-25"> - <action dev="henrib" type="fix" issue="JEXL-352" due-to="Øyvind Horneland"> - Possible memory leak regarding parser jjtree nodes in JEXL 3.2 - </action> - <action dev="henrib" type="fix" issue="JEXL-351" due-to="Francesco Chicchiricco"> - JXLT Template fails when using sandboxing - </action> - <action dev="henrib" type="fix" issue="JEXL-350" due-to="David Costanzo"> - map[null] throws "unsolvable property" when a Sandbox is used - </action> - </release> - <release version="3.2" date="2021-06-07"> - <action dev="henrib" type="fix" issue="JEXL-349" due-to="Cameron Samak"> - Script valid in 3.0 no longer valid - </action> - <action dev="henrib" type="fix" issue="JEXL-348" due-to="Cameron Samak"> - Parsing error when mixing namespaces with conditional expressions - </action> - <action dev="csamak" type="update" due-to="Cameron Samak"> - Update to ph-javacc-maven-plugin 4.1.4. - </action> - <action dev="henrib" type="fix" issue="JEXL-347" due-to="Cameron Samak"> - Missing unsolvable property exception for reference when used with equals - </action> - <action dev="henrib" type="fix" issue="JEXL-346" due-to="David Costanzo"> - namespace function syntax leads to strange error for "common case" of ternary operator - </action> - <action dev="ggregory" type="update" due-to="Gary Gregory"> - Bump actions/setup-java from v1.4.3 to v2 #160. - </action> - <action dev="henrib" type="add" issue="JEXL-344" due-to="David Costanzo"> - Don't fill stack trace for JexlExpression#Return (to improve performance) - </action> - <action dev="henrib" type="add" issue="JEXL-341" due-to="Garret Wilson"> - Errors needs to provide more information on caught exceptions. - </action> - <action dev="henrib" type="add" issue="JEXL-340" due-to="Garret Wilson"> - JexlException message access is incomplete and reversed - </action> - <action dev="Hussachai Puripunpinyo" type="fix" issue="JEXL-336"> - Escape some control characters - </action> - <action dev="henrib" type="update" issue="JEXL-335"> - Update JUnit to 4.13.1 - </action> - <action dev="henrib" type="add" issue="JEXL-334"> - Remove offensive terminology from code and API - </action> - <action dev="henrib" type="add" issue="JEXL-333"> - Allow declaration of namespace within script - </action> - <action dev="henrib" type="fix" issue="JEXL-331" due-to="David Costanzo"> - Please document \uXXXX escape sequence - </action> - <action dev="henrib" type="fix" issue="JEXL-330" due-to="David Costanzo"> - JexlException.Parsing.getMessage() throws exception when parse error is in long expression - </action> - <action dev="henrib" type="fix" issue="JEXL-328"> - JXLT template scripts evaluation do not process pragmas - </action> - <action dev="henrib" type="fix" issue="JEXL-327" due-to="David Costanzo"> - map[null] does not work in assignment context - </action> - <action dev="henrib" type="fix" issue="JEXL-326" due-to="David Costanzo"> - Link to "JavaCC" on syntax reference page is broken - </action> - <action dev="Dmitri Blinov" type="fix" issue="JEXL-325" due-to="Dmitri Blinov"> - Potential race-condition in NumberParser.toString() - </action> - <action dev="henrib" type="fix" issue="JEXL-324" due-to="David Costanzo"> - JexlEngine.createExpression("new()").getParsedText() throws NPE - </action> - <action dev="henrib" type="fix" issue="JEXL-323" due-to="David Costanzo"> - Ant-style variables can throw exception when evaluated for their value - </action> - <action dev="henrib" type="fix" issue="JEXL-322" due-to="Constantin Hirsch"> - JXLT String literals cannot contain curly braces - </action> - <action dev="henrib" type="fix" issue="JEXL-321" due-to="Dmitri Blinov"> - Empty do-while loop is broken - </action> - <action dev="henrib" type="fix" issue="JEXL-320" due-to="David Costanzo"> - "mvn test" fails with COMPILATION ERROR in SynchronizedArithmetic.java on Java 11 - </action> - <action dev="henrib" type="fix" issue="JEXL-319" due-to="David Costanzo"> - Apache project documentation gives instructions in subversion - </action> - <action dev="henrib" type="fix" issue="JEXL-318" due-to="Dmitri Blinov"> - Annotation processing may fail in lexical mode - </action> - <action dev="henrib" type="add" issue="JEXL-317"> - Support script cancellation through less invasive API - </action> - <action dev="henrib" type="fix" issue="JEXL-315" due-to="Mike Bartlett"> - JxltEngine literal string strings ending in \ $ or # throw JxltEngine$Exception - </action> - <action dev="henrib" type="fix" issue="JEXL-314" due-to="Osy"> - Comparison NULL values of variables NAME1.NAME2 - </action> - <action dev="henrib" type="fix" issue="JEXL-312"> - @NoJexl fails to disallow method call - </action> - <action dev="henrib" type="fix" issue="JEXL-311"> - Jxlt template scripts fail using verbatim expressions embedded in lambdas - </action> - <action dev="henrib" type="fix" issue="JEXL-309"> - Line numbers are not correct when template report errors - </action> - <action dev="henrib" type="fix" issue="JEXL-307" due-to="Dmitri Blinov"> - Variable redeclaration option - </action> - <action dev="henrib" type="fix" issue="JEXL-306" due-to="Dmitri Blinov"> - Ternary operator ? protects also its branches from resolution errors - </action> - <action dev="henrib" type="fix" issue="JEXL-305" due-to="Dmitri Blinov"> - Script debugger produces incorrect syntax - </action> - <action dev="henrib" type="fix" issue="JEXL-304" due-to="Marcus Warm"> - Error parsing overview.limit.var - </action> - <action dev="henrib" type="fix" issue="JEXL-303" due-to="Dmitri Blinov"> - Block syntax is broken - </action> - <action dev="henrib" type="fix" issue="JEXL-302" due-to="Dmitri Blinov"> - JexlScript.getVariables returns strange values for array access - </action> - <action dev="henrib" type="fix" issue="JEXL-301" due-to="Dmitri Blinov"> - Array access operator does not fail on null object in non-strict arithmetic mode - </action> - <action dev="henrib" type="fix" issue="JEXL-299" due-to="Jarek Cecho"> - Improve message error when method could not be found - </action> - <action dev="henrib" type="fix" issue="JEXL-298" due-to="Dmitri Blinov"> - Unable to call 'empty' and 'size' member methods with parameters - </action> - <action dev="henrib" type="fix" issue="JEXL-296" due-to="Dmitri Blinov"> - Real literal in scientific format is not parsed without suffix - </action> - <action dev="henrib" type="add" issue="JEXL-295"> - Add unary plus operator - </action> - <action dev="henrib" type="add" issue="JEXL-292" due-to="Dmitri Blinov"> - Allow specifying custom Permissions class for Uberspect to be used later by Introspector - </action> - <action dev="henrib" type="fix" issue="JEXL-291" due-to="David Costanzo"> - Using sandbox prevents array-syntax lookup by number in Map - </action> - <action dev="henrib" type="fix" issue="JEXL-290"> - Safe navigation fails on chained method calls - </action> - <action dev="henrib" type="fix" issue="JEXL-289" due-to="Dmitri Blinov"> - Passing undeclared function parameter can overwrite a local function variable - </action> - <action dev="henrib" type="add" issue="JEXL-288" due-to="Dmitri Blinov"> - Annotation can not be specified for a standalone statement - </action> - <action dev="henrib" type="fix" issue="JEXL-287" due-to="Dmitri Blinov"> - Wrong resolution of local variables - </action> - <action dev="henrib" type="fix" issue="JEXL-286" due-to="Dmitri Blinov"> - For statement without a body should update its variable - </action> - <action dev="henrib" type="fix" issue="JEXL-285"> - For statement variable may seem unaffected by iteration - </action> - <action dev="henrib" type="fix" issue="JEXL-282" due-to="Dmitri Blinov"> - Pragmas with antish names are broken - </action> - <action dev="henrib" type="fix" issue="JEXL-281" due-to="Mirek Hankus"> - MethodExecutor incorrectly tests for empty parameters list - </action> - <action dev="henrib" type="fix" issue="JEXL-280" due-to="Dmitri Blinov"> - break/continue statements outside of the loop - </action> - <action dev="henrib" type="fix" issue="JEXL-279"> - Null variables property access do not throw exceptions - </action> - <action dev="henrib" type="fix" issue="JEXL-278"> - Ambiguous exceptions should point to actual statement ambiguity - </action> - <action dev="henrib" type="add" issue="JEXL-275"> - Allow safe navigation as option - </action> - <action dev="henrib" type="add" issue="JEXL-274"> - Handle soft and hard stack overflow - </action> - <action dev="Dmitri Blinov" type="add" issue="JEXL-175" due-to="Dmitri Blinov"> - Add do...while(...) loops - </action> - <action dev="henrib" type="fix" issue="JEXL-272"> - Dereferencing null property not reported on method call - </action> - <action dev="henrib" type="fix" issue="JEXL-271" due-to="Dmitri Blinov"> - Hoisted variable is lost when currying lambda - </action> - <action dev="henrib" type="fix" issue="JEXL-270" due-to="Dmitri Blinov"> - Wrong Script$Curried creation when script.curry() method is called inside script - </action> - <action dev="henrib" type="add" issue="JEXL-264"> - Allow space, quote and double-quote in identifiers - </action> - <action dev="henrib" type="add" issue="JEXL-261"> - JexlEngine.setClassLoader(...) should reload namespaces that are classes - </action> - <action dev="henrib" type="add" issue="JEXL-260" due-to="Dmitri Blinov"> - Automatically inject JexlContext in constructor call when possible - </action> - <action dev="henrib" type="fix" issue="JEXL-257" due-to="Dmitri Blinov"> - Function throwing IllegalArgumentException may be called twice - </action> - <action dev="henrib" type="add" issue="JEXL-253" due-to="Woonsan Ko"> - Permissions by super type in JexlSandbox - </action> - <action dev="henrib" type="add" issue="JEXL-252" due-to="Dmitri Blinov"> - Allow for interpolated strings to be used in property access operators - </action> - <action dev="henrib" type="add" issue="JEXL-250" due-to="Dmitri Blinov"> - Safe navigation operator - </action> - <action dev="henrib" type="add" issue="JEXL-249" due-to="Dmitri Blinov"> - Java 1.8 as minimum supported version - </action> - <action dev="henrib" type="add" issue="JEXL-248" due-to="Dmitri Blinov"> - Allow range subexpression as an array property assignment identifier - </action> - <action dev="henrib" type="fix" issue="JEXL-246" due-to="Dmitri Blinov"> - Intermittent ambiguous method invocation when processing assignOverload - </action> - <action dev="henrib" type="fix" issue="JEXL-245" due-to="Ate Douma"> - Engine in strict mode fails to fail on unsolvable variables or properties - </action> - <action dev="henrib" type="fix" issue="JEXL-244" due-to="Dmitri Blinov"> - Webapp classloader memory leaks - </action> - <action dev="henrib" type="add" issue="JEXL-243"> - Allow restricting available features in Script/Expressions - </action> - <action dev="henrib" type="fix" issue="JEXL-241" due-to="Yang Wang"> - NPE when script containing string interpolation executed in multiple threads - </action> - <action dev="henrib" type="add" issue="JEXL-240" due-to="Dmitri Blinov"> - Unable to invoke a call operator using antish style variable resoltion - </action> - <action dev="henrib" type="add" issue="JEXL-238" due-to="Cameron Samak"> - Restrict getLiteralClass to a Number for NumberLiterals - </action> - <action dev="henrib" type="add" issue="JEXL-237" due-to="Dmitri Blinov"> - Ability to restrict usage of certain names when declaring local variables - </action> - <action dev="henrib" type="add" issue="JEXL-236" due-to="Dmitri Blinov"> - Support CharSequence in size(), empty() and contains() operators - </action> - <action dev="henrib" type="add" issue="JEXL-234" due-to="Dmitri Blinov"> - Extend application of operators startsWith and endsWith from String to CharSequence types - </action> - <action dev="henrib" type="fix" issue="JEXL-231" due-to="Dmitri Blinov"> - Syntax for accessing List elements is not mentioned in docs - </action> - <action dev="henrib" type="fix" issue="JEXL-230" due-to="Dmitri Blinov"> - List literal is not mentioned in docs - </action> - <action dev="henrib" type="fix" issue="JEXL-227" due-to="Dmitri Blinov"> - JexlScriptEngineFactory.getEngineVersion() should return actual version - </action> - <action dev="henrib" type="add" issue="JEXL-226" due-to="Min Wei"> - add ?? operator support - </action> - <action dev="henrib" type="fix" issue="JEXL-225" due-to="Vyacheslav Shago"> - Incorrect invoking methods with ObjectContext - </action> - <action dev="henrib" type="add" issue="JEXL-224" due-to="Dmitri Blinov"> - The ability to overload call() operator in customized JexlArithmetic implementation - </action> - <action dev="henrib" type="add" issue="JEXL-212" due-to="Dmitri Blinov"> - Restrict usage of assignment statements in JexlExpression - </action> - <action dev="Dmitri Blinov" type="add" issue="JEXL-175" due-to="Dmitri Blinov"> - java.util.regex.Pattern creation operator (regex literals) - </action> - </release> - <release version="3.1" date="2017-04-14"> - <action dev="henrib" type="add" issue="JEXL-222" due-to="Dmitri Blinov"> - The ability to declare indexed property getter/setter in customised JexlArithmetic implementation - </action> - <action dev="henrib" type="fix" issue="JEXL-221" due-to="Dmitri Blinov"> - Sporadic undefined property error caused by NPE at MapGetExecutor.tryInvoke() - </action> - <action dev="henrib" type="add" issue="JEXL-219"> - Blacklist by default in sandbox - </action> - <action dev="henrib" type="fix" issue="JEXL-217" due-to="Dmitri Blinov"> - Interpreter.getAttribute() raises exception in non-strict mode when cached property resolver is used - </action> - <action dev="henrib" type="add" issue="JEXL-216" due-to="Dmitri Blinov"> - Improve parsing concurrency in multithreaded environment - </action> - <action dev="henrib" type="add" issue="JEXL-215" due-to="Dmitri Blinov"> - JexlEngine.createInfo() is redundantly called when debug and caching is enabled leading to sub-optimal performance - </action> - <action dev="henrib" type="fix" issue="JEXL-214" due-to="Dmitri Blinov"> - Redundant call of fillInStackTrace() in JexlEngine.createInfo() ? - </action> - <action dev="henrib" type="fix" issue="JEXL-213" due-to="Dmitri Blinov"> - rename JexlBuilder.loader(Charset arg) to JexlBuilder.charset(Charset arg) - </action> - <action dev="henrib" type="add" issue="JEXL-211" due-to="Dmitri Blinov"> - Add callable method to JexlExpression interface - </action> - <action dev="henrib" type="fix" issue="JEXL-210" due-to="Dmitri Blinov"> - The way to cancel script execution with an error - </action> - <action dev="henrib" type="fix" issue="JEXL-209" due-to="Dmitri Blinov"> - Unsolvable function/method '<?>.<null>(...)' - </action> - <action dev="henrib" type="fix" issue="JEXL-208" due-to="Joe Tom"> - Documentation typos/inconsistencies - </action> - <action dev="henrib" type="fix" issue="JEXL-207" due-to="Dmitri Blinov"> - Inconsistent error handling - </action> - <action dev="henrib" type="fix" issue="JEXL-206" due-to="Dmitri Blinov"> - testCallableCancel() test hangs sporadically - </action> - <action dev="henrib" type="fix" issue="JEXL-205" due-to="Dmitri Blinov"> - testCancelForever() is not terminated properly - </action> - <action dev="henrib" type="fix" issue="JEXL-204" due-to="Dmitri Blinov"> - Script is not interrupted by a method call throwing Exception - </action> - <action dev="henrib" type="fix" issue="JEXL-203" due-to="Dmitri Blinov"> - JexlArithmetic.options() diverts Interpreter to use default implementation of JexlArithmetic instead of custom one - </action> - <action dev="henrib" type="fix" issue="JEXL-202" due-to="Dmitri Blinov"> - Detect invalid assignment operator usage with non-assignable l-value during script parsing - </action> - <action dev="henrib" type="add" issue="JEXL-201" due-to="Dmitri Blinov"> - Allow Interpreter to use live values from JexlEngine.Option interface implemented by JexlContext - </action> - <action dev="henrib" type="fix" issue="JEXL-198" due-to="Terefang Verigorn"> - JxltEngine Template does not expose pragmas - </action> - <action dev="henrib" type="add" issue="JEXL-197" due-to="Dmitri Blinov"> - Add annotations - </action> - <action dev="henrib" type="fix" issue="JEXL-196" due-to="Dmitri Blinov"> - Script execution hangs while calling method with one argument without parameter - </action> - <action dev="henrib" type="fix" issue="JEXL-195" due-to="Dmitri Blinov"> - Support for AtomicBoolean in logical expressions - </action> - <action dev="henrib" type="add" issue="JEXL-194" due-to="Dmitri Blinov"> - allow synchronization on iterableValue in foreach statement - </action> - <action dev="henrib" type="fix" issue="JEXL-193" due-to="Dmitri Blinov"> - InterruptedException is swallowed in function call in silent and non-strict mode - </action> - <action dev="henrib" type="fix" issue="JEXL-192" due-to="Constantin Mitocaru"> - Invalid return type when expected result is null - </action> - <action dev="henrib" type="fix" issue="JEXL-191" due-to="Constantin Mitocaru"> - Jexl3 unsolvable property exception when using enum - </action> - <action dev="henrib" type="fix" issue="JEXL-190" due-to="Dmitri Blinov"> - local function within context is not resolved if function resolver class without namespace is specified - </action> - <action dev="henrib" type="fix" issue="JEXL-189" due-to="Dmitri Blinov"> - Possible bug in Interpreter.isCancelled() - </action> - <action dev="henrib" type="fix" issue="JEXL-188" due-to="Dmitri Blinov"> - Possible bug in JexlArithmetic.isFloatingPointNumber() - </action> - <action dev="henrib" type="fix" issue="JEXL-187" due-to="Dmitri Blinov"> - Jexl Syntax doc does not mention 'continue' and 'break' operators - </action> - <action dev="henrib" type="fix" issue="JEXL-186" due-to="Philippe Mouawad"> - Performance regression in arithmetic operations compared to JEXL 2.1 - </action> - </release> - <release version="3.0" date="2015-12-27"> - <action dev="henrib" type="fix" issue="JEXL-184"> - dot-ed identifiers parsing failure - </action> - <action dev="henrib" type="fix" issue="JEXL-180" due-to="Kimball Robinson"> - Documentation - suggests using float for financials - </action> - <action dev="henrib" type="add"> - Added a 'curry' method to script returning script with bound arguments - </action> - <action dev="henrib" type="add" issue="JEXL-178 " due-to="Dmitri Blinov"> - 'Unsolvable property' message to provide details about underlying exception - </action> - <action dev="henrib" type="add" issue="JEXL-177" due-to="Dmitri Blinov"> - Unified expressions to be used in String literals in JEXL scripts - </action> - <action dev="henrib" type="add" issue="JEXL-176" due-to="Dmitri Blinov"> - Synonym operator name 'in' for operator =~ // Remove 'foreach...in' syntax - </action> - <action dev="henrib" type="add" issue="JEXL-174" due-to="Dmitri Blinov"> - Overloadable property access operators - </action> - <action dev="henrib" type="add" issue="JEXL-173" due-to="Dmitri Blinov"> - Duck-typed java closures - </action> - <action dev="henrib" type="fix" issue="JEXL-171" due-to="Dmitri Blinov"> - Map access operator does not work if key name clashes with map property name - </action> - <action dev="henrib" type="add" issue="JEXL-170"> - Implement assignment operators - </action> - <action dev="henrib" type="fix" issue="JEXL-169" due-to="Robert Neßelrath"> - A string is wrongly identified as FloatingPointNumber - </action> - <action dev="henrib" type="fix" issue="JEXL-168" due-to="Dmitri Blinov"> - Dedicated operator for String concatenation - </action> - <action dev="henrib" type="fix" issue="JEXL-79" due-to="sebb"> - Add support for growable arrays (ArrayLists) - </action> - <action dev="henrib" type="fix" issue="JEXL-167" due-to="Dmitri Blinov"> - Possible loss of value when converting BigDecimal to BigInteger - </action> - <action dev="henrib" type="fix" issue="JEXL-166" due-to="Dmitri Blinov"> - Incorrect operator symbol for bitwise complement in jexlArithmetic - </action> - <action dev="henrib" type="add" issue="JEXL-164" due-to="Dmitri Blinov"> - public getters for high/low properties for IntegerRange and LongRange - </action> - <action dev="henrib" type="fix" issue="JEXL-163" due-to="Dmitri Blinov"> - empty(new ("java.lang.Long", 4294967296)) returns true - </action> - <action dev="henrib" type="fix" issue="JEXL-162" due-to="Dmitri Blinov"> - empty() function throws an exception : unsupported type - </action> - <action dev="henrib" type="fix" issue="JEXL-160" due-to="Dmitri Blinov"> - typo in package.html - </action> - <action dev="henrib" type="fix" issue="JEXL-158" due-to="Lars Cebulla"> - Handle locale decimal separators correctly - </action> - <action dev="henrib" type="fix" issue="JEXL-157" due-to="Lars Cebulla"> - Replace File.pathSeparator with File.separator - </action> - <action dev="henrib" type="add" > - Added a method to get parameters from a template - </action> - <action dev="henrib" type="fix" > - Identifiers beginning with 0s (like 00200) shoud not be considered integers - </action> - <action dev="henrib" type="add" issue="JEXL-152" due-to="Dmitri Blinov"> - Extend Range literal to support Long values - </action> - <action dev="henrib" type="add" issue="JEXL-149" due-to="Dmitri Blinov"> - Set Construction as per EL 3.0 spec - </action> - <action dev="henrib" type="add" > - Added #pragma instruction, allowing scripts to communicate information to the underlying execution - context. - </action> - <action dev="henrib" type="fix" > - Hoisted variables in a lambda are seen as local variables; should be seen as global - </action> - <action dev="henrib" type="fix" > - Local variables must preclude antish variables handling - </action> - <action dev="henrib" type="fix" > - Depending on unkown conditions, overriden varargs method may return false to isVarArgs; - fix by checking method in declaring class hierarchy. - </action> - <action dev="henrib" type="fix" issue="JEXL-146" due-to="David Maplesden"> - Performance problem in Interpreter.unknownVariable mechanism - </action> - <action dev="henrib" type="fix"> - Functions assigned to local variables can not perform recursive calls - </action> - <action dev="henrib" type="fix"> - Improved error reporting on undefined or null variables - </action> - <action dev="henrib" type="fix"> - Improved operator overloading logic in JexlArithmeric (caching) - </action> - <action dev="henrib" type="fix" issue="JEXL-145" due-to="Ian Connor"> - Sandbox calling wrong check (classname vs class) - </action> - <action dev="henrib" type="fix" > - JXLT fails to parse expressions that use map constants - </action> - <action dev="henrib" type="add" > - Added break/continue in JEXL syntax - </action> - <action dev="henrib" type="add" > - Added convenience methods to pass/use JexlInfo and arguments in templates - </action> - <action dev="henrib" type="add" > - Added ability to overload some operators in JexlArithmetic (through introspection, based on method names) - </action> - <action dev="henrib" type="fix" > - Fixed issue in edge case method resolution wrt overload and varargs - </action> - <action dev="henrib" type="add" > - Switch logging to log4j 1.2 - </action> - <action dev="henrib" type="fix" issue="JEXL-144" due-to="Woonsang Ko"> - Empty array property setting fails - </action> - <action dev="henrib" type="fix" issue="JEXL-142" due-to="Juozas Baliuks"> - Map expression issue with empty key - </action> - <action dev="henrib" type="fix" issue="JEXL-141" due-to="Harpreet Singh"> - Suffix for Big Decimal and Big Integer Literal is incorrectly mentioned in Java docs - </action> - <action dev="henrib" type="fix" issue="JEXL-137"> - Invalid script variable list for nested array/map access - </action> - <action dev="henrib" type="fix"> - Fixed Engine.getVariables that was erroneously considering method calls as variable usage - </action> - <action dev="henrib" type="fix"> - Fixed issue in ternary expression - (grammar was not precise enough to differentiate namespace:function calls vs ternary right hand side) - </action> - <action dev="henrib" type="add"> - NaN is now a keyword equivalent to #NaN (deprecated): POTENTIAL SCRIPT BREAK! - </action> - <action dev="henrib" type="add"> - 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) - </action> - <action dev="henrib" type="add"> - Added syntactic shortcut to create parametric scripts (script source creates an anonymous function) - </action> - <action dev="henrib" type="fix"> - 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 - </action> - <action dev="henrib" type="fix"> - 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) - </action> - <action dev="henrib" type="fix"> - 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) - </action> - <action dev="henrib" type="add" issue="JEXL-133" due-to="Alfred Reibenschuh"> - String matching Operator short-hand inspired by CSS3 - </action> - <action dev="henrib" type="add" > - Added the range operator (x .. y) - </action> - <action dev="henrib" type="add" issue="JEXL-128" due-to="Matteo Trotta"> - ObjectContext should implement NamespaceResolver - </action> - <action dev="henrib" type="add" issue="JEXL-127"> - Allow the creation of functions - </action> - <action dev="henrib" type="add" issue="JEXL-123"> - Redesign API for stability - </action> - <action dev="henrib" type="add" issue="JEXL-122"> - Move JEXL from org.apache.comms.jexl2 to org.apache.commons.jexl3 - </action> - <action dev="henrib" type="fix" issue="JEXL-136"> - Script calls within scripts may fail with number arguments - </action> - <action dev="henrib" type="fix" issue="JEXL-135" due-to="Tomas Kukosa"> - using map as script parameter or local variable - </action> - <action dev="henrib" type="fix" issue="JEXL-134" due-to="Manoj Mokashi"> - Issue with evaluation of concat of variables : \r + \n gives 0 - </action> - <action dev="henrib" type="fix" issue="JEXL-131" due-to="Clay Bruce"> - UnifiedJexl (2.1.x) parsing may fail with NPE - </action> - <action dev="henrib" type="fix" issue="JEXL-130" due-to="William Bakker"> - Ternary Conditional fails for Object values - </action> - <action dev="henrib" type="add" issue="JEXL-126" due-to="Grace"> - Decimal numbers literals fix be 'double' by default (instead of 'float') - </action> - </release> - <release version="2.1.1" date="2011-12-24"> - <action dev="henrib" type="fix" issue="JEXL-124"> - Array parameters to methods don't work anymore (regression) - </action> - </release> - <release version="2.1" date="2011-13-11"> - <action dev="henrib" type="add" issue="JEXL-121"> - Add simple template features - </action> - <action dev="henrib" type="fix" issue="JEXL-120" due-to="Lukas Krecan"> - Make ParseException work in sandboxed environment - </action> - <action dev="henrib" type="add" issue="JEXL-119"> - Allow indexed properties container resolution in expressions - </action> - <action dev="henrib" type="add" issue="JEXL-118" due-to="Max Tardiveau"> - Provide an IN operator: =~ / match operator extended to provide IN behavior (!~ as NOT IN) - </action> - <action dev="henrib" type="add" issue="JEXL-116" due-to="Sarel Botha"> - Add control over classes, methods, constructors and properties allowed in scripts - </action> - <action dev="henrib" type="add" issue="JEXL-115" due-to="Sarel Botha"> - Add support for asynchronous script execution and cancellation - </action> - <action dev="henrib" type="add" issue="JEXL-114"> - Allow scripts to create local variables // Add return keyword - </action> - <action dev="henrib" type="add" issue="JEXL-113" due-to="Max Tardiveau"> - Add functions to extract which variables, parameters and local variables are used to evaluate a script - </action> - <action dev="henrib" type="fix" issue="JEXL-112" due-to="sebb"> - Cannot parse Integer.MIN_VALUE. - </action> - <action dev="henrib" type="fix" issue="JEXL-24" due-to="freish"> - Support Long for integer literal instead of Integers. - </action> - <action dev="henrib" type="add"> - Added ObjectContext that wraps an object as JexlContext and added JexlContext as source to solve - top-level namespace functions. - </action> - <action dev="henrib" type="fix" issue="JEXL-111" due-to="freish"> - expression execute error depending on numeric type - </action> - <action dev="henrib" type="add" issue="JEXL-83" due-to="sebb"> - Make JexlArithmetic immutable (and threadsafe); also added a mutable JexlThreadedArithmetic. - </action> - <action dev="henrib" type="fix" issue="JEXL-108" due-to="Cristian Lorenzetto"> - Parsing error if i define a empty literal array/map - </action> - <action dev="henrib" type="fix" issue="JEXL-107"> - Literals and parenthesized expressions can not be used as references - </action> - <action dev="henrib" type="fix" issue="JEXL-106" due-to="Michal Sabol"> - When divide two BigDecimal values in an expression it results in java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. - </action> - <action dev="henrib" type="add" issue="JEXL-105" due-to="Cary Thompson">Array literals are considered constant even when they are not.</action> - <action dev="henrib" type="fix" issue="JEXL-104" due-to="Andreas Haufler">NPE in JexlArithmetic when an Array-Expression containing a null is used.</action> - <action dev="henrib" type="add" issue="JEXL-102" due-to="sebb">Add "jexl2" as a supported name</action> - <action dev="henrib" type="add" issue="JEXL-101" due-to="Tobias Shulte"> - Vararg methods where the first argument is no vararg can not be called with only the fixed parameters given - </action> - </release> - <release version="2.0.1" date="2010-03-28"> - <action dev="henrib" type="add" issue="JEXL-100">Array access expressions fail when evaluated twice and cache is enabled</action> - <action dev="henrib" type="add" issue="JEXL-99" due-to="Marcel Schoen">Documentation of Thread Safety / Invalid code examples on homepage</action> - <action dev="henrib" type="add" issue="JEXL-98" due-to="Marcel Schoen">Quote escaping cannot be escaped</action> - </release> - <release version="2.0" date="2010-02-02"> - <action dev="henrib" type="add" issue="JEXL-27" due-to="Weikuo Liaw">Bean-ish & ant-ish like assignment</action> - <action dev="henrib" type="add" issue="JEXL-19" due-to="Jesse Glick">Ternary operator support</action> - <action dev="henrib" type="add" issue="JEXL-46" due-to="Alfred Reibenschuh">adding Perl-like regular-expression operators</action> - <action dev="henrib" type="add" issue="JEXL-41" due-to="Alejandro Torras">Support for ${...} and #{...} expressions</action> - <action dev="henrib" type="add" issue="JEXL-15" due-to="Paul Libbrecht">User definable functions</action> - <action dev="sebb" type="add" issue="JEXL-63">JSR-223 support</action> - <action dev="henrib" type="update" issue="JEXL-10" due-to="Paul Libbrecht">Make possible checking for unresolved variables</action> - <action dev="henrib" type="update" issue="JEXL-11" due-to="Paul Libbrecht">Don"t make null convertible into anything</action> - <action dev="henrib" type="fix" issue="JEXL-47" due-to="sebb">Allow single-line comments with //</action> - <action dev="henrib" type="fix" issue="JEXL-44" due-to="sebb">Comments don"t allow double-quotes</action> - <action dev="henrib" type="add" issue="JEXL-71" due-to="sebb">Array literal syntax is not supported</action> - <action dev="dion" type="fix" issue="JEXL-17" due-to="Nestor Urquiza">allowing quote escaping</action> - <action dev="dion" type="fix" issue="JEXL-25" due-to="Marek Lewczuk">Call method with varargs</action> - <action dev="dion" type="fix" issue="JEXL-32" due-to="Kedar Dave">BigDecimal values are treated as Long values which results in loss of precision</action> - <action dev="dion" type="fix" issue="JEXL-33">Remove unnecessary throws Exception from various classes</action> - <action dev="henrib" type="fix" issue="JEXL-50" due-to="sebb">Div operator does not do integer division</action> - <action dev="henrib" type="fix" issue="JEXL-87" due-to="sebb">Inconsistent behavior of arithmetical operations</action> - <action dev="henrib" type="fix" issue="JEXL-21" due-to="AC">operator overloading / hooks on operator processing</action> - <action dev="henrib" type="add">"new" operator support</action> - <action dev="henrib" type="add">Support Unicode escapes in string literals</action> - <action dev="henrib" type="update">Various performance enhancements & caches</action> - </release> - <release version="1.1.1-SNAPSHOT" date="unreleased"> - <action dev="dion" type="update" issue="JEXL-23">Fix jdk1.3 only code that has crept into JEXL tests</action> - <action dev="dion" type="update" issue="JEXL-22" due-to="Randy H.">Allow unicode literals to be used</action> - </release> - <release version="1.1" date="2006-09-10"> - <action dev="rahul" type="fix" issue="JEXL-17" due-to="Kohsuke Kawaguchi">Consistently throw ParseException in case of a parsing failure, not an Error.</action> - <action dev="dion" type="fix" issue="JEXL-3" due-to="Guido Anzuoni">Allow for static methods to be called on classes and not just objects.</action> - <action dev="dion" type="add">Added Script and ScriptFactory to allow scripts to be executed from text, files or a URL.</action> - <action dev="dion" type="add">Added implementation for bitwise operators: and, complement, or, xor.</action> - <action dev="dion" type="add">Added implementation for the foreach statement.</action> - <action dev="dion" type="add">Added implementation for the while statement.</action> - <action dev="dion" type="add">Added implementation for block statements, e.g. curly braces containing multiple statements.</action> - <action dev="dion" type="add">Added implementation for the if statement.</action> - <action dev="dion" type="fix" issue="JEXL-6">Unary minus was only working for integer values.</action> - <action dev="dion" type="update">Add @since tags to code so we can track API additions via javadoc</action> - <action dev="dion" type="add" issue="JEXL-4" due-to="Barry Lagerweij">Support assignment to variables</action> - <action dev="dion" type="fix" issue="JEXL-5">'abc'.substring(0,1+1) is empty (method matching problem)</action> - </release> - <release version="1.0" date="2004-09-07"> - <action dev="dion" type="fix">Support ant-style properties</action> - </release> - <release version="1.0-RC1" date="2004-08-26"> - <action dev="dion" type="fix" due-to="Geoff Waggott">Fix string concatenation broken for variables</action> - <action dev="dion" type="fix" issue="JEXL-12">Implement short circuit logic for boolean and/or</action> - <action dev="dion" type="add">Handle any size() method that returns an int</action> - <action dev="dion" type="fix" issue="JEXL-9">Can't issue .size() on java.util.Set</action> - </release> - </body> -</document> +<?xml version="1.0" encoding="UTF-8"?> + +<!-- +/* +* Licensed to the Apache Software Foundation (ASF) under one or more +* contributor license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright ownership. +* The ASF licenses this file to You under the Apache License, Version 2.0 +* (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +--> + +<document> + <properties> + <title>Apache Commons JEXL Release Notes</title> + <author email="d...@commons.apache.org">Commons Developers</author> + </properties> + <body> + <release version="3.3" date="YYYY-MM-DD"> + <!-- UPDATE --> + <action dev="henrib" type="add" issue="JEXL-357" > + Configure accessible packages/classes/methods/fields + </action> + <action dev="henrib" type="fix" issue="JEXL-354" due-to="William Price"> + #pragma does not handle negative integer or real literals + </action> + <action dev="henrib" type="fix" issue="JEXL-353" due-to="Mr.Z"> + Documentation error for not-in/not-match operator + </action> + <!-- UPDATE --> + <action dev="ggregory" type="update" due-to="Gary Gregory"> + Bump actions/cache from 3 to 3.0.3. + </action> + <action dev="ggregory" type="update" due-to="Dependabot"> + Bump actions/checkout from 2 to 3 #79. + </action> + <action dev="ggregory" type="update" due-to="Gary Gregory"> + Bump actions/setup-java from 2 to 3. + </action> + <action dev="ggregory" type="update" due-to="Dependabot"> + Bump checkstyle from 9.2 to 9.2.1 #72. + </action> + <action dev="ggregory" type="update" due-to="Dependabot"> + Bump spotbugs-maven-plugin from 4.4.1 to 4.5.3.0 #73. + </action> + <action dev="ggregory" type="update" due-to="Dependabot"> + Bump maven-pmd-plugin from 3.15.0 to 3.16.0 #82. + </action> + </release> + <release version="3.2.1" date="2021-06-25"> + <action dev="henrib" type="fix" issue="JEXL-352" due-to="Øyvind Horneland"> + Possible memory leak regarding parser jjtree nodes in JEXL 3.2 + </action> + <action dev="henrib" type="fix" issue="JEXL-351" due-to="Francesco Chicchiricco"> + JXLT Template fails when using sandboxing + </action> + <action dev="henrib" type="fix" issue="JEXL-350" due-to="David Costanzo"> + map[null] throws "unsolvable property" when a Sandbox is used + </action> + </release> + <release version="3.2" date="2021-06-07"> + <action dev="henrib" type="fix" issue="JEXL-349" due-to="Cameron Samak"> + Script valid in 3.0 no longer valid + </action> + <action dev="henrib" type="fix" issue="JEXL-348" due-to="Cameron Samak"> + Parsing error when mixing namespaces with conditional expressions + </action> + <action dev="csamak" type="update" due-to="Cameron Samak"> + Update to ph-javacc-maven-plugin 4.1.4. + </action> + <action dev="henrib" type="fix" issue="JEXL-347" due-to="Cameron Samak"> + Missing unsolvable property exception for reference when used with equals + </action> + <action dev="henrib" type="fix" issue="JEXL-346" due-to="David Costanzo"> + namespace function syntax leads to strange error for "common case" of ternary operator + </action> + <action dev="ggregory" type="update" due-to="Gary Gregory"> + Bump actions/setup-java from v1.4.3 to v2 #160. + </action> + <action dev="henrib" type="add" issue="JEXL-344" due-to="David Costanzo"> + Don't fill stack trace for JexlExpression#Return (to improve performance) + </action> + <action dev="henrib" type="add" issue="JEXL-341" due-to="Garret Wilson"> + Errors needs to provide more information on caught exceptions. + </action> + <action dev="henrib" type="add" issue="JEXL-340" due-to="Garret Wilson"> + JexlException message access is incomplete and reversed + </action> + <action dev="Hussachai Puripunpinyo" type="fix" issue="JEXL-336"> + Escape some control characters + </action> + <action dev="henrib" type="update" issue="JEXL-335"> + Update JUnit to 4.13.1 + </action> + <action dev="henrib" type="add" issue="JEXL-334"> + Remove offensive terminology from code and API + </action> + <action dev="henrib" type="add" issue="JEXL-333"> + Allow declaration of namespace within script + </action> + <action dev="henrib" type="fix" issue="JEXL-331" due-to="David Costanzo"> + Please document \uXXXX escape sequence + </action> + <action dev="henrib" type="fix" issue="JEXL-330" due-to="David Costanzo"> + JexlException.Parsing.getMessage() throws exception when parse error is in long expression + </action> + <action dev="henrib" type="fix" issue="JEXL-328"> + JXLT template scripts evaluation do not process pragmas + </action> + <action dev="henrib" type="fix" issue="JEXL-327" due-to="David Costanzo"> + map[null] does not work in assignment context + </action> + <action dev="henrib" type="fix" issue="JEXL-326" due-to="David Costanzo"> + Link to "JavaCC" on syntax reference page is broken + </action> + <action dev="Dmitri Blinov" type="fix" issue="JEXL-325" due-to="Dmitri Blinov"> + Potential race-condition in NumberParser.toString() + </action> + <action dev="henrib" type="fix" issue="JEXL-324" due-to="David Costanzo"> + JexlEngine.createExpression("new()").getParsedText() throws NPE + </action> + <action dev="henrib" type="fix" issue="JEXL-323" due-to="David Costanzo"> + Ant-style variables can throw exception when evaluated for their value + </action> + <action dev="henrib" type="fix" issue="JEXL-322" due-to="Constantin Hirsch"> + JXLT String literals cannot contain curly braces + </action> + <action dev="henrib" type="fix" issue="JEXL-321" due-to="Dmitri Blinov"> + Empty do-while loop is broken + </action> + <action dev="henrib" type="fix" issue="JEXL-320" due-to="David Costanzo"> + "mvn test" fails with COMPILATION ERROR in SynchronizedArithmetic.java on Java 11 + </action> + <action dev="henrib" type="fix" issue="JEXL-319" due-to="David Costanzo"> + Apache project documentation gives instructions in subversion + </action> + <action dev="henrib" type="fix" issue="JEXL-318" due-to="Dmitri Blinov"> + Annotation processing may fail in lexical mode + </action> + <action dev="henrib" type="add" issue="JEXL-317"> + Support script cancellation through less invasive API + </action> + <action dev="henrib" type="fix" issue="JEXL-315" due-to="Mike Bartlett"> + JxltEngine literal string strings ending in \ $ or # throw JxltEngine$Exception + </action> + <action dev="henrib" type="fix" issue="JEXL-314" due-to="Osy"> + Comparison NULL values of variables NAME1.NAME2 + </action> + <action dev="henrib" type="fix" issue="JEXL-312"> + @NoJexl fails to disallow method call + </action> + <action dev="henrib" type="fix" issue="JEXL-311"> + Jxlt template scripts fail using verbatim expressions embedded in lambdas + </action> + <action dev="henrib" type="fix" issue="JEXL-309"> + Line numbers are not correct when template report errors + </action> + <action dev="henrib" type="fix" issue="JEXL-307" due-to="Dmitri Blinov"> + Variable redeclaration option + </action> + <action dev="henrib" type="fix" issue="JEXL-306" due-to="Dmitri Blinov"> + Ternary operator ? protects also its branches from resolution errors + </action> + <action dev="henrib" type="fix" issue="JEXL-305" due-to="Dmitri Blinov"> + Script debugger produces incorrect syntax + </action> + <action dev="henrib" type="fix" issue="JEXL-304" due-to="Marcus Warm"> + Error parsing overview.limit.var + </action> + <action dev="henrib" type="fix" issue="JEXL-303" due-to="Dmitri Blinov"> + Block syntax is broken + </action> + <action dev="henrib" type="fix" issue="JEXL-302" due-to="Dmitri Blinov"> + JexlScript.getVariables returns strange values for array access + </action> + <action dev="henrib" type="fix" issue="JEXL-301" due-to="Dmitri Blinov"> + Array access operator does not fail on null object in non-strict arithmetic mode + </action> + <action dev="henrib" type="fix" issue="JEXL-299" due-to="Jarek Cecho"> + Improve message error when method could not be found + </action> + <action dev="henrib" type="fix" issue="JEXL-298" due-to="Dmitri Blinov"> + Unable to call 'empty' and 'size' member methods with parameters + </action> + <action dev="henrib" type="fix" issue="JEXL-296" due-to="Dmitri Blinov"> + Real literal in scientific format is not parsed without suffix + </action> + <action dev="henrib" type="add" issue="JEXL-295"> + Add unary plus operator + </action> + <action dev="henrib" type="add" issue="JEXL-292" due-to="Dmitri Blinov"> + Allow specifying custom Permissions class for Uberspect to be used later by Introspector + </action> + <action dev="henrib" type="fix" issue="JEXL-291" due-to="David Costanzo"> + Using sandbox prevents array-syntax lookup by number in Map + </action> + <action dev="henrib" type="fix" issue="JEXL-290"> + Safe navigation fails on chained method calls + </action> + <action dev="henrib" type="fix" issue="JEXL-289" due-to="Dmitri Blinov"> + Passing undeclared function parameter can overwrite a local function variable + </action> + <action dev="henrib" type="add" issue="JEXL-288" due-to="Dmitri Blinov"> + Annotation can not be specified for a standalone statement + </action> + <action dev="henrib" type="fix" issue="JEXL-287" due-to="Dmitri Blinov"> + Wrong resolution of local variables + </action> + <action dev="henrib" type="fix" issue="JEXL-286" due-to="Dmitri Blinov"> + For statement without a body should update its variable + </action> + <action dev="henrib" type="fix" issue="JEXL-285"> + For statement variable may seem unaffected by iteration + </action> + <action dev="henrib" type="fix" issue="JEXL-282" due-to="Dmitri Blinov"> + Pragmas with antish names are broken + </action> + <action dev="henrib" type="fix" issue="JEXL-281" due-to="Mirek Hankus"> + MethodExecutor incorrectly tests for empty parameters list + </action> + <action dev="henrib" type="fix" issue="JEXL-280" due-to="Dmitri Blinov"> + break/continue statements outside of the loop + </action> + <action dev="henrib" type="fix" issue="JEXL-279"> + Null variables property access do not throw exceptions + </action> + <action dev="henrib" type="fix" issue="JEXL-278"> + Ambiguous exceptions should point to actual statement ambiguity + </action> + <action dev="henrib" type="add" issue="JEXL-275"> + Allow safe navigation as option + </action> + <action dev="henrib" type="add" issue="JEXL-274"> + Handle soft and hard stack overflow + </action> + <action dev="Dmitri Blinov" type="add" issue="JEXL-175" due-to="Dmitri Blinov"> + Add do...while(...) loops + </action> + <action dev="henrib" type="fix" issue="JEXL-272"> + Dereferencing null property not reported on method call + </action> + <action dev="henrib" type="fix" issue="JEXL-271" due-to="Dmitri Blinov"> + Hoisted variable is lost when currying lambda + </action> + <action dev="henrib" type="fix" issue="JEXL-270" due-to="Dmitri Blinov"> + Wrong Script$Curried creation when script.curry() method is called inside script + </action> + <action dev="henrib" type="add" issue="JEXL-264"> + Allow space, quote and double-quote in identifiers + </action> + <action dev="henrib" type="add" issue="JEXL-261"> + JexlEngine.setClassLoader(...) should reload namespaces that are classes + </action> + <action dev="henrib" type="add" issue="JEXL-260" due-to="Dmitri Blinov"> + Automatically inject JexlContext in constructor call when possible + </action> + <action dev="henrib" type="fix" issue="JEXL-257" due-to="Dmitri Blinov"> + Function throwing IllegalArgumentException may be called twice + </action> + <action dev="henrib" type="add" issue="JEXL-253" due-to="Woonsan Ko"> + Permissions by super type in JexlSandbox + </action> + <action dev="henrib" type="add" issue="JEXL-252" due-to="Dmitri Blinov"> + Allow for interpolated strings to be used in property access operators + </action> + <action dev="henrib" type="add" issue="JEXL-250" due-to="Dmitri Blinov"> + Safe navigation operator + </action> + <action dev="henrib" type="add" issue="JEXL-249" due-to="Dmitri Blinov"> + Java 1.8 as minimum supported version + </action> + <action dev="henrib" type="add" issue="JEXL-248" due-to="Dmitri Blinov"> + Allow range subexpression as an array property assignment identifier + </action> + <action dev="henrib" type="fix" issue="JEXL-246" due-to="Dmitri Blinov"> + Intermittent ambiguous method invocation when processing assignOverload + </action> + <action dev="henrib" type="fix" issue="JEXL-245" due-to="Ate Douma"> + Engine in strict mode fails to fail on unsolvable variables or properties + </action> + <action dev="henrib" type="fix" issue="JEXL-244" due-to="Dmitri Blinov"> + Webapp classloader memory leaks + </action> + <action dev="henrib" type="add" issue="JEXL-243"> + Allow restricting available features in Script/Expressions + </action> + <action dev="henrib" type="fix" issue="JEXL-241" due-to="Yang Wang"> + NPE when script containing string interpolation executed in multiple threads + </action> + <action dev="henrib" type="add" issue="JEXL-240" due-to="Dmitri Blinov"> + Unable to invoke a call operator using antish style variable resoltion + </action> + <action dev="henrib" type="add" issue="JEXL-238" due-to="Cameron Samak"> + Restrict getLiteralClass to a Number for NumberLiterals + </action> + <action dev="henrib" type="add" issue="JEXL-237" due-to="Dmitri Blinov"> + Ability to restrict usage of certain names when declaring local variables + </action> + <action dev="henrib" type="add" issue="JEXL-236" due-to="Dmitri Blinov"> + Support CharSequence in size(), empty() and contains() operators + </action> + <action dev="henrib" type="add" issue="JEXL-234" due-to="Dmitri Blinov"> + Extend application of operators startsWith and endsWith from String to CharSequence types + </action> + <action dev="henrib" type="fix" issue="JEXL-231" due-to="Dmitri Blinov"> + Syntax for accessing List elements is not mentioned in docs + </action> + <action dev="henrib" type="fix" issue="JEXL-230" due-to="Dmitri Blinov"> + List literal is not mentioned in docs + </action> + <action dev="henrib" type="fix" issue="JEXL-227" due-to="Dmitri Blinov"> + JexlScriptEngineFactory.getEngineVersion() should return actual version + </action> + <action dev="henrib" type="add" issue="JEXL-226" due-to="Min Wei"> + add ?? operator support + </action> + <action dev="henrib" type="fix" issue="JEXL-225" due-to="Vyacheslav Shago"> + Incorrect invoking methods with ObjectContext + </action> + <action dev="henrib" type="add" issue="JEXL-224" due-to="Dmitri Blinov"> + The ability to overload call() operator in customized JexlArithmetic implementation + </action> + <action dev="henrib" type="add" issue="JEXL-212" due-to="Dmitri Blinov"> + Restrict usage of assignment statements in JexlExpression + </action> + <action dev="Dmitri Blinov" type="add" issue="JEXL-175" due-to="Dmitri Blinov"> + java.util.regex.Pattern creation operator (regex literals) + </action> + </release> + <release version="3.1" date="2017-04-14"> + <action dev="henrib" type="add" issue="JEXL-222" due-to="Dmitri Blinov"> + The ability to declare indexed property getter/setter in customised JexlArithmetic implementation + </action> + <action dev="henrib" type="fix" issue="JEXL-221" due-to="Dmitri Blinov"> + Sporadic undefined property error caused by NPE at MapGetExecutor.tryInvoke() + </action> + <action dev="henrib" type="add" issue="JEXL-219"> + Blacklist by default in sandbox + </action> + <action dev="henrib" type="fix" issue="JEXL-217" due-to="Dmitri Blinov"> + Interpreter.getAttribute() raises exception in non-strict mode when cached property resolver is used + </action> + <action dev="henrib" type="add" issue="JEXL-216" due-to="Dmitri Blinov"> + Improve parsing concurrency in multithreaded environment + </action> + <action dev="henrib" type="add" issue="JEXL-215" due-to="Dmitri Blinov"> + JexlEngine.createInfo() is redundantly called when debug and caching is enabled leading to sub-optimal performance + </action> + <action dev="henrib" type="fix" issue="JEXL-214" due-to="Dmitri Blinov"> + Redundant call of fillInStackTrace() in JexlEngine.createInfo() ? + </action> + <action dev="henrib" type="fix" issue="JEXL-213" due-to="Dmitri Blinov"> + rename JexlBuilder.loader(Charset arg) to JexlBuilder.charset(Charset arg) + </action> + <action dev="henrib" type="add" issue="JEXL-211" due-to="Dmitri Blinov"> + Add callable method to JexlExpression interface + </action> + <action dev="henrib" type="fix" issue="JEXL-210" due-to="Dmitri Blinov"> + The way to cancel script execution with an error + </action> + <action dev="henrib" type="fix" issue="JEXL-209" due-to="Dmitri Blinov"> + Unsolvable function/method '<?>.<null>(...)' + </action> + <action dev="henrib" type="fix" issue="JEXL-208" due-to="Joe Tom"> + Documentation typos/inconsistencies + </action> + <action dev="henrib" type="fix" issue="JEXL-207" due-to="Dmitri Blinov"> + Inconsistent error handling + </action> + <action dev="henrib" type="fix" issue="JEXL-206" due-to="Dmitri Blinov"> + testCallableCancel() test hangs sporadically + </action> + <action dev="henrib" type="fix" issue="JEXL-205" due-to="Dmitri Blinov"> + testCancelForever() is not terminated properly + </action> + <action dev="henrib" type="fix" issue="JEXL-204" due-to="Dmitri Blinov"> + Script is not interrupted by a method call throwing Exception + </action> + <action dev="henrib" type="fix" issue="JEXL-203" due-to="Dmitri Blinov"> + JexlArithmetic.options() diverts Interpreter to use default implementation of JexlArithmetic instead of custom one + </action> + <action dev="henrib" type="fix" issue="JEXL-202" due-to="Dmitri Blinov"> + Detect invalid assignment operator usage with non-assignable l-value during script parsing + </action> + <action dev="henrib" type="add" issue="JEXL-201" due-to="Dmitri Blinov"> + Allow Interpreter to use live values from JexlEngine.Option interface implemented by JexlContext + </action> + <action dev="henrib" type="fix" issue="JEXL-198" due-to="Terefang Verigorn"> + JxltEngine Template does not expose pragmas + </action> + <action dev="henrib" type="add" issue="JEXL-197" due-to="Dmitri Blinov"> + Add annotations + </action> + <action dev="henrib" type="fix" issue="JEXL-196" due-to="Dmitri Blinov"> + Script execution hangs while calling method with one argument without parameter + </action> + <action dev="henrib" type="fix" issue="JEXL-195" due-to="Dmitri Blinov"> + Support for AtomicBoolean in logical expressions + </action> + <action dev="henrib" type="add" issue="JEXL-194" due-to="Dmitri Blinov"> + allow synchronization on iterableValue in foreach statement + </action> + <action dev="henrib" type="fix" issue="JEXL-193" due-to="Dmitri Blinov"> + InterruptedException is swallowed in function call in silent and non-strict mode + </action> + <action dev="henrib" type="fix" issue="JEXL-192" due-to="Constantin Mitocaru"> + Invalid return type when expected result is null + </action> + <action dev="henrib" type="fix" issue="JEXL-191" due-to="Constantin Mitocaru"> + Jexl3 unsolvable property exception when using enum + </action> + <action dev="henrib" type="fix" issue="JEXL-190" due-to="Dmitri Blinov"> + local function within context is not resolved if function resolver class without namespace is specified + </action> + <action dev="henrib" type="fix" issue="JEXL-189" due-to="Dmitri Blinov"> + Possible bug in Interpreter.isCancelled() + </action> + <action dev="henrib" type="fix" issue="JEXL-188" due-to="Dmitri Blinov"> + Possible bug in JexlArithmetic.isFloatingPointNumber() + </action> + <action dev="henrib" type="fix" issue="JEXL-187" due-to="Dmitri Blinov"> + Jexl Syntax doc does not mention 'continue' and 'break' operators + </action> + <action dev="henrib" type="fix" issue="JEXL-186" due-to="Philippe Mouawad"> + Performance regression in arithmetic operations compared to JEXL 2.1 + </action> + </release> + <release version="3.0" date="2015-12-27"> + <action dev="henrib" type="fix" issue="JEXL-184"> + dot-ed identifiers parsing failure + </action> + <action dev="henrib" type="fix" issue="JEXL-180" due-to="Kimball Robinson"> + Documentation - suggests using float for financials + </action> + <action dev="henrib" type="add"> + Added a 'curry' method to script returning script with bound arguments + </action> + <action dev="henrib" type="add" issue="JEXL-178 " due-to="Dmitri Blinov"> + 'Unsolvable property' message to provide details about underlying exception + </action> + <action dev="henrib" type="add" issue="JEXL-177" due-to="Dmitri Blinov"> + Unified expressions to be used in String literals in JEXL scripts + </action> + <action dev="henrib" type="add" issue="JEXL-176" due-to="Dmitri Blinov"> + Synonym operator name 'in' for operator =~ // Remove 'foreach...in' syntax + </action> + <action dev="henrib" type="add" issue="JEXL-174" due-to="Dmitri Blinov"> + Overloadable property access operators + </action> + <action dev="henrib" type="add" issue="JEXL-173" due-to="Dmitri Blinov"> + Duck-typed java closures + </action> + <action dev="henrib" type="fix" issue="JEXL-171" due-to="Dmitri Blinov"> + Map access operator does not work if key name clashes with map property name + </action> + <action dev="henrib" type="add" issue="JEXL-170"> + Implement assignment operators + </action> + <action dev="henrib" type="fix" issue="JEXL-169" due-to="Robert Neßelrath"> + A string is wrongly identified as FloatingPointNumber + </action> + <action dev="henrib" type="fix" issue="JEXL-168" due-to="Dmitri Blinov"> + Dedicated operator for String concatenation + </action> + <action dev="henrib" type="fix" issue="JEXL-79" due-to="sebb"> + Add support for growable arrays (ArrayLists) + </action> + <action dev="henrib" type="fix" issue="JEXL-167" due-to="Dmitri Blinov"> + Possible loss of value when converting BigDecimal to BigInteger + </action> + <action dev="henrib" type="fix" issue="JEXL-166" due-to="Dmitri Blinov"> + Incorrect operator symbol for bitwise complement in jexlArithmetic + </action> + <action dev="henrib" type="add" issue="JEXL-164" due-to="Dmitri Blinov"> + public getters for high/low properties for IntegerRange and LongRange + </action> + <action dev="henrib" type="fix" issue="JEXL-163" due-to="Dmitri Blinov"> + empty(new ("java.lang.Long", 4294967296)) returns true + </action> + <action dev="henrib" type="fix" issue="JEXL-162" due-to="Dmitri Blinov"> + empty() function throws an exception : unsupported type + </action> + <action dev="henrib" type="fix" issue="JEXL-160" due-to="Dmitri Blinov"> + typo in package.html + </action> + <action dev="henrib" type="fix" issue="JEXL-158" due-to="Lars Cebulla"> + Handle locale decimal separators correctly + </action> + <action dev="henrib" type="fix" issue="JEXL-157" due-to="Lars Cebulla"> + Replace File.pathSeparator with File.separator + </action> + <action dev="henrib" type="add" > + Added a method to get parameters from a template + </action> + <action dev="henrib" type="fix" > + Identifiers beginning with 0s (like 00200) shoud not be considered integers + </action> + <action dev="henrib" type="add" issue="JEXL-152" due-to="Dmitri Blinov"> + Extend Range literal to support Long values + </action> + <action dev="henrib" type="add" issue="JEXL-149" due-to="Dmitri Blinov"> + Set Construction as per EL 3.0 spec + </action> + <action dev="henrib" type="add" > + Added #pragma instruction, allowing scripts to communicate information to the underlying execution + context. + </action> + <action dev="henrib" type="fix" > + Hoisted variables in a lambda are seen as local variables; should be seen as global + </action> + <action dev="henrib" type="fix" > + Local variables must preclude antish variables handling + </action> + <action dev="henrib" type="fix" > + Depending on unkown conditions, overriden varargs method may return false to isVarArgs; + fix by checking method in declaring class hierarchy. + </action> + <action dev="henrib" type="fix" issue="JEXL-146" due-to="David Maplesden"> + Performance problem in Interpreter.unknownVariable mechanism + </action> + <action dev="henrib" type="fix"> + Functions assigned to local variables can not perform recursive calls + </action> + <action dev="henrib" type="fix"> + Improved error reporting on undefined or null variables + </action> + <action dev="henrib" type="fix"> + Improved operator overloading logic in JexlArithmeric (caching) + </action> + <action dev="henrib" type="fix" issue="JEXL-145" due-to="Ian Connor"> + Sandbox calling wrong check (classname vs class) + </action> + <action dev="henrib" type="fix" > + JXLT fails to parse expressions that use map constants + </action> + <action dev="henrib" type="add" > + Added break/continue in JEXL syntax + </action> + <action dev="henrib" type="add" > + Added convenience methods to pass/use JexlInfo and arguments in templates + </action> + <action dev="henrib" type="add" > + Added ability to overload some operators in JexlArithmetic (through introspection, based on method names) + </action> + <action dev="henrib" type="fix" > + Fixed issue in edge case method resolution wrt overload and varargs + </action> + <action dev="henrib" type="add" > + Switch logging to log4j 1.2 + </action> + <action dev="henrib" type="fix" issue="JEXL-144" due-to="Woonsang Ko"> + Empty array property setting fails + </action> + <action dev="henrib" type="fix" issue="JEXL-142" due-to="Juozas Baliuks"> + Map expression issue with empty key + </action> + <action dev="henrib" type="fix" issue="JEXL-141" due-to="Harpreet Singh"> + Suffix for Big Decimal and Big Integer Literal is incorrectly mentioned in Java docs + </action> + <action dev="henrib" type="fix" issue="JEXL-137"> + Invalid script variable list for nested array/map access + </action> + <action dev="henrib" type="fix"> + Fixed Engine.getVariables that was erroneously considering method calls as variable usage + </action> + <action dev="henrib" type="fix"> + Fixed issue in ternary expression + (grammar was not precise enough to differentiate namespace:function calls vs ternary right hand side) + </action> + <action dev="henrib" type="add"> + NaN is now a keyword equivalent to #NaN (deprecated): POTENTIAL SCRIPT BREAK! + </action> + <action dev="henrib" type="add"> + 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) + </action> + <action dev="henrib" type="add"> + Added syntactic shortcut to create parametric scripts (script source creates an anonymous function) + </action> + <action dev="henrib" type="fix"> + 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 + </action> + <action dev="henrib" type="fix"> + 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) + </action> + <action dev="henrib" type="fix"> + 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) + </action> + <action dev="henrib" type="add" issue="JEXL-133" due-to="Alfred Reibenschuh"> + String matching Operator short-hand inspired by CSS3 + </action> + <action dev="henrib" type="add" > + Added the range operator (x .. y) + </action> + <action dev="henrib" type="add" issue="JEXL-128" due-to="Matteo Trotta"> + ObjectContext should implement NamespaceResolver + </action> + <action dev="henrib" type="add" issue="JEXL-127"> + Allow the creation of functions + </action> + <action dev="henrib" type="add" issue="JEXL-123"> + Redesign API for stability + </action> + <action dev="henrib" type="add" issue="JEXL-122"> + Move JEXL from org.apache.comms.jexl2 to org.apache.commons.jexl3 + </action> + <action dev="henrib" type="fix" issue="JEXL-136"> + Script calls within scripts may fail with number arguments + </action> + <action dev="henrib" type="fix" issue="JEXL-135" due-to="Tomas Kukosa"> + using map as script parameter or local variable + </action> + <action dev="henrib" type="fix" issue="JEXL-134" due-to="Manoj Mokashi"> + Issue with evaluation of concat of variables : \r + \n gives 0 + </action> + <action dev="henrib" type="fix" issue="JEXL-131" due-to="Clay Bruce"> + UnifiedJexl (2.1.x) parsing may fail with NPE + </action> + <action dev="henrib" type="fix" issue="JEXL-130" due-to="William Bakker"> + Ternary Conditional fails for Object values + </action> + <action dev="henrib" type="add" issue="JEXL-126" due-to="Grace"> + Decimal numbers literals fix be 'double' by default (instead of 'float') + </action> + </release> + <release version="2.1.1" date="2011-12-24"> + <action dev="henrib" type="fix" issue="JEXL-124"> + Array parameters to methods don't work anymore (regression) + </action> + </release> + <release version="2.1" date="2011-13-11"> + <action dev="henrib" type="add" issue="JEXL-121"> + Add simple template features + </action> + <action dev="henrib" type="fix" issue="JEXL-120" due-to="Lukas Krecan"> + Make ParseException work in sandboxed environment + </action> + <action dev="henrib" type="add" issue="JEXL-119"> + Allow indexed properties container resolution in expressions + </action> + <action dev="henrib" type="add" issue="JEXL-118" due-to="Max Tardiveau"> + Provide an IN operator: =~ / match operator extended to provide IN behavior (!~ as NOT IN) + </action> + <action dev="henrib" type="add" issue="JEXL-116" due-to="Sarel Botha"> + Add control over classes, methods, constructors and properties allowed in scripts + </action> + <action dev="henrib" type="add" issue="JEXL-115" due-to="Sarel Botha"> + Add support for asynchronous script execution and cancellation + </action> + <action dev="henrib" type="add" issue="JEXL-114"> + Allow scripts to create local variables // Add return keyword + </action> + <action dev="henrib" type="add" issue="JEXL-113" due-to="Max Tardiveau"> + Add functions to extract which variables, parameters and local variables are used to evaluate a script + </action> + <action dev="henrib" type="fix" issue="JEXL-112" due-to="sebb"> + Cannot parse Integer.MIN_VALUE. + </action> + <action dev="henrib" type="fix" issue="JEXL-24" due-to="freish"> + Support Long for integer literal instead of Integers. + </action> + <action dev="henrib" type="add"> + Added ObjectContext that wraps an object as JexlContext and added JexlContext as source to solve + top-level namespace functions. + </action> + <action dev="henrib" type="fix" issue="JEXL-111" due-to="freish"> + expression execute error depending on numeric type + </action> + <action dev="henrib" type="add" issue="JEXL-83" due-to="sebb"> + Make JexlArithmetic immutable (and threadsafe); also added a mutable JexlThreadedArithmetic. + </action> + <action dev="henrib" type="fix" issue="JEXL-108" due-to="Cristian Lorenzetto"> + Parsing error if i define a empty literal array/map + </action> + <action dev="henrib" type="fix" issue="JEXL-107"> + Literals and parenthesized expressions can not be used as references + </action> + <action dev="henrib" type="fix" issue="JEXL-106" due-to="Michal Sabol"> + When divide two BigDecimal values in an expression it results in java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. + </action> + <action dev="henrib" type="add" issue="JEXL-105" due-to="Cary Thompson">Array literals are considered constant even when they are not.</action> + <action dev="henrib" type="fix" issue="JEXL-104" due-to="Andreas Haufler">NPE in JexlArithmetic when an Array-Expression containing a null is used.</action> + <action dev="henrib" type="add" issue="JEXL-102" due-to="sebb">Add "jexl2" as a supported name</action> + <action dev="henrib" type="add" issue="JEXL-101" due-to="Tobias Shulte"> + Vararg methods where the first argument is no vararg can not be called with only the fixed parameters given + </action> + </release> + <release version="2.0.1" date="2010-03-28"> + <action dev="henrib" type="add" issue="JEXL-100">Array access expressions fail when evaluated twice and cache is enabled</action> + <action dev="henrib" type="add" issue="JEXL-99" due-to="Marcel Schoen">Documentation of Thread Safety / Invalid code examples on homepage</action> + <action dev="henrib" type="add" issue="JEXL-98" due-to="Marcel Schoen">Quote escaping cannot be escaped</action> + </release> + <release version="2.0" date="2010-02-02"> + <action dev="henrib" type="add" issue="JEXL-27" due-to="Weikuo Liaw">Bean-ish & ant-ish like assignment</action> + <action dev="henrib" type="add" issue="JEXL-19" due-to="Jesse Glick">Ternary operator support</action> + <action dev="henrib" type="add" issue="JEXL-46" due-to="Alfred Reibenschuh">adding Perl-like regular-expression operators</action> + <action dev="henrib" type="add" issue="JEXL-41" due-to="Alejandro Torras">Support for ${...} and #{...} expressions</action> + <action dev="henrib" type="add" issue="JEXL-15" due-to="Paul Libbrecht">User definable functions</action> + <action dev="sebb" type="add" issue="JEXL-63">JSR-223 support</action> + <action dev="henrib" type="update" issue="JEXL-10" due-to="Paul Libbrecht">Make possible checking for unresolved variables</action> + <action dev="henrib" type="update" issue="JEXL-11" due-to="Paul Libbrecht">Don"t make null convertible into anything</action> + <action dev="henrib" type="fix" issue="JEXL-47" due-to="sebb">Allow single-line comments with //</action> + <action dev="henrib" type="fix" issue="JEXL-44" due-to="sebb">Comments don"t allow double-quotes</action> + <action dev="henrib" type="add" issue="JEXL-71" due-to="sebb">Array literal syntax is not supported</action> + <action dev="dion" type="fix" issue="JEXL-17" due-to="Nestor Urquiza">allowing quote escaping</action> + <action dev="dion" type="fix" issue="JEXL-25" due-to="Marek Lewczuk">Call method with varargs</action> + <action dev="dion" type="fix" issue="JEXL-32" due-to="Kedar Dave">BigDecimal values are treated as Long values which results in loss of precision</action> + <action dev="dion" type="fix" issue="JEXL-33">Remove unnecessary throws Exception from various classes</action> + <action dev="henrib" type="fix" issue="JEXL-50" due-to="sebb">Div operator does not do integer division</action> + <action dev="henrib" type="fix" issue="JEXL-87" due-to="sebb">Inconsistent behavior of arithmetical operations</action> + <action dev="henrib" type="fix" issue="JEXL-21" due-to="AC">operator overloading / hooks on operator processing</action> + <action dev="henrib" type="add">"new" operator support</action> + <action dev="henrib" type="add">Support Unicode escapes in string literals</action> + <action dev="henrib" type="update">Various performance enhancements & caches</action> + </release> + <release version="1.1.1-SNAPSHOT" date="unreleased"> + <action dev="dion" type="update" issue="JEXL-23">Fix jdk1.3 only code that has crept into JEXL tests</action> + <action dev="dion" type="update" issue="JEXL-22" due-to="Randy H.">Allow unicode literals to be used</action> + </release> + <release version="1.1" date="2006-09-10"> + <action dev="rahul" type="fix" issue="JEXL-17" due-to="Kohsuke Kawaguchi">Consistently throw ParseException in case of a parsing failure, not an Error.</action> + <action dev="dion" type="fix" issue="JEXL-3" due-to="Guido Anzuoni">Allow for static methods to be called on classes and not just objects.</action> + <action dev="dion" type="add">Added Script and ScriptFactory to allow scripts to be executed from text, files or a URL.</action> + <action dev="dion" type="add">Added implementation for bitwise operators: and, complement, or, xor.</action> + <action dev="dion" type="add">Added implementation for the foreach statement.</action> + <action dev="dion" type="add">Added implementation for the while statement.</action> + <action dev="dion" type="add">Added implementation for block statements, e.g. curly braces containing multiple statements.</action> + <action dev="dion" type="add">Added implementation for the if statement.</action> + <action dev="dion" type="fix" issue="JEXL-6">Unary minus was only working for integer values.</action> + <action dev="dion" type="update">Add @since tags to code so we can track API additions via javadoc</action> + <action dev="dion" type="add" issue="JEXL-4" due-to="Barry Lagerweij">Support assignment to variables</action> + <action dev="dion" type="fix" issue="JEXL-5">'abc'.substring(0,1+1) is empty (method matching problem)</action> + </release> + <release version="1.0" date="2004-09-07"> + <action dev="dion" type="fix">Support ant-style properties</action> + </release> + <release version="1.0-RC1" date="2004-08-26"> + <action dev="dion" type="fix" due-to="Geoff Waggott">Fix string concatenation broken for variables</action> + <action dev="dion" type="fix" issue="JEXL-12">Implement short circuit logic for boolean and/or</action> + <action dev="dion" type="add">Handle any size() method that returns an int</action> + <action dev="dion" type="fix" issue="JEXL-9">Can't issue .size() on java.util.Set</action> + </release> + </body> +</document>