Expand my Community achievements bar.

SOLVED

From Bundle to installable package

Avatar

Level 2

Hello,

I started with AEM a few days ago and I have read a lot of documentations - they are quite good and so far all is clear for me concerning the documentation. But I still have a few problems to get the whole picture - so therefore I would like to write what I have understood (I hope it is right) and then I would expose my lack concerning the big picture.

0. the AEM architecture with author/publish instances and Dispatchers is quite clear

1. Over URIs content in CRX can be handled (CRUD - Sling form commands) -> content first

2. over sling:resourceType the script which handles the nodes and properties can be adjusted -> scripts which handles content

3. with maven a bundle can be created (in the pom there is a maven profile which makes it easy to install the bundle into AEM)

4. with JSP- Scriplets/Declarations/... it is possible to include behaviour (Java code) into view (unfortunately view and business code is nor separated)

5. under /content there are the nodes and properties which holds the content for frontend

6. under /apps the developed bundles are located

What I still not know is, if I have created my own bundle(s) and my own JSP(s) and my own /content- Nodes and Properties, how I can pack all this in a package to deliver it to a customer.

It would be great if someone could correct me if some statements above are wrong and could give me a hint concerning the question above.

Thanks a lot and all the best!!

Max

1 Accepted Solution

Avatar

Correct answer by
Level 10

Never build bundles under apps using CRXDE lite. As Jorg pointed out - always use Maven. See this article:

Creating your first AEM Service using an Adobe Maven Archetype project

Also as a new user - read this article:

Adobe Experience Manager Onboarding resources

You will find a lot of AEM How TO articles here:

http://helpx.adobe.com/marketing-cloud/experience-manager.html

View solution in original post

5 Replies

Avatar

Employee Advisor

Hi Max,

It's probably best if you start with the AEM maven archetypes, which create a maven project suitable for AEM development [1]; it also uses the content-package-maven-plugin to package all your files into a content-package for easy deployment.

kind regards,
Jörg

[1] http://docs.adobe.com/docs/en/cq/current/developing/developmenttools/how-to-build-aem-projects-using...

Avatar

Correct answer by
Level 10

Never build bundles under apps using CRXDE lite. As Jorg pointed out - always use Maven. See this article:

Creating your first AEM Service using an Adobe Maven Archetype project

Also as a new user - read this article:

Adobe Experience Manager Onboarding resources

You will find a lot of AEM How TO articles here:

http://helpx.adobe.com/marketing-cloud/experience-manager.html

Avatar

Level 2

OK, content-package-maven-plugin is the hint.

This Maven plugin does the packaging.

Thanks a lot Jörg!!

All the best.

Avatar

Level 2

Hi all,

I would have one more question. I really have problems understanding the concept of the whole lifecycle, from starting to create a bundle till installing it and publishing it. 

I read the article http://docs.adobe.com/docs/en/cq/current/developing/developmenttools/how-to-build-aem-projects-using..., so what's clear for me is the folder structure:

myproject -bundle pom.xml (inherits from parent pom) -content pom.xml (also inherits from parent pom) pom.xml

If I execute maven profile "autoInstallBundle" than the bundle is installed under /apps/myproject -> and there a config- and an install folder exists by default. What I couldn't get is,if it is possible to have html- websites in the bundle or is the bundle only a container for JSP (renderer) - currently I could'nt get the link between the html- pages in "siteadmin" and the JCR- content (JSPs, nodes, properties and so on)

I will apologize for this rather simple (stupied) question and thanks a lot for your help,

Max

Avatar

Level 8

Hi Max,

I think you are doing well so far! Be aware of the difference between a bundle and a content package:

  • Bundle: an OSGi thing -- packages your stuff that make up your OSGi service. 
  • Content Package: These packages contain xml representations of JCR nodes. Any JCR node can go into a package.

So, yes content packages can contain your html pages --  the JCR nodes that represent the html pages -- rather, the xml representation of the JCR nodes.

It would probably be a useful learning exercise to create a package using Package Manager, download it, then extract the contents. You will see what I mean by the xml-representation.

http://docs.adobe.com/docs/en/aem/6-0/administer/content/package-manager.html

Hope that helps

scott