Upgrading AEM 6.5 LTS on JBoss EAP 8 (Windows)
Overview
This guide provides step-by-step instructions for upgrading an existing Adobe Experience Manager (AEM) 6.5 LTS installation from JBoss EAP 7.4 to JBoss EAP 8 on Windows, using JDK 21.
Upgrade Path: JBoss EAP 7.4 (JDK 11) → JBoss EAP 8 (JDK 21)
Important Notices
Pre-Upgrade Requirements
System Requirements
Required Downloads
Before beginning the upgrade, obtain the following:
-
JBoss EAP 8.0 Distribution
Download from: https://developers.redhat.com/products/eap/download -
JDK 21 Installer
Download Oracle JDK 21 or OpenJDK 21 for Windows (64-bit) -
AEM 6.5 LTS WAR File
Obtain the latest AEM 6.5 Service Pack WAR from Adobe Software Distribution
Step 1: Create Complete Backup
Backup Checklist
- [ ] Full backup of existing JBoss EAP 7.4 installation directory
- [ ] Backup of
crx-repositoryfolder - [ ] Backup of
crx-quickstartfolder - [ ] Export of all custom configurations
- [ ] Database backup (if using external database)
- [ ] Document current system state and configurations
Create Backup
# Example backup location
C:\AEM-Backups\Pre-Upgrade-<date>
# Copy entire JBoss 7.4 directory
xcopy "C:\jboss-eap-7.4" "C:\AEM-Backups\Pre-Upgrade-<date>\jboss-eap-7.4" /E /I /H
Recommended: Store backups on a separate drive or network location.
Step 2: Install JBoss EAP 8
Extract JBoss EAP 8
-
Extract the JBoss EAP 8 ZIP distribution to your target installation directory:
code language-none C:\jboss-eap-8.0 -
Note this directory path as
<JBOSS_HOME>for use throughout this guide.
Replicate Directory Structure
Ensure the new JBoss EAP 8 installation has the same custom directory structure as your previous JBoss EAP 7.4 setup, particularly:
- Custom deployment directories
- External configuration folders
- Log file locations
- Any custom modules or libraries
Step 3: Migrate Repository Data
Copy CRX Repository
-
Navigate to your existing JBoss EAP 7.4 installation:
code language-none <OLD_JBOSS_HOME>\bin\crx-repository -
Copy the entire
crx-repositoryfolder to the new JBoss EAP 8 installation:code language-cmd xcopy "C:\jboss-eap-7.4\bin\crx-repository" "C:\jboss-eap-8.0\bin\crx-repository" /E /I /H
Important: This folder contains your content repository and must be transferred completely.
Verify Repository Copy
After copying, verify the repository size and structure match the source:
dir "C:\jboss-eap-8.0\bin\crx-repository" /s
Step 4: Stop AEM Instance
Before making any changes, ensure AEM is completely stopped.
Stop via Windows Services
- Open Services (Run:
services.msc) - Locate your AEM/JBoss service
- Right-click and select Stop
- Wait for the service to fully stop
Stop via Command Line
If AEM was started manually:
- Go to the JBoss console window
- Press
Ctrl+C - Wait for graceful shutdown to complete
Verify Shutdown
Ensure the Java process is no longer running:
tasklist | findstr java
Step 5: Clean Up Legacy AEM Files
Remove outdated files from the crx-quickstart directory to ensure a clean upgrade.
5.1 Remove Launchpad Startup Folder
Location:
<JBOSS_HOME>\bin\crx-repository\crx-quickstart\launchpad\startup
Action:
rd /s /q "C:\jboss-eap-8.0\bin\crx-repository\crx-quickstart\launchpad\startup"
Purpose: This folder contains old OSGi bundles that will be regenerated during the upgrade.
5.2 Remove Base JAR File
Location:
<JBOSS_HOME>\bin\crx-repository\crx-quickstart\launchpad\org.apache.sling.launchpad.base.jar
Action:
del "C:\jboss-eap-8.0\bin\crx-repository\crx-quickstart\launchpad\org.apache.sling.launchpad.base.jar"
Purpose: This JAR will be replaced with the version from the new WAR file.
5.3 Remove Bootstrap Command File
Location:
<JBOSS_HOME>\bin\crx-repository\crx-quickstart\launchpad\felix\bundle0\BootstrapCommandFile_*.txt
Action:
del "C:\jboss-eap-8.0\bin\crx-repository\crx-quickstart\launchpad\felix\bundle0\BootstrapCommandFile_*.txt"
Purpose: Bootstrap commands will be regenerated for the new environment.
5.4 Remove sling.options File
Location:
<JBOSS_HOME>\bin\crx-repository\crx-quickstart\launchpad\felix\sling.options.file
Action:
del "C:\jboss-eap-8.0\bin\crx-repository\crx-quickstart\launchpad\felix\sling.options.file"
5.5 Remove sling_bootstrap.txt File
Location:
<JBOSS_HOME>\bin\crx-repository\crx-quickstart\launchpad\sling_bootstrap.txt
Action:
del "C:\jboss-eap-8.0\bin\crx-repository\crx-quickstart\launchpad\sling_bootstrap.txt"
5.6 Backup and Remove sling.properties File
This file contains environment-specific configurations that may need to be merged later.
Location:
<JBOSS_HOME>\bin\crx-repository\crx-quickstart\conf\sling.properties
Action:
-
Create backup:
code language-cmd copy "C:\jboss-eap-8.0\bin\crx-repository\crx-quickstart\conf\sling.properties" "C:\AEM-Backups\sling.properties.backup" -
Delete original:
code language-cmd del "C:\jboss-eap-8.0\bin\crx-repository\crx-quickstart\conf\sling.properties"
Purpose: A new sling.properties will be generated. Review your backup to restore any custom configurations after the upgrade.
Step 6: Install and Configure JDK 21
Install JDK 21
- Run the JDK 21 installer for Windows
- Install to a standard location (e.g.,
C:\Program Files\Java\jdk-21) - Complete the installation wizard
Configure Environment Variables
Set JAVA_HOME
-
Open System Properties → Advanced → Environment Variables
-
Under System Variables, click New
-
Set:
- Variable name:
JAVA_HOME - Variable value:
C:\Program Files\Java\jdk-21
- Variable name:
-
Click OK
Update PATH Variable
-
In System Variables, select
Pathand click Edit -
Add new entry:
code language-none %JAVA_HOME%\bin -
Move this entry to the top of the list to ensure JDK 21 takes precedence
-
Click OK on all dialogs
Verify Java Installation
-
Open a new Command Prompt (to load updated environment variables)
-
Verify Java version:
code language-cmd java -versionExpected output:
code language-none java version "21.0.x" Java(TM) SE Runtime Environment (build 21.0.x+...) Java HotSpot(TM) 64-Bit Server VM (build 21.0.x+..., mixed mode, sharing) -
Verify JAVA_HOME:
code language-cmd echo %JAVA_HOME%
Step 7: Configure JVM Settings
Before deploying AEM, configure appropriate JVM memory settings for production use.
Edit standalone.conf.bat
-
Navigate to:
code language-none <JBOSS_HOME>\bin -
Open
standalone.conf.batin a text editor (as Administrator) -
Locate or add the
JAVA_OPTSconfiguration:code language-batch rem # AEM Production JVM Settings set "JAVA_OPTS=-Xms4096m -Xmx4096m -XX:MaxMetaspaceSize=768m" set "JAVA_OPTS=%JAVA_OPTS% -Djava.net.preferIPv4Stack=true" set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8" set "JAVA_OPTS=%JAVA_OPTS% -server" -
Save and close the file
Recommended Settings:
-Xms-Xmx-XX:MaxMetaspaceSizeNote: Adjust values based on your server’s available memory and workload requirements.
Step 8: Deploy AEM 6.5 LTS WAR
Prepare WAR File
Ensure your AEM WAR file is properly configured as per the deployment guide:
jboss-deployment-structure.xmlis presentweb.xmlincludes multipart-config settings- WAR is repacked if any modifications were made
Deploy to JBoss
-
Copy the AEM 6.5 LTS WAR file to the deployments directory:
code language-cmd copy "C:\AEM-Downloads\cq-quickstart-6.5.xx.war" "C:\jboss-eap-8.0\standalone\deployments\cq-quickstart.war"
Important: Ensure the WAR filename matches your desired URL context path.
Step 9: Start JBoss EAP 8 with AEM
Start the Server
-
Open Command Prompt as Administrator
-
Navigate to JBoss bin directory:
code language-cmd cd C:\jboss-eap-8.0\bin -
Start JBoss EAP 8:
code language-cmd standalone.bat -b 0.0.0.0 -bmanagement 0.0.0.0
Monitor Initial Startup
Watch the console output for:
-
WAR Deployment:
code language-none Deployed "cq-quickstart.war" (runtime-name : "cq-quickstart.war") -
AEM Initialization Messages:
code language-none Apache Sling Application Launcher Sling Home: crx-repository/crx-quickstart -
Repository Upgrade (if applicable):
code language-none Performing repository migration...
Expected Startup Time: 5-15 minutes depending on repository size and system resources.
Step 10: Verify Upgrade Success
Check AEM Startup
Monitor the JBoss console for the final startup message:
**** AEM started successfully ****
Access AEM Interface
-
Open a web browser
-
Navigate to:
code language-none http://localhost:8080/cq-quickstart -
Log in with admin credentials:
- Username:
admin - Password:
admin(or your custom password)
- Username:
Verify System Information
-
Navigate to Tools → Operations → Web Console
code language-none http://localhost:8080/cq-quickstart/system/console -
Click System Information
-
Verify:
- JVM Version: Should show Java 21
- JBoss Version: Should show EAP 8.x
- AEM Version: Should show 6.5.xx
Check System Health
Navigate to Tools → Operations → Diagnosis to run health checks:
- Bundle Status: All bundles should be “Active”
- Resource Resolution: Should show healthy status
- Query Performance: Review for any degradation
Post-Upgrade Tasks
Restore Custom Configurations
-
Review the backed-up
sling.propertiesfile -
Restore any custom run modes or configurations to the new file:
code language-none <JBOSS_HOME>\bin\crx-repository\crx-quickstart\conf\sling.properties -
Restart AEM if configurations were changed
Update Replication Agents
- Navigate to Tools → Deployment → Replication → Agents on Author
- Review and test all replication agents
- Update any hardcoded references to old server paths
Test Critical Functionality
- [ ] Content authoring and publishing
- [ ] Asset upload and processing
- [ ] Workflow execution
- [ ] User authentication
- [ ] Integration endpoints
- [ ] Custom components and templates
Performance Optimization
- Review and clear any temporary caches
- Monitor system performance during initial usage
- Adjust JVM settings if needed based on actual usage patterns
Troubleshooting
Common Issues
JAVA_HOME points to JDK 21-Xmx in standalone.conf.batLog File Locations
-
JBoss Server Log:
<JBOSS_HOME>\standalone\log\server.log -
AEM Error Log:
<JBOSS_HOME>\bin\crx-repository\crx-quickstart\logs\error.log -
AEM Access Log:
<JBOSS_HOME>\bin\crx-repository\crx-quickstart\logs\access.log
Rollback Procedure
If the upgrade fails and cannot be resolved:
- Stop JBoss EAP 8
- Restore the complete backup of JBoss EAP 7.4
- Restore the
crx-repositoryfolder - Verify
JAVA_HOMEpoints to JDK 11 (if rolling back) - Start the previous environment
Best Practices
Before Production Deployment
- [ ] Test the complete upgrade process in a development environment
- [ ] Test in a staging environment with production-like data
- [ ] Document all custom configurations and integrations
- [ ] Create a detailed rollback plan
- [ ] Schedule upgrade during maintenance window
- [ ] Notify all stakeholders of planned downtime
After Successful Upgrade
- [ ] Monitor system logs for 48-72 hours
- [ ] Perform load testing to identify performance issues
- [ ] Update system documentation
- [ ] Train team on any JBoss EAP 8 differences
- [ ] Archive all upgrade documentation and backups
Related Documentation
Document Information
Legal Notice: Adobe, Adobe Experience Manager, and AEM are registered trademarks of Adobe Inc. JBoss and Red Hat are registered trademarks of Red Hat, Inc.