The Apache Commons Team is pleased to announce the release of JEXL 3.0. The release is available for download at: https://commons.apache.org/jexl/download_jexl.cgi
JEXL is a library intended to facilitate the implementation of dynamic and scripting features in applications and frameworks written in Java. JEXL implements an Expression Language based on some extensions to the JSTL Expression Language supporting most of the constructs seen in shell-script or ECMAScript. JEXL 3.0 is a major release changing the public JEXL API.;Due to binary and source incompatibilities and the scope of modifications, JEXL has moved to the org.apache.commons.jexl3 package and the Maven artifactId changed to commons-jexl3. However, this is a drop-in replacement through JSR-223 and casual code usage should find easy equivalence between jexl-2.x and 3.x (besides the package name). Also note that JEXL 3.0 now requires Java 6. What's new in 3.0: ================== * A redesigned API that properly segregates the "public" part and the "internal" parts of JEXL. * A real difference between Expression and Script (scripts accept statements: for, while, etc). * The ability to create JEXL functions in script, closure/variables hoisting/currying included. * A set of assignment operators (+=, *= , ...). * A set of String matching operators (^= startsWith, $= endsWith) and their negative counterparts (!^, !$) * A range operator (x .. y) to ease writing loops (for(var x : 1 .. 10)) * A literal set syntax to ease creating sets: { 1, 2...} New features in 3.0: ==================== * JEXL-178: 'Unsolvable property' message to provide details about underlying exception * JEXL-177: Unified expressions to be used in String literals in JEXL scripts * JEXL-176: Synonym operator name 'in' for operator =~ // Remove 'foreach...in' syntax * JEXL-174: Overloadable property access operators * JEXL-173: Duck-typed java closures * JEXL-170: Implement assignment operators * JEXL-164: public getters for high/low properties for IntegerRange and LongRange * JEXL-152: Extend Range literal to support Long values * JEXL-149: Set Construction as per EL 3.0 spec * JEXL-133: String matching Operator short-hand inspired by CSS3 * JEXL-128: ObjectContext<> should implement NamespaceResolver * JEXL-127: Allow the creation of functions * JEXL-123: Redesign API for stability * JEXL-122: Move JEXL from org.apache.comms.jexl2 to org.apache.commons.jexl3 * JEXL-136: Script calls within scripts may fail with number arguments * JEXL-135: Using map as script parameter or local variable * JEXL-134: Issue with evaluation of concat of variables : \r + \n gives 0 * JEXL-131: UnifiedJexl parsing may fail with NPE * JEXL-130: Ternary Conditional fails for Object values * JEXL-126: Decimal numbers literals should be 'double' by default (instead of 'float') Bugs Fixed in 3.0: ================== * JEXL-184: dot-ed identifiers parsing failure * JEXL-180: Documentation - suggests using float for financials * JEXL-171: Map access operator does not work if key name clashes with map property name * JEXL-169: A string is wrongly identified as FloatingPointNumber * JEXL-168: Dedicated operator for String concatenation * JEXL-79: Add support for growable arrays (ArrayLists) * JEXL-167: Possible loss of value when converting BigDecimal to BigInteger * JEXL-166: Incorrect operator symbol for bitwise complement in jexlArithmetic * JEXL-163: empty(new ("java.lang.Long", 4294967296)) returns true * JEXL-162: empty() function throws an exception : unsupported type * JEXL-160: typo in package.html * JEXL-158: Handle locale decimal separators correctly * JEXL-157: Replace File.pathSeparator with File.separator * JEXL-146: Performance problem in Interpreter.unknownVariable mechanism * JEXL-145: Sandbox calling wrong check (classname vs class) * JEXL-144: Empty array property setting fails * JEXL-142: Map expression issue with empty key * JEXL-141: Suffix for Big Decimal and Big Integer Literal is incorrectly mentioned in Java docs * JEXL-137: Invalid script variable list for nested array/map access Historical list of changes: http://commons.apache.org/jexl/changes-report.html For complete information on Apache Commons JEXL, including instructions on how to submit bug reports, patches, or suggestions for improvement, see the Apache Commons JEXL website: http://commons.apache.org/jexl/ Emmanuel Bourg, on behalf of the Apache Commons Team
signature.asc
Description: OpenPGP digital signature