Using EAP 7.3 configuration in EAP 7.4 breaks the backward compatibility

Solution Verified - Updated

Environment

  • Red Hat JBoss Enterprise Application Platform (EAP)
    • 7.4.x
    • 7.3.x

Issue

  • Why using EAP 7.3 configuration in EAP 7.4 breaks the backward compatibility?
  • How to use EAP 7.3 configuration in EAP 7.4?
  • After upgrading from EAP 7.3 to 7.4, remoting connector fails with
" ERROR [org.jboss.as.ejb3.invocation] (default task-1) WFLYEJB0527: Remoting connector (address hostname, port 4447) is not correctly configured for EJB client invocations, the connector must be listed in <remote/> 'connectors' attribute to receive EJB client invocations"

Resolution

Yes, using EAP 7.3 configuration in EAP 7.4 will not work.
Here are the reasons for not working:

  1. Because EAP 7.3 has microprofile and EAP 7.4 does not have it.
  2. Because connectors reference connector-ref was deprecated and replaced with connectors, which is not backwards compatible, see Configuring multiple EJB Connectors in JBoss EAP 7.4 .
  3. Because of ejb cache container is required, see JBoss EAP 7.4 brings remote cluster="ejb" instead of remote connector-ref in EJB subsystem.

In regards to the microprofile, see the workaround below:
The work around this remove the MicroProfile section - example standalone.xml with the lines to be removed:

33        <extension module="org.wildfly.extension.microprofile.config-smallrye"/>
        <extension module="org.wildfly.extension.microprofile.health-smallrye"/>
        <extension module="org.wildfly.extension.microprofile.metrics-smallrye"/>
        <extension module="org.wildfly.extension.microprofile.opentracing-smallrye"/>
...
420        <subsystem xmlns="urn:wildfly:microprofile-config-smallrye:1.0"/>
        <subsystem xmlns="urn:wildfly:microprofile-health-smallrye:2.0" security-enabled="false" empty-liveness-checks-status="${env.MP_HEALTH_EMPTY_LIVENESS_CHECKS_STATUS:UP}" empty-readiness-checks-status="${env.MP_HEALTH_EMPTY_READINESS_CHECKS_STATUS:UP}"/>
        <subsystem xmlns="urn:wildfly:microprofile-metrics-smallrye:2.0" security-enabled="false" exposed-subsystems="*" prefix="${wildfly.metrics.prefix:jboss}"/>
        <subsystem xmlns="urn:wildfly:microprofile-opentracing-smallrye:1.0"/>

Cli commands to remove microprofile

This can be done with the following cli commands:

# remove subsystems
/subsystem=microprofile-health-smallrye:remove()
/subsystem=microprofile-metrics-smallrye:remove()
/subsystem=microprofile-opentracing-smallrye:remove()
/subsystem=microprofile-config-smallrye:remove()

# remove imports
/extension=org.wildfly.extension.microprofile.health-smallrye:remove()
/extension=org.wildfly.extension.microprofile.config-smallrye:remove()
/extension=org.wildfly.extension.microprofile.metrics-smallrye:remove()
/extension=org.wildfly.extension.microprofile.opentracing-smallrye:remove()

If you are upgrading from EAP 7.2, microprofile-metrics-smallrye does not exist so you can omit those lines from the CLI commands.

Allow admin-only servers to boot EAP 7.4 using EAP 7.3 configuration for migration purposes

For EAP 7.4.x there is a feature planned to allow admin-only servers to boot with a config that includes the MicroProfile Config, Health, Metrics and OpenTracing subsystems removed in base EAP 7.4 so customers can take their existing configurations and migrate them. This will be done via a migrate option in the subsystem.

Server Migration Tool removes this subsystems when migrating from EAP 7.3 to EAP 7.4:

$ /jboss-eap-7.4/bin/jboss-server-migration.sh --source jboss-eap-7.3.9
...
             JBoss Server Migration Tool 
...
16:04:56,915 INFO  [ServerMigrationTask#1:3:3:1] Migrating domain configuration domain.xml...
16:04:57,761 INFO  [ServerMigrationTask#1:3:3:1:1] Unsupported extensions removed: [org.wildfly.extension.microprofile.opentracing-smallrye, org.wildfly.extension.microprofile.config-smallrye]
16:04:58,248 INFO  [ServerMigrationTask#1:3:3:1:2] Unsupported subsystems removed: [urn:wildfly:microprofile-opentracing-smallrye:1.0, urn:wildfly:microprofile-config-smallrye:1.0]

Root Cause

See the main solution How to use JBoss Server Migration Tool to upgrade from one version of JBoss EAP 7.x to another version of JBoss EAP 7.x for details on migration.

Usage of default EAP 7.3 configuration in EAP 7.4 will break the backward compatibility because of the microprofile capabilities removal, see EAP 7.4 Release Notes - Chapter 3. Unsupported Functionality.
Mistakenly, this is not highlighted/discussed on the Migration Guide, but this mistake will be fixed with This content is not included.JBEAP-22411 - Removal of MicroProfile support not documented on EAP 7.4 Migration Guide.

JiraIssue
This content is not included.JBEAP-22411Removal of MicroProfile support
This content is not included.JBEAP-20741Migration tool adds several jgroups channels when migrating from 6.4 to 7.3
This content is not included.JBEAP-24377Migration tool keeps Module "org.jboss.as.jpa.hibernate:4" for hibernate cache causing ClassNotFoundException

Note:: the usage of a previous version configuration into the new one is called forward compatibility, not backward, but for the sake of this explanation and to make it easy to find this solution the title was kept as it is.

Components
Category

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.