Thursday, September 10, 2015

Preparing AEM Archetype 10 for Development

Adobe Experience Manager 6.1 has a new AEM Maven archetype 10 provided to help you generate your base project structure. This new archetype adds some new modules and a lot of sample content to guide you through the development process.

The sample content is a blessing and a curse! A blessing because it shows you the simple things and a curse because you have to strip the generated project down to use it for your enterprise project. Here's a list of what I strip out.

module: core
  • /src/main/java/project-path
    Delete all folders under this project-path as each one contains a sample implementation. These core samples are removed as they are samples only and not all will be used in a project. Folders are recreated as they are needed.
  • /src/main/test
    All of the packages under the core/test folders are deleted. As the JUnit test cases are written the test package structure will be created.

module: it.launcher
  • /src/main/java
    Remove all of the packages below this project and only add code in here when it is required for JUnit server side testing
  • /src/main/test
    Remove all of the packages below this project and only add code in here when it is required for JUnit server side testing

module: it.tests
  • /src/main/java
    Remove all of the packages below this project and only add code in here when it is required for JUnit server side testing
  • /src/main/test
    Remove all of the packages below this project and only add code in here when it is required for JUnit server side testing

module: ui.apps
  • /src/main/content/jcr_root/apps/appFolderName/components
    Remove all of the sub-folders under the components folder. These components are sample components only.
  • /src/main/content/jcr_root/apps/appFolderName/config
    Remove the logger configuration from this folder. This folder will contain any configuration that is created during the project.
  • /src/main/content/jcr_root/apps/appFolderName/config.author
    Remove the mobile emulator configuration from this folder. This folder will contain any author configuration that is created during the project.
  • /src/main/content/jcr_root/apps/appFolderName/i18n
    If the project contains multilingual, remove the content of this folder and recreate it for each language. Otherwise, remove the i18n folder completely.
  • /src/main/content/jcr_root/apps/appFolderName/templates
    Remove the folders within the templates folder. These templates are sample templates only.
  • /src/main/content/jcr_root/apps/appFolderName/tests
    Remove the tests folder.
  • /src/main/content/jcr_root/etc/designs/appFolderName/*
    Remove the folders within the etc.designs.appFolderName folder and the content from this folder.. This references the deleted components and will need to be recreated with the project specific implementation.

module: ui.content
  • /src/main/content/jcr_root/content/dam/siteName
    Remove the folders (_jcr_content and asset.jpg) but leave the .content.xml node definition file.
  • /src/main/content/jcr_root/content/siteName
    • For a single site, remove the folders and only keep the .content.xml node definition file. Update the .content.xml file to use the sling:resourceType to point to the home page component that will be defined later in the project.
    • If the project has multilingual sites, then leave the en folder (or the folder of the default language) update the .content.xml node definition file and set the redirectTarget to point to the site default.

No comments:

Post a Comment