Apache Commons logo Apache Commons JEXL


Release History

Version Date Description
3.0 2015-12-27  
2.1.1 2011-12-24  
2.1 2011-13-11  
2.0.1 2010-03-28  
2.0 2010-02-02  
1.1.1-SNAPSHOT unreleased  
1.1 2006-09-10  
1.0 2004-09-07  
1.0-RC1 2004-08-26  

Release 3.0 – 2015-12-27

Type Changes By
Fix dot-ed identifiers parsing failure Fixes JEXL-184. henrib
Fix Documentation - suggests using float for financials Fixes JEXL-180. Thanks to Kimball Robinson. henrib
Add Added a 'curry' method to script returning script with bound arguments henrib
Add 'Unsolvable property' message to provide details about underlying exception Fixes JEXL-178. Thanks to Dmitri Blinov. henrib
Add Unified expressions to be used in String literals in JEXL scripts Fixes JEXL-177. Thanks to Dmitri Blinov. henrib
Add Synonym operator name 'in' for operator =~ // Remove 'foreach...in' syntax Fixes JEXL-176. Thanks to Dmitri Blinov. henrib
Add Overloadable property access operators Fixes JEXL-174. Thanks to Dmitri Blinov. henrib
Add Duck-typed java closures Fixes JEXL-173. Thanks to Dmitri Blinov. henrib
Fix Map access operator does not work if key name clashes with map property name Fixes JEXL-171. Thanks to Dmitri Blinov. henrib
Add Implement assignment operators Fixes JEXL-170. henrib
Fix A string is wrongly identified as FloatingPointNumber Fixes JEXL-169. Thanks to Robert Neßelrath. henrib
Fix Dedicated operator for String concatenation Fixes JEXL-168. Thanks to Dmitri Blinov. henrib
Fix Add support for growable arrays (ArrayLists) Fixes JEXL-79. Thanks to sebb. henrib
Fix Possible loss of value when converting BigDecimal to BigInteger Fixes JEXL-167. Thanks to Dmitri Blinov. henrib
Fix Incorrect operator symbol for bitwise complement in jexlArithmetic Fixes JEXL-166. Thanks to Dmitri Blinov. henrib
Add public getters for high/low properties for IntegerRange and LongRange Fixes JEXL-164. Thanks to Dmitri Blinov. henrib
Fix empty(new ("java.lang.Long", 4294967296)) returns true Fixes JEXL-163. Thanks to Dmitri Blinov. henrib
Fix empty() function throws an exception : unsupported type Fixes JEXL-162. Thanks to Dmitri Blinov. henrib
Fix typo in package.html Fixes JEXL-160. Thanks to Dmitri Blinov. henrib
Fix Handle locale decimal separators correctly Fixes JEXL-158. Thanks to Lars Cebulla. henrib
Fix Replace File.pathSeparator with File.separator Fixes JEXL-157. Thanks to Lars Cebulla. henrib
Add Added a method to get parameters from a template henrib
Fix Identifiers beginning with 0s (like 00200) shoud not be considered integers henrib
Add Extend Range literal to support Long values Fixes JEXL-152. Thanks to Dmitri Blinov. henrib
Add Set Construction as per EL 3.0 spec Fixes JEXL-149. Thanks to Dmitri Blinov. henrib
Add Added #pragma instruction, allowing scripts to communicate information to the underlying execution context. henrib
Fix Hoisted variables in a lambda are seen as local variables; should be seen as global henrib
Fix Local variables must preclude antish variables handling henrib
Fix Depending on unkown conditions, overriden varargs method may return false to isVarArgs; fix by checking method in declaring class hierarchy. henrib
Fix Performance problem in Interpreter.unknownVariable mechanism Fixes JEXL-146. Thanks to David Maplesden. henrib
Fix Functions assigned to local variables can not perform recursive calls henrib
Fix Improved error reporting on undefined or null variables henrib
Fix Improved operator overloading logic in JexlArithmeric (caching) henrib
Fix Sandbox calling wrong check (classname vs class) Fixes JEXL-145. Thanks to Ian Connor. henrib
Fix JXLT fails to parse expressions that use map constants henrib
Add Added break/continue in JEXL syntax henrib
Add Added convenience methods to pass/use JexlInfo and arguments in templates henrib
Add Added ability to overload some operators in JexlArithmetic (through introspection, based on method names) henrib
Fix Fixed issue in edge case method resolution wrt overload and varargs henrib
Add Switch logging to log4j 1.2 henrib
Fix Empty array property setting fails Fixes JEXL-144. Thanks to Woonsang Ko. henrib
Fix Map expression issue with empty key Fixes JEXL-142. Thanks to Juozas Baliuks. henrib
Fix Suffix for Big Decimal and Big Integer Literal is incorrectly mentioned in Java docs Fixes JEXL-141. Thanks to Harpreet Singh. henrib
Fix Invalid script variable list for nested array/map access Fixes JEXL-137. henrib
Fix Fixed Engine.getVariables that was erroneously considering method calls as variable usage henrib
Fix Fixed issue in ternary expression (grammar was not precise enough to differentiate namespace:function calls vs ternary right hand side) henrib
Add NaN is now a keyword equivalent to #NaN (deprecated): POTENTIAL SCRIPT BREAK! henrib
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) henrib
Add Added syntactic shortcut to create parametric scripts (script source creates an anonymous function) henrib
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 henrib
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) henrib
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) henrib
Add String matching Operator short-hand inspired by CSS3 Fixes JEXL-133. Thanks to Alfred Reibenschuh. henrib
Add Added the range operator (x .. y) henrib
Add ObjectContext should implement NamespaceResolver Fixes JEXL-128. Thanks to Matteo Trotta. henrib
Add Allow the creation of functions Fixes JEXL-127. henrib
Add Redesign API for stability Fixes JEXL-123. henrib
Add Move JEXL from org.apache.comms.jexl2 to org.apache.commons.jexl3 Fixes JEXL-122. henrib
Fix Script calls within scripts may fail with number arguments Fixes JEXL-136. henrib
Fix using map as script parameter or local variable Fixes JEXL-135. Thanks to Tomas Kukosa. henrib
Fix Issue with evaluation of concat of variables : \r + \n gives 0 Fixes JEXL-134. Thanks to Manoj Mokashi. henrib
Fix UnifiedJexl (2.1.x) parsing may fail with NPE Fixes JEXL-131. Thanks to Clay Bruce. henrib
Fix Ternary Conditional fails for Object values Fixes JEXL-130. Thanks to William Bakker. henrib
Add Decimal numbers literals fix be 'double' by default (instead of 'float') Fixes JEXL-126. Thanks to Grace. henrib

