Java EE 8 behavior changes

If you previously incorporated Java Platform, Enterprise Edition (Java EE) 7 features in your Liberty environment, you might encounter behavior changes when you move to a Java EE 8 feature.

You can choose between the Java EE 7 and Java EE 8 feature implementations for each server instance, with consideration for behavior changes. If the required behavior is contained in the Java EE 8 feature only, you must use the Java EE 8 feature. If an existing application would be adversely affected by behavior changes in the Java EE 8 feature, using the Java EE 7 feature preserves the existing behavior for that application. You must ensure that the Java EE implementation that you choose is compatible with other Java EE features in your server; for more information, see Supported Java EE 7 and 8 feature combinations.

Table 1. Features that have Java EE 7 and 8 implementations
Technology Java EE 7 feature Java EE 8 feature Behavior changes
Application Security appSecurity-2.0 appSecurity-3.0 No behavior changes.
Bean Validation beanValidation-1.1 beanValidation-2.0 No behavior changes.
Contexts and Dependency Injection for Java (CDI) cdi-1.2 cdi-2.0 See Contexts and Dependency Injection behavior changes between releases.
Java Servlet servlet-3.1 servlet-4.0 See Servlet 4.0 behavior changes.
Java API for RESTful Web Services (JAX-RS) jaxrs-2.0 jaxrs-2.1 See JAX-RS 2.1 behavior changes.
Java Persistence API (JPA) jpa-2.1 jpa-2.2 See No behavior changes.
JSON Processing (JSON-P) jsonp-1.0 jsonp-1.1 See No behavior changes.
JavaServer Faces (JSF) jsf-2.2 jsf-2.3 See Configuring Liberty for JavaServer Faces 2.3.
JavaMail javaMail-1.5 javaMail-1.6 No behavior changes.