The domain migration consists in migrating the source server's domain content and domain/host configuration files, to the target server. This migration task is optional, and in case the tool is running in interactive mode a prompt will first ask to confirm its execution:
In case the domain migration proceeds, the tool will start by migrating the source server's domain content, a cyphered repository used to store data such as deployments and deployment overlays, referenced by domain/host configurations. Both servers use a similar content repository, thus the migration of such data merely consists of finding, and copying such content among servers.
The domain migration may be customized, by configuring the migration environment:
Domain Configuration File Migration
The migration of a domain configuration file consists of copying the source configuration file to the target server, and then apply the relevant changes for such configuration to work correctly in the target server, and also take advantage of the target’s server’s new functionality:
-
Remove Unsupported Subsystems
-
Migrate Referenced Modules
-
Migrate messaging Subsystem
-
Update undertow Subsystem
-
Add batch-jberet Subsystem
-
Add singleton Subsystem
-
Update Unsecure Interface
-
Setup Private Interface
-
Remove Permgen Attributes From JVMs
-
Migrate Deployments
Remove Unsupported Subsystems
The following WildFly 9 subsystems are not supported by JBoss EAP 7:
All unsupported subsystems configurations and extensions are removed from migrated server configurations.
The console indicates which unsupported subsystem configurations and extensions are removed from each server configuration:
19:01:26,806 INFO [org.jboss.migration.core.task.ServerMigrationTask#14] (main) Removed the following unsupported extensions: [org.wildfly.extension.batch]
19:01:26,806 INFO [org.jboss.migration.core.task.ServerMigrationTask#14] (main) Removed the following unsupported subsystems: [urn:jboss:domain:batch:1.0]
Migrate Referenced Modules
A migrated domain configuration may reference, i.e. depend on, modules which are not installed in the target server, and in such case(s) the tool automatically migrates the referenced module(s), from the source server. Beyond that, any module that a referenced module depends on, directly or not, and is not installed in the target server, is automatically migrated too.
A module will be migrated when referenced by:
-
a Datasource subsystem configuration, as datasource driver(s) module
-
an EE subsystem configuration, as a global module
-
a Naming subsystem configuration, as Object Factory module
-
a Messaging subsystem configuration, as JMS Bridge module
Whenever a module is migrated, a message indicating the module's id should be printed in the migration console/log, as exampled below:
03:25:31,218 INFO [org.jboss.migration.core.task.ServerMigrationTask#19] (main) Module cmtool.datasources:main migrated.
03:25:31,222 INFO [org.jboss.migration.core.task.ServerMigrationTask#20] (main) Module cmtool.ee1:main migrated.
03:25:31,225 INFO [org.jboss.migration.core.task.ServerMigrationTask#21] (main) Module cmtool.ee2:main migrated.
03:25:31,229 INFO [org.jboss.migration.core.task.ServerMigrationTask#22] (main) Module cmtool.naming:main migrated.
It's possible to exclude the migration of specific module(s), by specifying the id(s) in the environment property named modules.excludes.
Migrate messaging Subsystem
The messaging subsystem is deprecated on EAP 7, and the tool migrates its configurations to the EAP 7 subsystem that replaces it, named messaging-activemq.
The legacy subsystem migration is done without any interaction with the user, and any issue with the legacy subsystem configuration, e.g. missing functionality, results in a warning shown in the migration console and log(s). A successful migration of the legacy subsystem configurations is indicated by the following messages:
07:20:53,796 INFO [org.jboss.migration.core.ServerMigrationTask#343] (main) Migrating subsystem messaging configurations...
07:20:53,902 INFO [org.jboss.migration.core.ServerMigrationTask#344] (main) Subsystem config /profile=full-ha/subsystem=messaging migrated.
07:20:53,983 INFO [org.jboss.migration.core.ServerMigrationTask#347] (main) Subsystem config /profile=full/subsystem=messaging migrated.
07:20:54,009 INFO [org.jboss.migration.core.ServerMigrationTask#348] (main) Extension org.jboss.as.messaging removed.
07:20:54,009 INFO [org.jboss.migration.core.ServerMigrationTask#343] (main) Subsystem messaging configurations migrated.
Please note that the Migration Environment may be configured to skip messaging's subsystem migration, by setting environment property named subsystem.messaging.migrate.skip as true.
Update undertow Subsystem
The tool updates Undertow's subsystem configuration(s), to better match EAP 7 default standalone config files, more specifically:
00:42:37,516 INFO [org.jboss.migration.core.task.ServerMigrationTask#244] (main) Response header 'server-header' set as 'Server: JBoss-EAP/7' in Undertow's config /profile=default/subsystem=undertow
00:42:37,548 INFO [org.jboss.migration.core.task.ServerMigrationTask#245] (main) Response header 'x-powered-by-header' set as 'X-Powered-By: Undertow/1' in Undertow's config /profile=default/subsystem=undertow
00:42:37,599 INFO [org.jboss.migration.core.task.ServerMigrationTask#247] (main) Response header 'server-header' set as 'Server: JBoss-EAP/7' in Undertow's config /profile=ha/subsystem=undertow
00:42:37,630 INFO [org.jboss.migration.core.task.ServerMigrationTask#248] (main) Response header 'x-powered-by-header' set as 'X-Powered-By: Undertow/1' in Undertow's config /profile=ha/subsystem=undertow
00:42:37,674 INFO [org.jboss.migration.core.task.ServerMigrationTask#250] (main) Response header 'server-header' set as 'Server: JBoss-EAP/7' in Undertow's config /profile=full/subsystem=undertow
00:42:37,704 INFO [org.jboss.migration.core.task.ServerMigrationTask#251] (main) Response header 'x-powered-by-header' set as 'X-Powered-By: Undertow/1' in Undertow's config /profile=full/subsystem=undertow
00:42:37,770 INFO [org.jboss.migration.core.task.ServerMigrationTask#253] (main) Response header 'server-header' set as 'Server: JBoss-EAP/7' in Undertow's config /profile=full-ha/subsystem=undertow
00:42:37,802 INFO [org.jboss.migration.core.task.ServerMigrationTask#254] (main) Response header 'x-powered-by-header' set as 'X-Powered-By: Undertow/1' in Undertow's config /profile=full-ha/subsystem=undertow
This additional update of the new subsystem configuration may be customised through the Migration Environment:
-
fully skip the subsystem config update, by setting environment property named subsystem.undertow.update.skip as true.
-
don't set the default Server response header, by setting environment property named subsystem.undertow.update.add-response-header.server-header.skip as true.
-
don't set the default X-Powered-By response header, by setting environment property named subsystem.undertow.update.add-response-header.x-powered-by-header.skip as true.
Add batch-jberet Subsystem
The JBoss EAP 7 batch-jberet subsystem provides support for [https://jcp.org/en/jsr/detail?id=352|JSR 352], Batch Applications for the Java EE 7 Platform. Its default configuration is automatically added to all profiles in the migrated configuration file unless the environment property named subsystem.batch-jberet.add.skip is set.
The subsystem and related extension are added without any interaction required by the user. The migration console and logs display the following messages to indicate it was added.
07:20:56,479 INFO [org.jboss.migration.core.ServerMigrationTask#408] (main) Extension org.wildfly.extension.batch.jberet added.
07:20:56,507 INFO [org.jboss.migration.core.ServerMigrationTask#409] (main) Subsystem config /profile=full-ha/subsystem=batch-jberet added.
07:20:56,528 INFO [org.jboss.migration.core.ServerMigrationTask#410] (main) Subsystem config /profile=default/subsystem=batch-jberet added.
07:20:56,557 INFO [org.jboss.migration.core.ServerMigrationTask#411] (main) Subsystem config /profile=ha/subsystem=batch-jberet added.
07:20:56,579 INFO [org.jboss.migration.core.ServerMigrationTask#412] (main) Subsystem config /profile=full/subsystem=batch-jberet added.
Add singleton Subsystem
The singleton is a EAP 7 subsystem which, as the name indicates, provides the singleton functionality. Its default configuration is automatically added to all profiles in the migrated configuration file, unless the environment property named subsystem.singleton.add.skip is set.
Please note that such subsystem, and related extension, is added without any interaction with the user, the migration console and log(s) will only indicate it was added, an example:
07:20:56,948 INFO [org.jboss.migration.core.ServerMigrationTask#426] (main) Extension org.wildfly.extension.clustering.singleton added.
07:20:56,982 INFO [org.jboss.migration.core.ServerMigrationTask#427] (main) Subsystem config /profile=full-ha/subsystem=singleton added.
07:20:57,011 INFO [org.jboss.migration.core.ServerMigrationTask#428] (main) Subsystem config /profile=default/subsystem=singleton added.
07:20:57,038 INFO [org.jboss.migration.core.ServerMigrationTask#429] (main) Subsystem config /profile=ha/subsystem=singleton added.
07:20:57,058 INFO [org.jboss.migration.core.ServerMigrationTask#430] (main) Subsystem config /profile=full/subsystem=singleton added.
Update Unsecure Interface
The tool updates the unsecure interface configuration to match JBoss EAP 7 default configurations.
The configuration changes are fully automated, and the following messages, in the migration console and log(s), indicate that such changes were done as expected:
07:20:57,083 INFO [org.jboss.migration.core.ServerMigrationTask#432] (main) Interface unsecure inet address value set as ${jboss.bind.address.unsecure:127.0.0.1}.
The Migration Environment may be configured to skip the Unsecure interface update, by setting environment property named interface.unsecure.update.skip as true.
Setup Private Interface
JBoss EAP 7 default configurations uses a new private interface on all jgroups socket bindings, and the tool automatically updates any migrated configuration with jgroups socket-bindings, to follow same setup.
The following messages in the console indicates this configuration update:
07:20:57,102 INFO [org.jboss.migration.core.ServerMigrationTask#434] (main) Interface private added.
07:20:57,121 INFO [org.jboss.migration.core.ServerMigrationTask#436] (main) Socket binding /socket-binding-group=full-ha-sockets/socket-binding=jgroups-mping interface set to private
07:20:57,140 INFO [org.jboss.migration.core.ServerMigrationTask#436] (main) Socket binding /socket-binding-group=full-ha-sockets/socket-binding=jgroups-tcp interface set to private
07:20:57,159 INFO [org.jboss.migration.core.ServerMigrationTask#436] (main) Socket binding /socket-binding-group=full-ha-sockets/socket-binding=jgroups-tcp-fd interface set to private
07:20:57,181 INFO [org.jboss.migration.core.ServerMigrationTask#436] (main) Socket binding /socket-binding-group=full-ha-sockets/socket-binding=jgroups-udp interface set to private
07:20:57,202 INFO [org.jboss.migration.core.ServerMigrationTask#436] (main) Socket binding /socket-binding-group=full-ha-sockets/socket-binding=jgroups-udp-fd interface set to private
07:20:57,223 INFO [org.jboss.migration.core.ServerMigrationTask#438] (main) Socket binding /socket-binding-group=ha-sockets/socket-binding=jgroups-mping interface set to private
07:20:57,244 INFO [org.jboss.migration.core.ServerMigrationTask#438] (main) Socket binding /socket-binding-group=ha-sockets/socket-binding=jgroups-tcp interface set to private
07:20:57,262 INFO [org.jboss.migration.core.ServerMigrationTask#438] (main) Socket binding /socket-binding-group=ha-sockets/socket-binding=jgroups-tcp-fd interface set to private
07:20:57,281 INFO [org.jboss.migration.core.ServerMigrationTask#438] (main) Socket binding /socket-binding-group=ha-sockets/socket-binding=jgroups-udp interface set to private
07:20:57,300 INFO [org.jboss.migration.core.ServerMigrationTask#438] (main) Socket binding /socket-binding-group=ha-sockets/socket-binding=jgroups-udp-fd interface set to private
The Migration Environment may be configured to skip adding the private, by setting environment property named interface.private.setup.skip as true.
Remove Permgen Attributes From JVMs
The usage of Permgen attributes in JVM configurations is deprecated, and the tool removes these from all JVM configurations, for all server groups.
07:20:57,629 INFO [org.jboss.migration.core.ServerMigrationTask#453] (main) Removal of permgen attributes from JVM configs starting...
07:20:57,695 INFO [org.jboss.migration.core.ServerMigrationTask#454] (main) Permgen removed from JVM /server-group=main-server-group/jvm=default
07:20:57,731 INFO [org.jboss.migration.core.ServerMigrationTask#455] (main) Permgen removed from JVM /server-group=other-server-group/jvm=default
07:20:57,731 INFO [org.jboss.migration.core.ServerMigrationTask#453] (main) Removal of permgen attributes from JVM configs done.
The Migration Environment may be configured to skip adding this configuration update, by setting environment property named jvms.remove-permgen-attributes.skip as true.
Migrate Deployments
With respect to domain configuration's deployments, the migration tool is capable of migrating the persistent deployments it references, and related deployment overlays as well.
Please be warned that the migration of a deployment, or deployment overlay, merely consists in installing related file resources in the target server, and possibly update the migrated configuration. The tool will not assert if such resources are compatible with the target server, which means these may not deploy/work as expected, or not deploy/work at all! To analyse a deployment, with respect to compatibility among different JBoss servers, it is strongly recommended usage of JBoss Windup.
Migrate Persistent Deployments
When migrating a domain configuration, the migration tool will search for any persistent deployments it refers, and print the results in the migration console/log:
03:19:08,997 INFO [org.jboss.migration.core.task.Task#74] (main) Persistent deployments found: [cmtool-helloworld3.war, cmtool-helloworld4.war, cmtool-helloworld2.war, cmtool-helloworld1.war]
And in interactive mode you will then see the following prompt:
Migrate all persistent deployments found?
yes/no? y
-
If you say yes, or y, all found deployments are migrated.
-
If you say no, or n, you receive a prompt asking to confirm the migration, for each listed deployment:
Migrate persistent deployment 'cmtool-helloworld3.war'?
yes/no?
-
If you say yes, or y, the deployment is migrated.
-
If you say no, or n, all references to the deployment are removed.
04:31:43,562 INFO [org.jboss.migration.core.task.ServerMigrationTask#555] (main) Removed persistent deployment from server group /deployment=cmtool-helloworld4.war
04:31:43,591 INFO [org.jboss.migration.core.task.ServerMigrationTask#555] (main) Removed persistent deployment from configuration /deployment=cmtool-helloworld4.war
If you are running in non-interactive mode, the JBoss Server Migration tool will migrate all listed deployments.
Migrate Deployment Overlays
The migration of deployment overlays is a fully automated process, the migration tool will search for deployment overlays referenced in the domain configuration, and migrates all that are linked to deployments which were migrated.
The migration console/log will list all deployment overlays found, if any, and print a message indicating the migration/removal of each:
04:33:30,053 INFO [org.jboss.migration.core.task.ServerMigrationTask#559] (main) Deployment overlays found: [overlay4, overlay1, overlay2, overlay3]
04:33:30,062 INFO [org.jboss.migration.core.task.ServerMigrationTask#559] (main) Migrating deployment overlay 'overlay4', it's linked to deployment cmtool-helloworld2.war
04:33:30,098 INFO [org.jboss.migration.core.task.ServerMigrationTask#560] (main) Removed deployment overlay from server group /deployment-overlay=overlay1
04:33:30,120 INFO [org.jboss.migration.core.task.ServerMigrationTask#560] (main) Removed deployment overlay from server group /deployment-overlay=overlay1
04:33:30,148 INFO [org.jboss.migration.core.task.ServerMigrationTask#560] (main) Removed deployment overlay from configuration /deployment-overlay=overlay1
04:33:30,175 INFO [org.jboss.migration.core.task.ServerMigrationTask#561] (main) Removed deployment overlay from server group /deployment-overlay=overlay2
04:33:30,198 INFO [org.jboss.migration.core.task.ServerMigrationTask#561] (main) Removed deployment overlay from configuration /deployment-overlay=overlay2
04:33:30,202 INFO [org.jboss.migration.core.task.ServerMigrationTask#559] (main) Migrating deployment overlay 'overlay3', it's linked to deployment cmtool-helloworld2.war
Host Configuration File Migration
The migration of a host configuration file consists of copying the source configuration file to the target server, and then apply the relevant changes for such configuration to work correctly in the target server, and also take advantage of the target’s server’s new functionality:
-
Migrate Referenced Modules
-
Remove Unsecure Interface
-
Remove Permgen Attributes from JVMs
-
Migrate Compatible Security Realms
Migrate Referenced Modules
A migrated host configuration may reference, i.e. depend on, modules which are not installed in the target server, and in such case(s) the tool automatically migrates the referenced module(s), from the source server. Beyond that, any module that a referenced module depends on, directly or not, and is not installed in the target server, is automatically migrated too.
A module will be migrated when referenced by:
Whenever a module is migrated, a message indicating the module's id should be printed in the migration console/log, as exampled below:
03:25:31,205 INFO [org.jboss.migration.core.task.ServerMigrationTask#18] (main) Module cmtool.security-realms:main migrated.
It's possible to exclude the migration of specific module(s), by specifying the id(s) in the environment property named modules.excludes.
Remove Unsecure Interface
The tool removes the unsecure interface configuration from all host configurations, to match JBoss EAP 7 default configurations.
The configuration changes are fully automated, and the following messages, in the migration console and log(s), indicate that such changes were done as expected:
02:30:41,015 INFO [org.jboss.migration.core.ServerMigrationTask#480] (main) Interface unsecure removed.
The Migration Environment may be configured to skip the Unsecure interface update, by setting environment property named interface.unsecure.remove.skip as true.
Remove Permgen Attributes from JVMs
The usage of Permgen attributes in JVM configurations is deprecated, and the tool removes these from all JVM configurations, for all server groups.
02:30:41,016 INFO [org.jboss.migration.core.ServerMigrationTask#483] (main) Removal of permgen attributes from JVM configs starting...
02:30:41,050 INFO [org.jboss.migration.core.ServerMigrationTask#484] (main) Permgen removed from JVM /host=eduardos-mini.lan/jvm=default
02:30:41,050 INFO [org.jboss.migration.core.ServerMigrationTask#483] (main) Removal of permgen attributes from JVM configs done.
The Migration Environment may be configured to skip adding this configuration update, by setting environment property named jvms.remove-permgen-attributes.skip as true.
Migrate Compatible Security Realms
EAP 7 Security Realms configuration is fully compatible with the EAP 6 Security Realms configuration, which means that no changes are required and done. As for any properties file referenced by such configuration, in case its path is not absolute then the tool will copy such file, to the path expected by the migrated config file.
The migration of Security Realms is fully automated, no user interaction is needed, and details about its execution are shown in the migration console and log(s):
02:30:41,051 INFO [org.jboss.migration.core.ServerMigrationTask#485] (main) Migrating security realms...
02:30:41,055 INFO [org.jboss.migration.core.ServerMigrationTask#486] (main) Security realm ManagementRealm migrated.
02:30:41,059 INFO [org.jboss.migration.core.ServerMigrationTask#487] (main) Security realm ApplicationRealm migrated.
02:30:41,059 INFO [org.jboss.migration.core.ServerMigrationTask#485] (main) Security realms migration done.
Please note that the Migration Environment may be configured to customise the process of migrating security realms: