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