Java EE 8 behavior differences

When moving from Java EE 7 to Java EE 8 in WebSphere Liberty, there might be some behavior differences in your application because of implementation changes and specification clarifications. WebSphere Liberty does not require you to move to the next Java EE level and can continue to use the existing Java EE 6 or Java EE 7 features. If you move to the Java EE 8 level, all technologies used by the application must be migrated to the Java EE 8 level.

Rule Name Rule Description Automated Fix
Do not use Apache as default provider in deployment descriptor This rule flags any org.apache.bval.jsr* (bval 1.1) and org.apache.bval.jsr303* (bval 1.0) package references in validation.xml deployment descriptors. java-ee-8.yml
org.openrewrite.java.migrate.javaee8.ApacheDefaultProvider
The com.ibm.json packages are not available in the jaxrs-2.1 feature The com.ibm.json APIs are not available in the jaxrs-2.1 liberty feature. No
The OpenJPA APIs are not available with Java EE 8 Java EE 8 is not compatible with older versions of JPA which provided OpenJPA APIs. No
Check for a behavior change in the buildValidatorFactory and buildDefaultValidatorFactory methods This rule flags calls to the javax.validation.Validation.buildDefaultValidatorFactory() method, and the javax.validation.Configuration.buildValidatorFactory() method because their behavior changed in Bean Validation 2.0. No
The JSON binding for date, time and calendar types must be converted In JAX-RS 2.1, the library used for JSON binding switched from Jackson to Yasson starting JAX-RS 2.1. Any JAX-RS resource methods which produce or consume JSON-type data containing date, time or calendar types are effected. No
Avoid using deprecated annotations and interfaces in the javax.faces.bean package This rule flags references to classes in the javax.faces.bean package No
Avoid using the deprecated HttpServletRequestWrapper isRequestedSessionIdFromUrl method This rule flags references to the javax.servlet.http.HttpServletRequestWrapper.IsRequestedSessionIdFromUrl(*) method because it was deprecated and replaced with javax.servlet.http.HttpServletRequestWrapper.IsRequestedSessionIdFromURL(*) java-ee-8.yml
org.openrewrite.java.migrate.javaee8.ServletIsRequestedSessionIdFromURL