Expand my Community achievements bar.

SOLVED

Upgrading from AEM 6.0 to 6.5

Avatar

Level 7

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. 

Questions:

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.

 

Thanks!

 

Kevin

1 Accepted Solution

Avatar

Correct answer by
Level 7

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. 

 

Thanks,

Antonio

View solution in original post

8 Replies

Avatar

Community Advisor

@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.

Avatar

Level 7

Thanks for your advice, it's really helpful. I am actually doing mostly as you are advising. It's impossible to copy and paste as I am looking deeper into the two different versions.

Avatar

Correct answer by
Level 7

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. 

 

Thanks,

Antonio

Avatar

Level 7
Do we have to follow Adobe's Archtype13 structure, or just keep the old if considering the easy way at the first step? Moving to new structure invites a lot of challenges such as package names, dependencies. But I am afraid keeping the old structure will not be compatible with 6.5.

Avatar

Level 7
Some structure change are required if you want to perform the upgrade (e.g. the repository changes from etc path). But if you are talking about javastuff, you can use also the previous structure until you finish all the migration

Avatar

Level 7
Thank you! Yes, we are considering moving to CoralUI. Another challenge is we need to change all jsp, jstl to htl also.