Upgrade from AEM 6.2 to AEM 6.4.2 (AEM Upgrade AEM 6.4)

If any of you wondering what has been changed in AEM 6.4 and what things has to be restructured and changed to have your code build and deployed on AEM 6.4, please see below.

Please contact contact@Tekniti.com if you need AEM expertise on your projects. Tekniti LLC.


Uber jar: 6.4.0

Update all your application POM files with following Uber jar. aem-api is dependency in older aem versions that provided sling api, etc.

1) Delete aem-api dependency
2) Add uber-jar dependency

global pom


            <dependency>
                <groupId>com.adobe.aem</groupId>
                <artifactId>uber-jar</artifactId>
                <version>6.4.0</version>
                <classifier>apis</classifier>
                <scope>provided</scope>
            </dependency>
ui.apps, ui.content, ui.core


            <dependency>
                <groupId>com.adobe.aem</groupId>
                <artifactId>uber-jar</artifactId>
                <classifier>apis</classifier>
            </dependency>
it.tests


            <dependency>
                <groupId>com.adobe.aem</groupId>
                <artifactId>uber-jar</artifactId>
                <classifier>apis</classifier>
                <scope>provided</scope>
            </dependency>


etc/designs restructuring:

create following folder structure in ui.apps

1) apps/settings/wcm/designs
2) copy  your application designs from etc folder to apps/settings/wcm/designs
3) update filter.xml to have /apps/settings/wcm/designs/my-site instead of etc/designs/my-site

etc/tags restructuring

create following folder structure in ui.content

1) /content/cq:tags (you can export and import cq:tags folder from crxde to eclipse)
2) move tags from etc/tags to content/cq:Tags/my-site
3) clean up filter.xml of ui.apps for etc/tags
4) update ui.content filter.xml with /content/cq:tags/my-site


etc/workflow/models, etc/workflow/launcher restructuring

1) deploy your workflows as is on first mvn clean install -PautoInstallPackage
2) edit each of your workflow models by clicking edit link and going edit mode
3) click on Sync to sync and get the model created at /conf/global/settings/workflow
4) repeat this for all of your workflow models
5) export the newly created /conf/global/settings/workflow/models/dam/my-site and import into eclipse to create the folder structure in ui.apps
6) export the newly created conf/global/settings/workflow/launchers/config and import into eclipse to create the folder structure in ui.apps
7) move etc/workflow/launcher to /conf/global/settings/workflow/launchers/
8)/conf/global/settings/workflow/models/ should have all of etc/workflow/models/dam/my-site
9)export the newly created var/workflow/models/dam and import into eclipse to create the folder structure in ui.apps
10) clean up filter.xml in ui.apps for etc/workflow instructions
11) update ui.apps filter.xml with /conf/global/settings/workflow, /var/worflow/models
12) move etc/workflow/launchers/config to /conf/global/settings/workflow/launchers/config
13) delete etc/worflow/models, etc/workflow/launchers as these already moved to conf/global/settings/workflow/models, var/workflow/models, conf/global/settings/workflow/launchers
14) update ui.apps filter.xml with var/workflow, conf/workflow paths

make sure all etc/tags, etc/workflows/models, etc/workflow/launchers, any other etc/workflow sub folders and etc/designs restructured as per the below AEM documents

https://helpx.adobe.com/mena_en/experience-manager/6-4/sites/deploying/using/repository-restructuring-in-aem64.html#Miscellaneous

https://helpx.adobe.com/experience-manager/6-4/sites/deploying/using/all-repository-restructuring-in-aem-6-4.html#Tags

once you do all of the above, you could do build and deploy of your aem application.
I would recommend creating a sample project using archetype 14 and compare client application poms with the sample project pom files to compare latest version of any dependencies and update.

Restart the com.day.cq.cq-tagging bundle so /cotent/cq:tags new tags appear for tagging. 

There will be code compilation issues as uber jar has latest sling api. Your code needs to be updated to be compatible with latest sling, other apis.

Test:

Unit test designs restructuring by creating new pages with templates and check client lib js, css coming through fine and applied.

Unit test all workflows

Change cq:designPath of all content/my-site pages as designs path is changed ( curl command ?)

Dispatcher rule change to allow new design path to serve client libs, designs

Any code changes as needed.

Comments