The CI/CD stack runs WildFly and JBoss EAP side-by-side specifically to support migration. You can deploy the same application to both servers simultaneously for parallel testing and gradual traffic cutover — with no downtime. JBoss continues serving production traffic on port 8070 while you validate the migrated application on WildFly at port 8090, giving you a safe fallback at every stage.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/infra-neo/CICD/llms.txt
Use this file to discover all available pages before exploring further.
JBoss EAP vs WildFly
| Feature | JBoss EAP | WildFly |
|---|---|---|
| Licensing | Commercial (Red Hat) | Open Source |
| Support | Enterprise Support | Community |
| Jakarta EE | Supported | Fully Supported |
| Java Version | Up to Java 11/17 | Java 17+ |
| Release Cycle | Slower, stable | Faster, latest features |
Migration Strategy
A successful migration proceeds through four phases. Do not skip phases — each one reduces the risk of the next.Phase 1: Assessment
Before changing any code, fully understand the scope of the migration:
- Inventory all JBoss-deployed applications and their inter-dependencies
- Identify Maven dependency versions, particularly Java EE API coordinates
- Review Jakarta EE compatibility for all third-party libraries
- Document custom JBoss configurations in
standalone.xml, datasource definitions, security domains, and JMS destinations
Phase 2: Preparation
Update the project to target Jakarta EE and WildFly:
- Update
pom.xmlto replace Java EE dependencies with Jakarta EE equivalents - Replace all
javax.*import statements withjakarta.* - Update
web.xml,persistence.xml, and other deployment descriptors to the Jakarta EE 5.0 namespace - Prepare environment-specific properties files in
config/environments/for the WildFly target
Phase 3: Testing
Validate the migrated application before touching staging or production:
- Deploy to WildFly in the
devenvironment using the CI/CD pipeline withTARGET_SERVER=wildfly - Run the full automated test suite through Jenkins
- Perform manual validation against the checklist below
- Compare application behaviour, response times, and log output between the JBoss and WildFly instances
Phase 4: Migration
Once validated in dev, execute the gradual cutover:
- Deploy to staging with
TARGET_SERVER=wildflyand run full regression - Run JBoss and WildFly instances in parallel using the blue-green approach described below
- Gradually shift traffic from port 8070 to port 8090 using your load balancer
- Monitor error rates, response times, and application logs during the traffic shift
- Complete the cutover and decommission the JBoss deployment when stable
Updating Dependencies
Replace the Java EE platform BOM with the Jakarta EE API in yourpom.xml:
provided scope because WildFly ships the Jakarta EE APIs as part of the application server runtime — they must not be bundled inside the WAR.
Updating Imports
Everyjavax.* import that corresponds to a Jakarta EE specification must be changed to jakarta.*. The package roots are identical; only the top-level namespace changes:
sed:
Updating web.xml
Update theweb.xml namespace from the Java EE schema to the Jakarta EE 5.0 schema:
persistence.xml to the Jakarta Persistence 3.0 schema:
WildFly Maven Plugin
Add the WildFly Maven plugin topom.xml to enable direct deployment from Maven during development:
mvn wildfly:deploy. The CI/CD pipeline uses docker cp for deployments, but the plugin is useful for developer inner-loop workflows.
Configuring the CI/CD Pipeline for Migration
Set TARGET_SERVER=wildfly in pipeline parameters
When creating the Jenkins job, set the
TARGET_SERVER default to wildfly under the pipeline parameters. This ensures all builds default to deploying to WildFly rather than JBoss.Update build-config.yml
Change the This tells the pipeline which application server to use when reading deployment configuration.
appserver.type field to wildfly:Parallel Running (Blue-Green)
The CI/CD stack’s side-by-side server configuration makes blue-green migration straightforward:- JBoss (blue) runs on port
8070— serving current production traffic - WildFly (green) runs on port
8090— receiving the migrated application
- Start with 5–10% of traffic routed to WildFly at port 8090
- Monitor error rates, response times, and application logs on both instances
- Gradually increase the WildFly percentage in increments (e.g., 10% → 25% → 50% → 100%)
- At 100% WildFly traffic, decommission the JBoss deployment and remove it from the load balancer pool
Rollback
Because JBoss remains running throughout the migration, rollback is immediate. If a problem is detected at any stage, simply redirect all traffic back to port 8070. No artifact restore or container restart is required — JBoss has been serving traffic continuously and its state is unaffected. For a code-level rollback on WildFly, use the version history in Nexus to redeploy a previous WAR artifact:Manual Testing Checklist
Before shifting any production traffic to WildFly, work through this checklist on the dev and staging deployments:Manual Testing Checklist
Manual Testing Checklist
- Application starts successfully and appears in WildFly deployment list
- All HTTP endpoints return expected responses
- Database connections are established and queries succeed
- Authentication and authorization flows work correctly
- Logging is configured correctly and output appears in
docker logs wildfly - Environment variables and properties are loaded from
config/environments/ - External service integrations (APIs, message queues, caches) are functional
The Nexus version history lets you roll back to any previous WAR artifact or properties archive at any point in the migration. See Version Management for full details on downloading and applying versioned artifacts.
