History of Changes

Version 2.2.0 (2009/12/01)

developer: cbe context: code type: update
Improved implementation of type conversions in de.odysseus.el.misc.TypeConverterImpl.
developer: cbe context: code type: add
Added some more unit tests.

Version 2.2.0-rc3 (2009/11/08)

developer: cbe context: code type: update
If no properties are available in JUEL's expression factory (neither passed in nor from el.properties), use system properties if System.getProperty("javax.el.ExpressionFactory") points to JUEL.
developer: cbe context: admin type: update
Split code base into modules modules/api, modules/impl and modules/spi; added maven build for these.
developer: cbe context: build type: add
Separated the JAR service provider (META-INF/services/javax.el.ExpressionFactory) into its own juel-spi-2.2.x.jar. This allows to have juel-impl-2.2.x.jar on your classpath without forcing JUEL to be used by ExpressioonFactory.newInstance().
developer: cbe context: code type: add
Added ExpressionFactoryImpl.Profile enum type and several new constructors to easily choose between JEE5 and JEE6 (default) behavior.
developer: cbe context: docs type: update
Updated documentation for 2.2.

Version 2.1.3/2.2.0-rc2 (2009/10/09)

developer: cbe context: code type: add
Added ExpressionFactoryImpl(TreeStore store, TypeConverter converter) constructor.
developer: cbe context: code type: fix thanks to: Pavel Vojtechovsky. fixes: 2871773
Fixed: ListELResolver.getValue(...) should return null when index is out of range.
developer: cbe context: code type: fix thanks to: Pavel Vojtechovsky. fixes: 2871795
Fixed: second operand is always evaluated in and/or operations (e.g. ${true or false}).
developer: cbe context: code type: fix fixes: 2822943
Fixed: BeanELResolver should use Method.setAccessible(true).
developer: cbe context: docs type: update
Updated copyright notes.

Version 2.2.0-rc1 (2009/08/09)

developer: cbe context: code type: add
Implemented changes from JSR 245, maintenance release 2. This replaces JUELs proprietary API for method invocations. The BeanELResolver class now provides a generic default for method invocations using reflection. Method invocations are disabled/enabled via the javax.el.methodInvocations property.

Version 2.1.2 (2009/04/26)

developer: cbe context: code type: fix thanks to: Gerhard Petracek. fixes: 2748538
Fixed: for a single identifier expression ${foo}, ValueExpression.setValue(...) always calls ELContext.setValue(...), even if foo is bound to a variable.
developer: cbe context: build type: update
Renamed API/impl jars to juel-api-<version>.jar and juel-impl-<version>.jar to reflect maven artifact names juel-api and juel-impl.

Version 2.1.1 (2009/03/21)

developer: cbe context: code type: add
Added support for bracket operator in method invocations (e.g. ${foo[bar](baz)}).
developer: cbe context: code type: add
Added implementation of javax.el api classes.
developer: cbe context: build type: update thanks to: Wolfgang Häfelinger.
Updated pom.xml to package the following jar files: juel-<version>.jar, juel-<version>-api.jar and juel-<version>-impl.jar.
developer: cbe context: code type: fix thanks to: Adam Winer. fixes: 2590830
Fixed: SimpleContext.getVariableMapper() returns null
developer: cbe context: code type: add
Experimental support for syntax extensions.
developer: cbe context: build type: update
Reorganized project structure to meet maven's standard layout.
developer: cbe context: code type: update
Improved method invocation support by passing de.odysseus.el.misc.MethodInvocation as property to ELResolver.getValue(..., Object property).
developer: cbe context: code type: add
Added support for varargs.
developer: cbe context: code type: add
Introduce TypeConverter to allow for customized coercion rules.
developer: cbe context: code type: remove
Removed old TypeConversions (use TypeConverter.DEFAULT).
developer: cbe context: docs type: update
Update to fop-0.95-beta and forrester-0.3.3.
developer: cbe context: admin type: update
Moved to SVN.

Version 2.1.0 (2007/03/06)

developer: cbe context: code type: update
Use StringBuilder instead of StringBuffer (performance).
developer: cbe context: code type: update
Update API sources from glassfish.

Version 2.1.0-rc3 (2006/10/20)

developer: cbe context: code type: fix thanks to: Frédéric Esnault.
ListELResolver was missing in SimpleResolver's default chain of resolver delegates.
developer: cbe context: code type: update
Update API sources from glassfish.
developer: cbe context: code type: update
Minor performance improvements in type conversions and number operations.

Version 2.1.0-rc2 (2006/10/06)

