Chapter 8. Migrating from Older Releases of JBoss EAP 8.1. Migrating from JBoss EAP 5 to JBoss EAP 7 This guide focuses on the changes that are required to successfully run and deploy JBoss EAP 6 applications on JBoss EAP 7. If you plan to migrate your applications directly from JBoss EAP 5 to JBoss EAP 7, there are a number of resources available to help you plan and execute your migration. We suggest you take the following approach. See Summary of Changes Made to Each Release in this guide for a quick, high-level overview of the changes made to each release of JBoss EAP. Read through the JBoss EAP 6 Migration Guide and this guide to become familiar with the contents of each one. Use the JBoss EAP 5 Component Upgrade Reference as a quick reference to migration information about specific components and features. The rule-based Migration Toolkit for Applications continues to add rules to help you migrate directly from JBoss EAP 5 to JBoss EAP 7. You can use these tools to analyze your application and to generate detailed reports about the changes needed to migrate to JBoss EAP 7. For more information, see Use Migration Toolkit for Applications to Analyze Applications for Migration . The Customer Portal Knowledgebase currently contains articles and solutions to help with migration from JBoss EAP 5 to JBoss EAP 6. There are plans in place to add additional content for migration from JBoss EAP 5 to JBoss EAP 7 over time. 8.2. Summary of Changes Made to Each Release Before you plan your migration, you should be aware of the changes that were made to JBoss EAP 6 and JBoss EAP 7. The JBoss EAP 6 Migration Guide covers changes that were made between JBoss EAP 5 and JBoss EAP 6. The following is a condensed list of the most significant changes made in JBoss EAP 6. Implemented a new architecture built on the Modular Service Container Was a certified implementation of the Java Enterprise Edition 6 specification Introduced domain management, new deployment configuration, and a new file directory structure and scripts Standardized on new portable Java Naming and Directory Interface namespaces See Review What's New and Different in JBoss EAP 6 in the JBoss EAP 6 Migration Guide for a detailed list of changes made in that release. JBoss EAP 7 is built on the same modular structure as JBoss EAP 6 and includes the same domain management, deployment configuration, file directory structure, and scripts. It also still uses the same standardized Java Naming and Directory Interface namespaces. However, JBoss EAP 7 introduces the following changes. Adds support for the Jakarta Enterprise Edition (Jakarta EE) 8 specification Replaces the web server with Undertow Replaces the JacORB IIOP implementation with a downstream branch of the OpenJDK ORB Includes Apache ActiveMQ Artemis as the new messaging provider Removes the cmp , jaxr , and threads subsystems Removes support for enterprise entity beans For a more complete list of changes, see Review What's New in JBoss EAP 7 8.3. Review the Content in the Migration Guides Review the entire contents of the Migration Guide for each release to become aware of the features that were added or deprecated, and to understand the server configuration and the application changes required to run existing applications for that release. Because the underlying architecture was not changed between JBoss EAP 6 and JBoss EAP 7, many of the changes documented in the JBoss EAP 6 Migration Guide still apply. For example, changes documented under Changes Required by Most Applications are related to the underlying architectural changes made in JBoss EAP 6, which still apply to this release. The change to the new modular class loading system is significant and impacts the packaging and dependencies of almost every JBoss EAP 5 application. Many of the changes listed under Changes Dependent on Your Application Architecture and Components are also still valid. However, because JBoss EAP 7 replaced the web server, ORB, and messaging provider, removed the cmp , threads , and jaxr subsystems, and removed support for entity beans, you must consult this guide for any changes related to those component areas. Pay particular attention to the Server Configuration Changes and Application Migration Changes detailed in this guide before you begin. 8.4. JBoss EAP 5 Component Upgrade Reference Use the following table to find information about how to migrate a particular feature or component from JBoss EAP 5 to JBoss EAP 7.4. JBoss EAP 5 Feature or Component Summary of Changes and Where to Find Migration Information Application Packaging and Class Loading In JBoss EAP 6, the hierarchical class loading structure was replaced with a modular architecture based on JBoss Modules. Application packaging also changed due to the new modular class loading structure. This architecture is still used in JBoss EAP 7. For information about the new modular architecture, see the following chapter in the JBoss EAP 7.4 Development Guide . Class Loading and Modules For information about how to update and repackage applications for the new modular architecture, see the following section in the JBoss EAP 6 Migration Guide . Class Loading Changes Application Configuration Files Due to the changes in JBoss EAP 6 to use modular class loading, you might need to create or modify one or more application configuration files to add dependencies or to prevent automatic dependencies from loading. This has not changed in JBoss EAP 7. For details, see the following section in the JBoss EAP 6 Migration Guide . Configuration File Changes Caching and Infinispan JBoss Cache was replaced by Infinispan for internal use by the server only in JBoss EAP 6. See the following sections in the JBoss EAP 6 Migration Guide for information about how to replace JBoss Cache in application code. Cache Changes Infinispan caching strategy and configuration changes for JBoss EAP 7 are documented in the following section of this guide. Infinispan Server Configuration Changes Data Sources and Resource Adapters JBoss EAP 6 consolidated configuration of data sources and resource adapters into mainly one file and this is still true in JBoss EAP 7. See the following section in the JBoss EAP 6 Migration Guide for more information. Datasource and Resource Adapter Configuration Changes Directory Structure, Scripts, and Deployment Configuration In JBoss EAP 6, the directory structure, scripts, and deployment configuration changed. These changes are still valid in JBoss EAP 7. See the following section of the JBoss EAP 6 Migration Guide for more information. Review What's New and Different in JBoss EAP 6 Enterprise beans Your application code must use the enterprise beans 3.x API and Jakarta Persistence. For information about deprecated features and changes required to run Enterprise Beans 2.1, see the following section in the JBoss EAP 6 Migration Guide : EJB 2.x and Earlier Changes In JBoss EAP 6, stateful session bean cache and stateless session bean pool size is configured in the ejb3 subsystem of the server configuration file. The jboss-ejb3.xml deployment descriptor replaces the jboss.xml deployment descriptor file. For more information about these changes, see the following section in the JBoss EAP 6 Migration Guide . EJB Changes The default remote connector and port has changed in JBoss EAP 7. For more information about this and server configuration changes, see the following sections in this guide. Jakarta Enterprise Beans Server Configuration Changes Migrate Jakarta Enterprise Beans Client Code Enterprise bean entity beans are not supported in JBoss EAP 7. For information about how to migrate entity beans to Jakarta Persistence, see the following section in this guide. Migrate Entity Beans to Jakarta Persistence Hibernate and Jakarta Persistence JBoss EAP 7.4 implements Jakarta Persistence 2.2 and includes Hibernate 5.3. It also includes Hibernate Search version 5.10. Other changes include removal of support for Jakarta Enterprise Beans entity beans and additional updates to Jakarta Persistence properties. For information about how these changes impact your applications, see the following sections in this guide. Hibernate and Jakarta Persistence Migration Changes Hibernate Search Changes Migrate Entity Beans to Jakarta Persistence Jakarta Persistence Persistence Property Changes Note Use of a different version of Hibernate than the one shipped with JBoss EAP is unsupported. The version shipped with JBoss EAP is the only version of Hibernate that is tested, and is the only version for which patches will be provided for defects. Jakarta RESTful Web Services and RESTEasy JBoss EAP 7 includes RESTEasy 3 and many classes have been deprecated. The version of Jackson changed from version 1.9.9 to version 2.6.3 or greater. For details about these changes, see the following section in this guide. Jakarta RESTful Web Services and RESTEasy Application Changes JBoss AOP JBoss AOP (Aspect Oriented Programming) was removed in JBoss EAP 6. For information about how to refactor applications that use JBoss AOP, see the following section in the JBoss EAP 6 Migration Guide . JBoss AOP Changes JGroups and Clustering The way you enable clustering and specify bind addresses changed in JBoss EAP 6. See the following section in the JBoss EAP 6 Migration Guide for more information. Clustering Changes In JBoss EAP 7, JGroups now defaults to using a private network interface instead of a public network interface and also introduces <channel> elements to the jgroups subsystem. JBoss EAP 7 also includes the Undertow mod_cluster implementation, introduces a new API for building singleton services, and other new clustering features. These changes are documented in the following sections of this guide. JGroups Server Configuration Changes Application Clustering Changes Java Naming and Directory Interface JBoss EAP 6 implemented a new standardized global Java Naming and Directory Interface namespace and a series of related namespaces that map to the various scopes of an application. See the following section of the JBoss EAP 6 Migration Guide for information about application changes needed to use the new Java Naming and Directory Interface namespace rules. JNDI Changes Jakarta Server Faces On JBoss EAP 6.4, you could configure your application to use the older version. This is no longer possible in JBoss EAP 7.4, which now includes Jakarta Server Faces 2.3. See the following section in this guide for more information. Jakarta Server Faces Code Changes Logging JBoss EAP 6 introduced a new JBoss Logging framework that is still used in JBoss EAP 7. Applications that use third-party logging frameworks might be impacted by the modular class loading changes. Review the following section in the JBoss EAP 6 Migration Guide for information about these changes. Logging Changes In JBoss EAP 7, annotations in the org.jboss.logging package are now deprecated, which impacts source code and Maven GAVs (groupId:artifactId:version). The prefixes for all log messages were also changed. For more information about these changes, see the following sections in this guide. JBoss Logging Changes Logging Message Prefix Changes Messaging and Jakarta Messaging In JBoss EAP 7, ActiveMQ Artemis replaced HornetQ as the built-in messaging provider. The best approach to migrating your messaging configuration is to start with the JBoss EAP 7 default server configuration and use the following guide to apply your current messaging configuration changes. Configuring Messaging for JBoss EAP 7.4 If you want to understand the changes required to move from JBoss Messaging to HornetQ, review the following section of the JBoss EAP 6 Migration Guide . HornetQ Changes Then review the following information about how to migrate the HornetQ configuration and related messaging data in this guide. Messaging Server Configuration Changes Messaging Application Changes ORB In JBoss EAP 6, JacORB configuration was moved from the EAP_HOME /server/production/conf/jacorb.properties file to the server configuration file. JBoss EAP 7 then replaced the JacORB IIOP implementation with a downstream branch of the OpenJDK ORB. The best approach to migrating your ORB configuration is to start with the JBoss EAP 7 default server configuration and use the following section in the JBoss EAP 7.4 Configuration Guide to apply the your current ORB configuration changes. ORB Configuration Remote Invocation A new enterprise bean client API was introduced in JBoss EAP 6 for remote invocations; however, if you preferred not to rewrite your application code to use the new API, you could modify your existing code to use the ejb:BEAN_REFERENCE for remote access to enterprise beans. See the following section in the JBoss EAP 6 Migration Guide for more information. Remote Invocation Changes In JBoss EAP 7, the default connector and default remote connection port changed. For more information, see the following sections in this guide. Update the Remote URL Connector and Port Update External Clients Migrate Jakarta Enterprise Beans Client Code Seam 2.x While official support for Seam 2.2 applications was dropped in JBoss EAP 6, it was still possible to configure dependencies for Seam 2.2 applications to run on that release. JBoss EAP 7.4, which now includes Jakarta Server Faces 2.3 and Hibernate 5.3, does not support Seam 2.2 or Seam 2.3 due to end of life of Red Hat JBoss Web Framework Kit. It is recommended that you rewrite your Seam components using Weld CDI beans. Security Security updates in JBoss EAP 6 included changes to security domain names and changes to how to configure security for basic authentication. The LDAP security realm configuration was moved to the server configuration file. See the following sections in the JBoss EAP 6 Migration Guide for more information. Security Changes LDAP Security Realm Changes Updates that impact security in JBoss EAP 7 include server configuration changes and application changes. Information can be found in the following sections of this guide. Security Server Configuration Changes Security Application Changes Spring Applications Spring 4.2.x is the earliest stable Spring version supported by JBoss EAP 7. For information about Apache CXF Spring web services and Spring RESTEasy integration changes, see the following sections in this guide. Apache CXF Spring Web Services Changes Spring RESTEasy Integration Changes Transactions In JBoss EAP 6, the transaction configuration was consolidated and moved to the server configuration file. Other updates included changes to JTA node identifier settings and how to enable JTS. For details, see the following section in the JBoss EAP 6 Migration Guide . JTS and JTA Changes Some Transaction Manager configuration attributes that were available in the transactions subsystem in JBoss EAP 6 have changed in JBoss EAP 7. For more information, see the following section in this guide. Transactions Subsystem Changes Valves Undertow replaced JBoss Web in JBoss EAP 7 and valves are no longer supported. See the following sections in this guide. Migrate Global Valves Migrate Custom Application Valves Migrate Authenticator Valves Web Services JBoss EAP 6 included JBossWS 4. For information about the changes required by that version update, see the following section in the JBoss EAP 6 Migration Guide . Web Services Changes JBoss EAP 7 introduced JBossWS 5. See the following section in this guide for required updates. Web Services Applications Changes

Commands: