+

Search Tips   |   Advanced Search

Migrate APIs and specifications

Migrate APIs and specifications involves moving to the current Java level as well as to other technologies that WebSphere Application Server v9.0 supports. If our existing applications currently support different specification levels than are supported by this version of the product, we might have to update at least some aspects of the applications to comply with the new specifications.

In many cases, IBM provides additional features and customization options that extend the specification level even further. If our existing applications use IBM extensions from earlier product versions, we might have to migrate the applications to use the same kinds of extensions in v9.0.

WAS v9.0 supports Java Platform, Standard Edition (Java SE) 8 and Java EE 7. See Programming model APIs and specifications for a summary of the specifications and API documentation supported in current and prior product releases.

For more information about items that are deprecated in WAS v9.0, see Deprecated, stabilized, and removed features.

Rather than manually looking through the applications for API and specification changes, scan the applications for any required changes using the Migration Toolkit for Application Binaries and the WAS Migration Toolkit.

The application binary scanner provides a detailed migration analysis report for the application, so we can better understand the type and scope of changes that the application might require. When we migrate the applications, the Eclipse-based migration toolkit provides quick fixes to automatically update our source when possible and provides detailed help for items that must be manually updated.

For more information and to download the toolkit, see the Migration Toolkit on WASdev.

bprac


Java EE 7 behavior changes

All applications that run on WAS v9.0 must use the Java EE 7 implementation of a technology except for JAX-RS and JPA. For JAX-RS and JPA, the product configuration defaults to Java EE 7, but we can update the configuration to use the Java EE 6 implementation. For some technologies, migrating to Java EE 7 might introduce behavior changes, as detailed in the following table.

Technology Behavior changes
Bean Validation 1.1 No behavior changes from Bean Validation 1.0.
Common Annotations for the Java Platform 1.1 No behavior changes.
Concurrency Utilities for Java EE No behavior changes.

If we previously used asynchronous beans or CommonJ Timer and WorkManager, consider migrating to Concurrency Utilities for Java EE because those technologies are deprecated. See Examples to migrate to EE Concurrency from Asynchronous beans and CommonJ.

Contexts and Dependency Injection for Java (CDI) 1.2 This specification introduces some behavior changes from CDI 1.0 See Contexts and Dependency Injection 1.2 behavior changes.
EJB 3.2 No behavior changes from EJB 3.1.
Expression Language (EL) 3.0 For EL 3.0, the specification was developed independent of the JSP specification, where it was previously defined.

Although the specification introduced several new features, there was only one known behavior change. In EL 3.0, the default coercion for nulls to non-primitive types except String returns a null value. For example, a null that is coerced to a Double now returns a null value, whereas before it returned 0.0.

See JSR 341 - Expression Language 3.0 specification.

Java API for RESTful Web Services (JAX-RS) 2.0 This specification introduces some behavior changes from JAX-RS 1.1. See JAX-RS 2.0 behavior changes.

For information about changing the configuration to use the Java EE 6 JAX-RS 1.1 implementation, see Coexistence of JAX-RS 2.0 with JAX-RS 1.1.

Java EE Connector Architecture (JCA) 1.7 No behavior changes from JCA 1.6.
JDBC 4.1 No behavior changes from JDBC 4.0.
Java Message Service (JMS) 2.0 This specification introduces some behavior changes from JMS 1.1. See Support for JMS 2.0 features in WAS version 9.0.
Java Persistence API (JPA) 2.1 This specification introduces some behavior changes from JPA 2.0. See Java Persistence API 2.1 behavior changes.

For information about changing the configuration to use the Java EE 6 implementation, see Identifying and modifying the JPA specification level.

Java Servlet 3.1 This specification introduces some behavior changes from Servlet 3.0. See Servlet behavior changes.
Java Transaction API (JTA) 1.2 No behavior changes from JTA 1.1.
JavaServer Faces (JSF) 2.2 This specification introduces some behavior changes from JSF 2.0. See JavaServer Faces 2.2 feature functions.
JavaServer Pages (JSP) 2.3 No behavior changes from JSP 2.2.
Message Driven Beans (MDB) 3.2 No behavior changes from MDB 3.1.


Related:

  • Java SE 8 in WAS traditional V9
  • Java EE 7 in WAS traditional
  • Identifying and modifying the JPA specification level
  • Coexistence of JAX-RS 2.0 with JAX-RS 1.1