History of Changes
Version 2.2.7 (2014/02/06)
-
developer:
cbe
type:
update
fixes:
73
-
updated method invocation code to use Method.setAccessible() only if necessary.
-
developer:
cbe
context:
build
type:
add
fixes:
79
-
Catch SecurityException when accessing default el.properties.
Version 2.2.6 (2013/01/11)
-
developer:
cbe
type:
update
thanks to:
Oleg Varaksin, Arjan Tijms. fixes:
71
-
For a single identifier method expression, if the identifier evaluates to another
method expression, invoke that method expression. (The semantics for this case is not
covered in the specification.
See also
this issue
.
This change was made to improve compatibility with other EL implementations.)
-
developer:
cbe
context:
build
type:
add
thanks to:
Adam Crume.
-
Added OSGi bundle manifest entries for juel-api and juel-impl
and declared de.odysseus.el.ExpressionFactoryImpl as an OSGi service.
Version 2.2.5 (2012/07/08)
-
developer:
cbe
context:
build
type:
update
thanks to:
Oleg Varaksin. fixes:
3521406
-
Changed scope for dependency from juel-impl to juel-api
to provided. Therefore, to include juel-api, users now
need to explicitly add it as a dependency.
-
developer:
cbe
context:
code
type:
update
-
Re-implemented Cache based on ConcurrentHashMap and
ConcurrentLinkedQueue to improve performance in multi-threaded environments.
-
developer:
cbe
context:
code
type:
update
thanks to:
Martin Koci. fixes:
3529970
-
Determine target type and coerce argument in ExpressionNode.setValue().
-
developer:
cbe
context:
code
type:
fix
thanks to:
Martin Koci. fixes:
834616
-
Catch and re-throw IllegalArgumentException as ELException
in BeanELResolver.setValue().
-
developer:
cbe
context:
code
type:
update
-
Updated messages with keys error.coerce.type and error.coerce.value
to include value that could not be coerced.
-
developer:
cbe
context:
code
type:
update
-
Create HashMap in ELContext lazily.
-
developer:
cbe
context:
code
type:
update
-
BeanELResolver now caches property access methods.
-
developer:
cbe
context:
code
type:
fix
fixes:
3420591
-
ELContext.getContext(key) and putContext(key, value) should
throw NPE if key is null
Version 2.2.4 (2011/09/30)
-
developer:
cbe
context:
code
type:
add
-
Added property javax.el.ignoreReturnType to ignore the expected return
type passed to EpressionFactory.createMethodExpression() when looking
up a method to invoke. (This option has no effect when evaluating literal method
expressions, where the expected return type acts as coercion target type.)
Version 2.2.3 (2011/01/30)
-
developer:
cbe
context:
code
type:
update
thanks to:
Martin Koci. fixes:
3154206
-
fixed: a method invocation node invoked via ValueExpression.getValue(...)
should return null if its base (prefix) expression evaluates to null.
-
developer:
cbe
context:
build
type:
update
-
Moved parent pom.xml from modules to project root to simplify
maven release build.
Version 2.2.2 (2010/11/12)
-
developer:
cbe
context:
build
type:
update
-
Updated POMs to sync JUEL releases to maven central via Sonatype's repository hosting service.
-
developer:
cbe
context:
code
type:
update
fixes:
3104608
-
fixed: MethodExpression.invoke(...) should ignore passed parameter types if
arguments are specified in the expression as in ${foo.bar(123)}.
-
developer:
cbe
context:
code
type:
update
fixes:
3095122
-
Improved method lookup in method expressions (when calling MethodExpression.invoke(...),
Method.setAccessible(true) is used if necessary).
-
developer:
cbe
context:
code
type:
update
-
Changed implementation of ASTProperty.getValueReference() to throw
an exception if base expression evaluates to null.
Updated documentation of ValueExpression.getValueReference() accordingly.
Version 2.2.1 (2009/12/13)
-
developer:
cbe
context:
code
type:
add
-
Added MethodExpression.isParametersProvided(). This method was added silently
to the API (wasn't mentioned anywhere prior to the final release of EE6) and forces this release...
-
developer:
cbe
context:
build
type:
update
-
Added OSGi attributes to manifest files of juel-api-2.2.x.jar,
juel-impl-2.2.x.jar and juel-spi-2.2.x.jar.
E.g. the latter two can now be added as OSGi modules to glassfish v3.
-
developer:
cbe
context:
code
type:
add
-
Added SimpleResolver.setELResolver(ELResolver).
-
developer:
cbe
context:
code
type:
update
-
Removed static field BeanELResolver.DEFAULT_FACTORY. Lazily get a factory for type
conversions when needed to coerce method parameters instead.
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 ExpressionFactory.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