developer: cbe context: code type: update
Relaxed matching of return type for nonliteral MethodExpression's. The actual method return type is checked be assignable to the expression's expected return type.
developer: cbe context: code type: add
Let ExpressionFactory's default constructor read properties from el.properties.
developer: cbe context: admin type: update
Updated API classes to include new API methods ExpressionFactory.newInstance() and ExpressionFactory.newInstance(java.util.Properties).
developer: cbe context: build type: add
Package Jars with META-INF/services/javax.el.ExpressionFactory to register JUEL as EL service provider.
developer: cbe context: code type: add
Added Builder.Feature.NULL_PROPERTIES to resolve ${map[null]}.
developer: cbe context: code type: update
Generified TypeConversions.coerceToEnum(...) and TypeConversions.coerceToEnum(...).
developer: cbe context: code type: fix
Coerce null function parameters whose type is primitive.
developer: cbe context: code type: update
Minor scanner cleanup.
developer: cbe context: code type: update
Increased default cache size to 1000.
developer: cbe context: code type: update
ExpressionFactoryImpl no longer final to allow customization by subclassing. E.g. using JUEL with JSF requires calling a default constructor.

Version 2.1.0-rc1 (2006/07/18)

developer: cbe context: code type: add
Added support for method invocations as in ${foo.bar(1)} (disabled by default).
developer: cbe context: code type: fix
Reject identifier instanceof.
developer: cbe context: docs type: add
Added "Advanced Topics" section.
developer: cbe context: code type: remove
Removed support for system property de.odysseus.el.factory.builder.
developer: cbe context: design type: update
Moved default tree cache implementation to package de.odysseus.el.tree.impl.
developer: cbe context: design type: update
Moved node implementation classes to package de.odysseus.el.tree.impl.ast.
developer: cbe context: code type: remove
Removed deprecated methods from SimpleResolver.
developer: cbe context: code type: update
Do not coerce null function parameters.
developer: cbe context: code type: update
Minor improvemnents in BooleanOperations and TypeConversions.
developer: cbe context: code type: update
Replaced JFlex scanner by handcoded scanner.
developer: cbe context: code type: update
Lazy initialize parser's lookahead token list.

Version 2.1.0-b2 (2006/07/01)

developer: cbe context: docs type: add
Added specification issues on number literals.
developer: cbe context: code type: remove
Finally removed the old JavaCC parser.
developer: cbe context: docs type: add
Added some more Javadocs.
developer: cbe context: code type: fix
Avoid NumberFormatException when parsing integer/floating point literals.
developer: cbe context: code type: remove
Removed staticTreeBuilder.DEFAULT constant.
developer: cbe context: code type: fix
Take builder and expected type into account when comparing tree expressions.

Version 2.1.0-b1 (2006/06/18)

developer: cbe context: docs type: add
Added documentation (HTML and PDF).
developer: cbe context: code type: add
Added TreeValueExpression.isLeftValue().
developer: cbe context: code type: remove
Removed ExpressionNode.isLiteralValue().
developer: cbe context: build type: add
Added more jar manifest attributes.
developer: cbe context: build type: update
Let javac include line and source debug information.
developer: cbe context: code type: add
Added secondary cache (WeakHashMap) to TreeCache.Default.
developer: cbe context: code type: update
Lazy initialize SimpleContext.ELResolver.
developer: cbe context: code type: add
Configure default builder class via system property de.odysseus.el.factory.builder.
developer: cbe context: code type: update
Added @Override annotations.
developer: cbe context: code type: add
Added SAX XML filter sample.
developer: cbe context: code type: update
Simplified SimpleResolver (now only handles top-level properties) .
developer: cbe context: code type: update
Deprecated SimpleContext.setValue(...) and SimpleContext.setFunctions(...). These methods will be removed in 2.1.0.
developer: cbe context: code type: update
Lots of minor refactorings.

Version 2.1.0-a3 (2006/06/04)

developer: cbe context: code type: fix
Re-throw NumberFormatException in number coercion as ELException.
developer: cbe context: code type: fix
Expected type now mandatory for value expressions.
developer: cbe context: docs type: add
Added SourceForge logo to JUEL home page.
developer: cbe context: code type: add
Added a calculator sample.
developer: cbe context: code type: update
Now use a new hand crafted top-down parser and a JFlex generated scanner. This almost doubles parsing performance!
developer: cbe context: code type: update
Moved the Javacc parser to package de.odysseus.el.tree.impl.javacc. By default, it is excluded from the JUEL jar file.

Version 2.1.0-a2 (2006/06/01)

developer: cbe context: code type: update
Include EL api sources from glassfish now (the tomcat6 code was too buggy). The sources are available under Sun's CDDL and are redistributed here. Also added a note on that in the README.txt file.
developer: cbe context: code type: update
Use pure Javacc parser. We no longer use the JJTree preprocessor. The AST classes are now Javacc independent and could easily be reused with other parser generators.
developer: cbe context: code type: update
Improved unit tests
developer: cbe context: docs type: add
Added some documentation
developer: cbe context: code type: update
Improved parse exception formatting

Version 2.1.0-a1 (2006/05/13)

developer: cbe context: admin type: add
Initial Release