Release 2.1.1 – 2011-12-24

Type Changes By
Fix Array parameters to methods don't work anymore (regression) Fixes JEXL-124. henrib

Release 2.1 – 2011-13-11

Type Changes By
Add Add simple template features Fixes JEXL-121. henrib
Fix Make ParseException work in sandboxed environment Fixes JEXL-120. Thanks to Lukas Krecan. henrib
Add Allow indexed properties container resolution in expressions Fixes JEXL-119. henrib
Add Provide an IN operator: =~ / match operator extended to provide IN behavior (!~ as NOT IN) Fixes JEXL-118. Thanks to Max Tardiveau. henrib
Add Add control over classes, methods, constructors and properties allowed in scripts Fixes JEXL-116. Thanks to Sarel Botha. henrib
Add Add support for asynchronous script execution and cancellation Fixes JEXL-115. Thanks to Sarel Botha. henrib
Add Allow scripts to create local variables // Add return keyword Fixes JEXL-114. henrib
Add Add functions to extract which variables, parameters and local variables are used to evaluate a script Fixes JEXL-113. Thanks to Max Tardiveau. henrib
Fix Cannot parse Integer.MIN_VALUE. Fixes JEXL-112. Thanks to sebb. henrib
Fix Support Long for integer literal instead of Integers. Fixes JEXL-24. Thanks to freish. henrib
Add Added ObjectContext that wraps an object as JexlContext and added JexlContext as source to solve top-level namespace functions. henrib
Fix expression execute error depending on numeric type Fixes JEXL-111. Thanks to freish. henrib
Add Make JexlArithmetic immutable (and threadsafe); also added a mutable JexlThreadedArithmetic. Fixes JEXL-83. Thanks to sebb. henrib
Fix Parsing error if i define a empty literal array/map Fixes JEXL-108. Thanks to Cristian Lorenzetto. henrib
Fix Literals and parenthesized expressions can not be used as references Fixes JEXL-107. henrib
Fix When divide two BigDecimal values in an expression it results in java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. Fixes JEXL-106. Thanks to Michal Sabol. henrib
Add Array literals are considered constant even when they are not. Fixes JEXL-105. Thanks to Cary Thompson. henrib
Fix NPE in JexlArithmetic when an Array-Expression containing a null is used. Fixes JEXL-104. Thanks to Andreas Haufler. henrib
Add Add "jexl2" as a supported name Fixes JEXL-102. Thanks to sebb. henrib
Add Vararg methods where the first argument is no vararg can not be called with only the fixed parameters given Fixes JEXL-101. Thanks to Tobias Shulte. henrib

