You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2021/04/19 14:51:13 UTC

[commons-jexl] branch master updated: Standardise location of changes file

This is an automated email from the ASF dual-hosted git repository.

sebb 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 1e48e82  Standardise location of changes file
1e48e82 is described below

commit 1e48e82d68b3e61858ffeee75e5dee3fdd99d917
Author: Sebb <se...@apache.org>
AuthorDate: Mon Apr 19 15:51:04 2021 +0100

    Standardise location of changes file
---
 pom.xml                   |   1 -
 src/changes/changes.xml   | 738 ++++++++++++++++++++++++++++++++++++++++++----
 src/site/xdoc/changes.xml | 689 -------------------------------------------
 3 files changed, 686 insertions(+), 742 deletions(-)

diff --git a/pom.xml b/pom.xml
index 0ab5bf9..95e6a62 100644
--- a/pom.xml
+++ b/pom.xml
@@ -295,7 +295,6 @@
                 <artifactId>maven-changes-plugin</artifactId>
                 <version>2.12.1</version>
                 <configuration>
-                    <xmlPath>${basedir}/src/site/xdoc/changes.xml</xmlPath>
                     <issueLinkTemplatePerSystem>
                         <default>%URL%/%ISSUE%</default>
                     </issueLinkTemplatePerSystem>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 702e6a1..46b7a99 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -1,58 +1,692 @@
-<?xml version="1.0"?>
-<!--
- 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.
--->
+<?xml version="1.0" encoding="UTF-8"?>
 
 <!--
-This file is used by the maven-changes-plugin to generate the release notes.
-Useful ways of finding items to add to this file are:
-
-1.  Add items when you fix a bug or add a feature (this makes the
-release process easy :-).
-
-2.  Do a Jira search for tickets closed since the previous release.
-
-3.  Use the report generated by the maven-changelog-plugin to see all
-CVS commits.  Set the project.properties' maven.changelog.range
-property to the number of days since the last release.
-
-
-To generate the release notes from this file:
-
-mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn]
-
-then tweak the source formatting if necessary and regenerate, then commit
-
-The <action> type attribute can be add,update,fix,remove.
+/*
+* 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>
-  </properties>
-
-  <body>
-    <!-- The release date is the date RC is cut -->
-    <release version="3.2" date="YYYY-MM-DD" description="TBD.">
-      <!-- FIX -->
-      <!-- ADD -->
-      <!-- UPDATES -->
-      <action dev="ggregory" type="update" due-to="Gary Gregory">
-        Bump actions/setup-java from v1.4.3 to v2 #160.
-      </action>
-    </release>
-  </body>
+    <properties>
+        <title>Apache Commons JEXL Release Notes</title>
+        <author email="dev@commons.apache.org">Commons Developers</author>
+    </properties>
+    <body>
+        <release version="3.2">
+            <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="fix" issue="JEXL-344"  due-to="David Costanzo">
+                Don't fill stack trace for JexlExpression#Return (to improve performance)
+            </action>
+            <action dev="Hussachai Puripunpinyo" type="fix" issue="JEXL-336">
+                Escape some control characters
+            </action>
+            <action dev="henrib" type="fix" 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 '&lt;?&gt;.&lt;null&gt;(...)'
+            </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 &amp; 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&quot;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&quot;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">&quot;new&quot; operator support</action>
+            <action dev="henrib" type="add">Support Unicode escapes in string literals</action>
+            <action dev="henrib" type="update">Various performance enhancements &amp; 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>
diff --git a/src/site/xdoc/changes.xml b/src/site/xdoc/changes.xml
deleted file mode 100644
index ce6e90a..0000000
--- a/src/site/xdoc/changes.xml
+++ /dev/null
@@ -1,689 +0,0 @@
-<?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="dev@commons.apache.org">Commons Developers</author>
-    </properties>
-    <body>
-        <release version="3.2">
-            <action dev="henrib" type="fix" issue="JEXL-344"  due-to="David Costanzo">
-                Don't fill stack trace for JexlExpression#Return (to improve performance)
-            </action>
-            <action dev="Hussachai Puripunpinyo" type="fix" issue="JEXL-336">
-                Escape some control characters
-            </action>
-            <action dev="henrib" type="fix" 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 '&lt;?&gt;.&lt;null&gt;(...)'
-            </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 &amp; 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&quot;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&quot;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">&quot;new&quot; operator support</action>
-            <action dev="henrib" type="add">Support Unicode escapes in string literals</action>
-            <action dev="henrib" type="update">Various performance enhancements &amp; 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>