Skip to main content
  • Edit my account
  • Manage Cookies

Jakarta Expression Language 5.0

Jakarta Expression Language defines an expression language for Java applications.

While this is a major release due to the removal of a long deprecated method, the focus of the release has been on clarifying areas of the specification where ambiguity had been identified and on making a number of small enhancements to increase the usability of the API.

This release also laid the groundwork for the removal of the dependency on the java.desktop module which is planned for the next release.

New Features, Enhancements, or Additions

  • The BeanELResolver has been updated to consider default method implementations when looking for property getters, property setters and methods.
  • Support has been added for coercing a LambdaExpression instance to a functional interface method invocation.
  • Support has been added for coercing arrays.
  • The MethodReference class has been added to provide access to details of the method to which a MethodExpression resolves, including any annotations present on the method.
  • Generics are now used throughout the API.
  • The expected behaviour when matching expressions to methods based on parameter types has been clarified.
  • The EL specification now explicitly states that specifications that depend on the EL specification may define further packages, in additional to java.lang.*, that are imported by default into the EL environment.

Removals, Deprecations or Backwards Incompatible Changes

  • The deprecated, misspelt method MethodExpression.isParmetersProvided() has been removed.
  • The ELResolver method getFeatureDescriptors() has been deprecated with removal planed for EL 6.0. This is to remove the dependency on the java.desktop module from the EL API.
  • A default implementation that returns null has been added to the ELResolver method getFeatureDescriptors() since it has been deprecated so that custom ELResolver implementations do not need to implement the method.
  • Explicitly document that ELResolver.getType() must return null if either the ELResolver or the resolved property is read-only. This changes the documented behaviour of the StaticFieldELResolver.

Minimum Java SE Version

Java SE 11 or higher

Details

Compatible Implementations

Ballots

Plan Review

The Plan Review Specification Committee Ballot concluded successfully on 12/05/2021 (May 12th 2021) with the following results.

Representative Representative for: Vote
Kenji Kazumura Fujitsu +1
Dan Bandera, Kevin Sutter IBM +1
Ed Bratt, Dmitry Kornilov Oracle +1
Andrew Pielage, Matt Gill Payara +1
Scott Stark, Mark Little Red Hat No vote
David Blevins, Jean-Louis Monteiro Tomitribe +1
Ivar Grimstad EE4J PMC +1
Marcelo Ancelmo, Martijn Verburg Participant Members +1
Werner Keil Committer Members +1
Dr. Jun Qian Enterprise Members +1
Total 9

This ballot was conducted on the public e-mail list jakarta.ee-spec@eclipse.org. This ballot thread begins here.

Release Review

The Release Review Specification Committee Ballot concluded successfully on 09/05/2022 (May 9th 2022) with the following results.

Representative Representative for: Vote
Kenji Kazumura Fujitsu +1
Tom Watson, Emily Jiang IBM +1
Ed Bratt, Dmitry Kornilov Oracle +1
Andrew Pielage, Petr Aubrecht Payara +1
David Blevins, Jean-Louis Monteiro Tomitribe +1
Ivar Grimstad EE4J PMC +1
Marcelo Ancelmo, Martijn Verburg Participant Members +1
Werner Keil Committer Members +1
Jun Qian Enterprise Members +1
Zhai Luchao Enterprise Members +1
Total 10

This ballot was conducted on the public e-mail list jakarta.ee-spec@eclipse.org. This ballot thread begins here.

Click on the specifications below to access the specification document, Javadoc, Technology Compatibility Kit (TCK), and compatible implementation for each release of the specification.

Platform and Profile Specifications

The Jakarta EE Platform and Profile specifications are the umbrella specifications for the individual specifications. The Jakarta EE Platform includes most of the individual specifications, while the Profile specifications include the individual specifications for developing web platforms and microservices architectures.

Individual Specifications

Each individual specification describes a standardized way of implementing a particular aspect of an enterprise Java application.

Back to the top