Mastering the AEM 6.5 LTS Upgrade

As Adobe Experience Manager (AEM) 6.5 continues as a Long-Term Supported (LTS) release, many organizations are planning to upgrade to get latest java version support and a future-ready, secure and compliant AEM platform. This session will walk you through the essential steps for upgrading to AEM 6.5 LTS, including pre-upgrade assessments, readiness checklists, and Java version requirements.

We'll demonstrate how to use the AEM Analyzer report to identify potential issues before starting your upgrade. The session will also highlight important technical changes, such as updates to key plugins and libraries.

You'll gain practical advice on upgrade best practices, learn how to avoid common pitfalls, and see solutions to challenges encountered in real-world projects. We'll share lessons learned from early adopters of AEM 6.5 LTS, and provide an overview of the current and upcoming AEM 6.5 service pack schedule to help you plan future maintenance and updates.

Henry Kuijpers

Specifically for this LTS version, would you recommend an in-place upgrade (bump Java, replace Quickstart, deploy adjusted codebase), or would you recommend setting up a new instance and migrating content etc?

Mehdi Al.

I have seen only in place upgrade in the docs, like it was the only recommeded way

Henry Kuijpers

That's what I thought as well! But I was wondering if there would be any recommendation to not do in-place

MOHIT KATARIA

For jar deployment we can perform in-place upgrade. Refer: https://experienceleague.adobe.com/en/docs/experience-manager-65-lts/content/implementing/deploying/upgrading/in-place-upgrade For war deployments: side-grade is upgrade option. Refer:https://experienceleague.adobe.com/en/docs/experience-manager-65-lts/content/implementing/deploying/upgrading/app-server-upgrade: https://experienceleague.adobe.com/en/docs/experience-manager-65-lts/content/implementing/deploying/upgrading/app-server-upgrade

Mehdi Al.

With the future release of 6.6 and further , how the versioning will done in the futur for 6.5 LTS ?

Tad

6.5 LTS is the marketing name, but all of the individual entities in the project are called "6.6.*" If they ever do version-bump up AEM again, that'll be their pickle to get out of. :)

Mehdi Al.

