We did it! WAS Liberty now officially supports Java EE 7 in production. After months of betas and feedback, we were able to release a day earlier than planned.

So what’s in this Java EE 7 release?

Features (alphabetically)

  • Application Client Provides Java EE client container support.
    • Run Java EE client applications inside a client container. You can use the client command client create client_name to create a client, which will create a default client.xml with the feature added. Once you have your client application module (.jar) packaged in a .ear file, you will update the client.xml file by adding a <application/> or a <enterpriseApplication/> config element. Once, this is done you can use client run client_name command to run your client application.
    • The application client can make use of most server deployed components, including remote EJB. A new feature appClientSupport-1.0 can be enabled so the client application can make use of server defined resources.
  • Bean validation 1.1 Provides facilities to perform data validation in Java EE and SE applications. Find out more about bean validation in Liberty and WebSphere Developer Tools.
  • Concurrency 1.0
  • Context and Dependency Injection (CDI) 1.2 Provides support for the CDI 1.2 specification.
  • EJB 3.2 Lite The ejbLite-3.2 feature supports:
    • @AroundConstruct annotation, which is a new function in the Interceptors 1.2 specification. This allows interceptors to be defined for an EJB instance constructor method (allows an interceptor to log before and after a bean is created).
    • Configuration options for non-persistent EJB timers. Specifically, you can configure the number of times a timer is retried as well as the interval between retry attempts.
  • EJB 3.2 EJB 2.x modules with EJBLocalHome are supported. Also enables the use of remote EJB interfaces. Like other EJB 3.2 capabilities, this feature is included by the ejb-3.2 feature.
    • If the ejbHome-3.2 feature is used in addition to ejbRemote-3.2, EJBHome interfaces are also supported.
  • J2EE Management 1.1
  • JavaServer Faces (JSF) The major features of JSF 2.2 include:
    • Faces Flow
    • Resource Library Contracts
    • HTML5 Friendly Markup Support
  • JASPIC 1.1 Support for Java Authentication SPI for Containers. You can configure Liberty to use your JASPIC provider to perform authentication for incoming web requests.
  • JACC 1.5 Support for Java Authorization Contract for Containers. You can configure Liberty to use your JACC provider to delegate the authorization decision.
  • Java batch Includes function such as:
    • A REST API for remotely managing job executions. This provides start/submit, stop, restart functions along with the ability to view job execution status and other execution data as well as job logs.
    • A command line utility (‘jbatch’) as a convenient mechanism for using the remote management API and also for waiting for job completion.
    • Per-execution job logs with interleaved runtime and application log records.
    • Tested with Derby, DB2 LUW, DB2 z/OS, and Oracle databases.
    • Find out about Java batch in Why Java batch?.
  • JAX-RS 2.0 Support for Java API for RESTful Web Services, version 2.0. JAX-RS 2.0 provides portable APIs for developing, exposing, and accessing Web applications designed and implemented in compliance with principles of REST architectural style.
  • JavaMail Provides the capability to send, receive, and manage email in their applications.
  • JCA 1.7 Full support for the JCA 1.7 specification, including:
    • Deployment of JCA 1.7 compliant resource adapters
    • Backwards compatibility with all previous JCA specification levels (1.0, 1.5 and 1.6)
    • Support for the resource definition annotations @ConnectionFactoryDefinition, @AdministeredObjectDefinition, @ConnectionFactoryDefinitions and @AdministeredObjectDefinition, allowing developers to define required resources in their applications and application clients, avoiding the need to manually configure them in the server.
  • JDBC 4.1 Enables the use of JDBC 4.1 capability in JDBC drivers that comply with the JDBC 4.1 or higher specification. This includes the ability to:
    • Abort connections in an asynchronous fashion using the Connection.abort(Executor) API.
    • Establish a network timeout for connections using the Connection.setNetworkTimeout(Executor) API
    • Set a default schema on a connection using the Connection.setSchema() API
    • Automatically close a statement when dependent result sets are closed using the Statement.closeOnCompletion() API
  • JMS 2.0 We’ve added JMS 2.0 for the built in wasJmsServer-1.0 as well as adding a wmqJmsClient-2.0 feature so you can connect to IBM MQ using JMS 2.0.
  • JPA 2.1 Liberty’s JPA 2.1 support is now provided via EclipseLink.
  • JSON-P 1.0 Support for the Java API for JSON Processing. Provides a standardized API library for the processing (parsing, generating, searching, and modifying) of JavaScript Object Notation (JSON). Why use JSON instead of XML, and therefore need something like JSON-P?
  • JSP 2.3 and EL 3.0 The JSP 2.3 feature provides access to EL3.0 functionality and enables exploitation of Servlet 3.1 features from a JSP.
    • The EL 3.0 feature provides an implementation of the EL 3.0 specification and can be used as a stand-alone feature.
    • Some of the capabilities of EL 3.0 are: lambda expression, operations on collections, and static field and method references.
  • Servlet 3.1
  • WebSocket 1.1 Provides a more robust way of handling generics when defining a WebSocket MessageHandler compared to WebSocket 1.0. If you’re using 1.0 and would like to change to 1.1, change the entry in your server.xml from <feature>websocket-1.0</feature> to <feature>websocket-1.1</feature>.

Packaging improvements

  • Java EE 7 Web Profile We have added a new convenience feature so you can easily get all the Web Profile 7 features enabled in one easy step. Just configure the webProfile-7.0 feature in server.xml.
  • Java EE 7 Full Platform Similarly, we’ve created a convenience feature so you can get all of Java EE 7 quickly and easily. Just configure the javaee-7.0 feature in server.xml.

Updating your applications to Java EE 7

WAS Liberty V8.5.5.6 supports Java EE 6 still but if you want to move to Java EE 7, here’s what to be aware of when updating apps to Java EE 7.

Knowledge Center

Find it here!

4 comments on"Java EE 7 has landed in WAS Liberty"

  1. […] intended to write this article when Liberty was released in June last year. Liberty provided the cdi-1.2 feature together with other Java EE 7 features such as […]

  2. […] in July we announced Java EE 7 support with WAS Liberty We’ve now made it easy for Docker users to get […]

  3. […] Beschreibung sämtlicher Features kann der Ankündigung auf dem IBM-Blog entnommen […]

  4. I am doing Spring MVC with an AngularJS frontend. Can i take advantage of SPNEGO in Liberty with this setup? Connecting to Federated AD is a MASSIVE pain.

Join The Discussion

Your email address will not be published. Required fields are marked *