Release 2.0.1 – 2010-03-28

Type Changes By
Add Array access expressions fail when evaluated twice and cache is enabled Fixes JEXL-100. henrib
Add Documentation of Thread Safety / Invalid code examples on homepage Fixes JEXL-99. Thanks to Marcel Schoen. henrib
Add Quote escaping cannot be escaped Fixes JEXL-98. Thanks to Marcel Schoen. henrib

Release 2.0 – 2010-02-02

Type Changes By
Add Bean-ish & ant-ish like assignment Fixes JEXL-27. Thanks to Weikuo Liaw. henrib
Add Ternary operator support Fixes JEXL-19. Thanks to Jesse Glick. henrib
Add adding Perl-like regular-expression operators Fixes JEXL-46. Thanks to Alfred Reibenschuh. henrib
Add Support for ${...} and #{...} expressions Fixes JEXL-41. Thanks to Alejandro Torras. henrib
Add User definable functions Fixes JEXL-15. Thanks to Paul Libbrecht. henrib
Add JSR-223 support Fixes JEXL-63. sebb
Update Make possible checking for unresolved variables Fixes JEXL-10. Thanks to Paul Libbrecht. henrib
Update Don"t make null convertible into anything Fixes JEXL-11. Thanks to Paul Libbrecht. henrib
Fix Allow single-line comments with // Fixes JEXL-47. Thanks to sebb. henrib
Fix Comments don"t allow double-quotes Fixes JEXL-44. Thanks to sebb. henrib
Add Array literal syntax is not supported Fixes JEXL-71. Thanks to sebb. henrib
Fix allowing quote escaping Fixes JEXL-17. Thanks to Nestor Urquiza. dion
Fix Call method with varargs Fixes JEXL-25. Thanks to Marek Lewczuk. dion
Fix BigDecimal values are treated as Long values which results in loss of precision Fixes JEXL-32. Thanks to Kedar Dave. dion
Fix Remove unnecessary throws Exception from various classes Fixes JEXL-33. dion
Fix Div operator does not do integer division Fixes JEXL-50. Thanks to sebb. henrib
Fix Inconsistent behaviour of arithmetical operations Fixes JEXL-87. Thanks to sebb. henrib
Fix operator overloading / hooks on operator processing Fixes JEXL-21. Thanks to AC. henrib
Add "new" operator support henrib
Add Support Unicode escapes in string literals henrib
Update Various performance enhancements & caches henrib

Release 1.1.1-SNAPSHOT – unreleased

Type Changes By
Update Fix jdk1.3 only code that has crept into JEXL tests Fixes JEXL-23. dion
Update Allow unicode literals to be used Fixes JEXL-22. Thanks to Randy H.. dion

Release 1.1 – 2006-09-10

Type Changes By
Fix Consistently throw ParseException in case of a parsing failure, not an Error. Fixes JEXL-17. Thanks to Kohsuke Kawaguchi. rahul
Fix Allow for static methods to be called on classes and not just objects. Fixes JEXL-3. Thanks to Guido Anzuoni. dion
Add Added Script and ScriptFactory to allow scripts to be executed from text, files or a URL. dion
Add Added implementation for bitwise operators: and, complement, or, xor. dion
Add Added implementation for the foreach statement. dion
Add Added implementation for the while statement. dion
Add Added implementation for block statements, e.g. curly braces containing multiple statements. dion
Add Added implementation for the if statement. dion
Fix Unary minus was only working for integer values. Fixes JEXL-6. dion
Update Add @since tags to code so we can track API additions via javadoc dion
Add Support assignment to variables Fixes JEXL-4. Thanks to Barry Lagerweij. dion
Fix 'abc'.substring(0,1+1) is empty (method matching problem) Fixes JEXL-5. dion

Release 1.0 – 2004-09-07

Type Changes By
Fix Support ant-style properties dion

Release 1.0-RC1 – 2004-08-26

Type Changes By
Fix Fix string concatenation broken for variables Thanks to Geoff Waggott. dion
Fix Implement short circuit logic for boolean and/or Fixes JEXL-12. dion
Add Handle any size() method that returns an int dion
Fix Can't issue .size() on java.util.Set Fixes JEXL-9. dion