Upgrading from AEM 6.0 to 6.5



Hi all, 

Wish everyone to stay well during this difficult time.

We are considering to upgrade from 6.0 with sp3 to 6.5. I read through this article and it doesn't look like we need to run the repo conversion jar. 

The most difficult thing is the code migration. The structure is very different and it seems we need to rewrite a lot. For instance, the old project has two directories, "bundle" and "content". There are 5 now, which means that we have to handpick all the components, models, beans, servlets, etc within the bundle to migrate to new directories, such as core/servlets, core/models, etc. 


1. Is it recommended to add more directories under "core", for instance, "beans"?

2. What's the most effective way to migrate the code and less error prone?

3. From this article, we can keep the old annotations. Is it recommended to have both? I figure that a lot of current components, services stop working with the old annotations, even if adding the felix.scr annotations to pom.





Accepted Solutions (1)

Accepted Solutions (1)



Hi @kevingtan ,

regarding your questions:

1. The architecture of the application depends on your project. Sometimes it's better to create a separated bundles (e.g. if you have an integration layer which can contains a lot of stuff) sometime can be useless. It depends on your project, you can create the most appropriated application architecture

2. In order to migrate your code, It depends on the timing that your customer can give you. In my experience I performed code migration in 2 ways:

  • By migrating the full code in a separated environment which was in parallel to the existing environment, and by perform an alignment of the new develop
  • By starting the migration with previous annotation, and planning the switch in different release

3. The best should be to have new annotation for sure, but if you have a lot of stuff to change and you need to plan you upgrade, since old annotation works you can use both. Just pay attention to the pom.xml organisation when you try to use both annotation. If you don't configure it in a good way you can face some issue into the register of the components


If you want to use both, I can suggest you to create a new bundle (that contains the same structure of the old ones) which can be used in order to move (step by step) your previous code with old annotation. 




Answers (1)

Answers (1)




@kevingtan I think it will be a big change to upgrade from AEM 6.0 to 6.5. I would call it migration.


First of all please keep your existing code base as backup and I feel it will be just used for logic reference. 


Please create a new project using latest Adobe aem maven archetype and start uplifting your core module I.e java, starting building models, services, servlets etc..


Now comes the ui part, if you have built your current project with classic ui, it is time to upgrade to touch ui. If your are already in touch ui, you have to upgrade to coralui3 widgets.


So on and so forth please update your newly created project with your current implementatio  items. In most cases no copy/pastes work.