Return-Path: X-Original-To: apmail-commons-user-archive@www.apache.org Delivered-To: apmail-commons-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 41FC118632 for ; Mon, 28 Dec 2015 17:16:45 +0000 (UTC) Received: (qmail 92230 invoked by uid 500); 28 Dec 2015 17:16:44 -0000 Delivered-To: apmail-commons-user-archive@commons.apache.org Received: (qmail 91813 invoked by uid 500); 28 Dec 2015 17:16:44 -0000 Mailing-List: contact user-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Commons Users List" Delivered-To: mailing list user@commons.apache.org Received: (qmail 91782 invoked by uid 99); 28 Dec 2015 17:16:44 -0000 Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 28 Dec 2015 17:16:44 +0000 Received: from [192.168.1.37] (AReims-653-1-118-31.w109-219.abo.wanadoo.fr [109.219.45.31]) by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id 081431A02E4; Mon, 28 Dec 2015 17:16:42 +0000 (UTC) Message-ID: <56816E6D.30202@apache.org> Date: Mon, 28 Dec 2015 18:16:29 +0100 From: Emmanuel Bourg User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: announce@apache.org, Jakarta Commons Users List , Jakarta Commons Developers List Subject: [ANNOUNCEMENT] Apache Commons JEXL 3.0 released Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="PNghMdiwn8aehU6w4fo9DliNg4wxM6cVL" --PNghMdiwn8aehU6w4fo9DliNg4wxM6cVL Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable 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: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D * 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 (+=3D, *=3D , ...). * A set of String matching operators (^=3D startsWith, $=3D 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: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D * 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 =3D~ // 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: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D * 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 BigInteg= er * 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 --PNghMdiwn8aehU6w4fo9DliNg4wxM6cVL Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (MingW32) iQIVAwUBVoFudfUTxBnkudCsAQKarxAAl3SKuKzx1q50ExVy5OC7TfMv0HAltayh pk8DSlRoCGrfeI8hqxbJhSC8f4WJnnxdafLrXvjnmFyDo40qod99j3Q33o0TEoAv nc11P41VwLRkrSuQb6eDPlGNs9n/+nE8Ay6LsfGJJd1g9ysWm6swgzClmgsCK53i 5/TGNXMCBZeQfC7Tf5YLXjxrME9H+22P+ufGa6HRfgMGT7ICbypw1gWOzZbBm8I1 IzqEPzfzWv16pYCFA8bnVD0fNzUocUwlse0+gtIjdKHx92sCJFThUkyzVErqYD9q QFFygSKt/LXIwzLje6jypBtv45DS2R/WTiVcOgxbtsrtbNPv6mO2mc0WnScz9D+h QamFdmZidnKVfHRv3jZ+Xxvxqyei7eQq+RJAkOIi2l6s4FIYEPpndZLgZfrZnTQj iJ+X6zCOYXWT2Wawc93jkC+Vwm5BNmCLzFXPXwwx6YUpYJJQHS3NF5dSiL5YskM5 G6Cr25hoz7HJjk6+6Mcm0MWcM3wJygNrpt0pFqkB+5E+5Hfd8W55HMBrAebjjoJP uCBEX/8GeodM+89gRio6SLo3Px0Dc6T0Mww7yfU2xnQPAmKXAn/8kh3PiJd58ZVQ aM3ABBqJRJgcwvEuGpF506mV7WwxYy6mrsK3HI1u/tytaGN8tPOEea3PIDUWBAlg QsjBDD225+s= =NXAD -----END PGP SIGNATURE----- --PNghMdiwn8aehU6w4fo9DliNg4wxM6cVL--