Expand my Community achievements bar.

Strategy for releasing single properties or single JCR nodes through continuous integration?

Avatar

Level 4

Curious if anyone has a good strategy for handling the following scenario:

Have a maven based project that builds two artifacts - ui.apps and ui.content - if you are familiar with the AEM archetype.

Now, we have created a component that looks for a particular property on a specific resource, for this lets say the node exists here:

/content/project/admin-page/speedbump/settings/jcr:content/main/settings

Now there are two hypothetical situations:

1 - The settings page (/content/project/admin-page/speedbump/settings) doesn't exist

2 - Settings page exists, but is missing the settings resource (/content/project/admin-page/speedbump/settings/jcr:content/main/settings)

This particular property and page needs to exist as we have some java logic looking for it, and, it needs to live under content because it is a resource that authors will modify.

I want a way to push just a few nodes out to the JCR and have it be part of the continuous integration. A colleague suggests adding it to the APPS package, but I don't like having a node that is authorable in Apps package. As far as the UI.content package. We don't typically release new content via continuous integration. We really only use it for site releases, then re-build it for backups of content.

Maybe I am thinking of the UI.content node differently. Maybe this is where it does belong and we should be releasing the content package with our continuous integration, but that leaves us open to wiping the JCR on accident if someone doesn't control the filters correctly...

Looking for someone who has faced this problem or who might have an elegant solution. 

P.S. - I know we could just create a package, and push it out, but that would be outside of the scope of our continuous integration system and I am trying to build a pattern that we can handle situations like this on a constant basis through the CI process.

1 Reply

Avatar

Employee Advisor

Hi,

so if I understand you correctly, your code requires that a certain page (including some properties) are present to work correctly.

What you could is to have a 3rd maven project (as content package) where you can place these JCR nodes. And depending on the state of the system you're working with you can deploy it on a system or not.

I agree, that you should not have authorable content in a deployment package.

Jörg