not sure about that, with past exchange with Adobe Support, there are also also another 6.6 in preparation(different then this 6.5 LTS // 6.5 2025 and all previous names)

wolf

The support has also indicated that the next version would be "AEM 7.0". Plans change...

MOHIT KATARIA

Now SP's are provided as new quickstart/war, this makes LTS a perpetual release. New SP'w will follow version as 6.6.1.LTS --> AEM6.5 LTS SP1 6.6.2.LTS --> AEM6.5 LTS SP2. for all practical purposes.

Amine

What are the TLS requirements or changes when upgrading from AEM 6.5 to the latest LTS version?

MOHIT KATARIA

No changes required from TLS point of view while upgrading to LTS.

Pattabhi

Does the tool analyze add on packages as well like commerce add on , forms and more?

MOHIT KATARIA

Analyzer tool extract all information from running instance, so in case add-ons are installed and there are incompatibilities, the tool will catch the incompatibilities.

Konrad

Why do you ship updates to AEM 6.5 more often than for AEM 6.5 LTS (https://experienceleague.adobe.com/en/docs/experience-manager-release-information/aem-release-updates/update-releases-roadmap?lang=en#aem65lts)? The fixes for 6.5 SP23 were unfixed in AEM 6.5 LTS for 3 months....

MOHIT KATARIA

The current cadence is 6 months but we can try to streamline this better in future.

Konrad

When will you support Java 25?

wolf

Both for running AEM and for building in Cloud Manager...

MOHIT KATARIA

Java25 just got released in September 25, so I think we would need some time to plan it.

Henry Kuijpers

Why would you want to start deleting commerce / social / etc? If I have to fix 9000 findings before starting my upgrade, I'm going to have a huge project. Afaik, when doing the in-place upgrade, the updater bundle actually makes sure to clean up social, commerce, etc. It would have been nice if this Analyzer would have come up with actually useful manually used paths (by our implementation, not by Adobe) that require attention.

MOHIT KATARIA

The analyzer provide information on incompatibilities in both Adobe's as well as custom code. So from custom code point of view, analyzer tool will provide following relevant info: 1. It marks all non supported nodeTypes both adobe as well as custom code. 2. It will also report components if you are extending non-supported components from social/commerce. Same applies to other incompatibilities also in custom code.

Henry Kuijpers

Back in the day, when I was testing and also creating the precompiled-scripts that Adobe still doesn't provide for AEM on-prem, I noticed I could not compile a few JSP files, since they were still referencing removed code from Social / Commerce / Sling Atom / etc. Are they now removed? It was provided as feedback back in the day in the beta test, through Discord.

Henry Kuijpers

When will you start providing precompiled scripts for AEM 6.5 LTS (and preferably also non-LTS)?

Robert Wunsch

How difficult would you judge the upgrade? Generally both AEMs are the same, with a lot of older, legacy functionality removed, and some bundles adjusted to work with Java21. The current java 8 or 11 code should also run on java 17 or 21, with just a few exceptions (java parameters, some annotations etc). The repo (segmentstore and data store) remains identical. So the migration should be simple in most cases. But it is an opportunity to also remove bloat from repo and code, anc to clean the house in the upgrade.

Henry Kuijpers

Actually, there are (at least) a few points to consider:
* You want to remove all your Guava code, or you want to shade Guava into your own bundles
* You will start seeing a lot of deprecated APIs (I can say Sling's PropertiesUtil & HealthCheck from head, but there were more) - You would want to avoid adding deprecated APIs
* com.day.cq.contentsync.handler.util.RequestResponseFactory is not available anymore, you should use Sling's Request/Response Builders
* If you have strict build warnings enabled, you'll encounter the "this-escape" introduced in the newer Java versions, Google it 😀
* Be cautious about locale changes, for the Dutch locale, a dot was magically introduced in the CLDR that is behind it
* You can use Locale.of() now, but building in IntelliJ starts to fail :D See also: https://youtrack.jetbrains.com/issue/TW-77295
* There are some issues with the old ImageIO / Sun stuff, you might need "--add-opens java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED" or similar

Henry Kuijpers

That's all I can remember from my upgrade-journey (that I still need to finish)

wolf

The other change for Locale to consider is that Oracle switched to "current" country codes for Indonesia and a couple of other places. There is a logic that forcibly updates the country code if you use the "old" codes, which means some dictionaries and other locale-specific things have to be moved.

MOHIT KATARIA

Well it depends on how many incompatibilities with respect to java and because of deprecated solutions, you have. Regarding removal of guava usage: AEM is now not dependent on guava and is not supporting as OOTB dependency. But you can continue using guava in aem 6.5 LTS, you can also install latest guava version as this won't interfere with AEM 6.5 LTS now. Most of the issues mentioned bu Henry are related to Java upgrade. We did added many add-opens command line params based on current aem implementation.

Robin

Instead of deleting content via the transformer tool, isn't it better to make that content compatible via tooling like oak-upgrade?

MOHIT KATARIA

The incompatible content marked is from unsupported solutions like social and commerce etc. So not sure how helpful it will be to remove incompatibility using oak-upgrade. If you keep the content and keep on using it, you may face runtime errors as respective bundles won't be present after upgrade.

wolf

Why is there no entry for any Service Pack after 6.6.1 listed? If we are to believe that LTS is supported, this is not a good look - and it is a hard sell given that 6.5.24 is listed. And why is the "official" documentation stating that the updates will be quarterly, and you you said that they will be half-yearly?

MOHIT KATARIA

Good catch, we will update documentation.

Masoud Rozati

A lot of AEM bundles still use deprecated dependencies like Collections3, etc. Are you planning to remove/upgrade them as well?

Jörg

In many cases it's not that easy to get rid of them :-)

MOHIT KATARIA

It is ongoing process. We already have collections4 in AEM and we are moving from collections3 to collection4.

Yves De Bruyne

The transformer tool was mentioned but not explored. Is there a documentation I should look into?

MOHIT KATARIA

Sorry forgot to show it in demo. Here is asumamry:
1. It used AEM's analyzer tools and show all incompatible paths on UI.
2. This tool provides a UI to easily delete content paths.
3. Make sure that you don't have any custom content under these paths before you delete the paths from UI. The analyzer tool (package) can be downloaded from https://experience.adobe.com/#/downloads/content/software-distribution/en/aem.html?package=/content/software-distribution/en/details.html/content/dam/aem/public/adobe/packages/analyzer/6-5-lts/aem66-analyzer.all-1.0.6.zip