Friday, March 31, 2017

Adobe Activation Core Services (DTM) integrating with Adboe Experience Manager (AEM)

Adobe has rebranded their Dynamic Tag Manager (DTM) to now be called Activation Core Services.

There are two ways to integrate Adobe Experience Manager to Activation Core Services:
  • The Nice Way - Using Cloud Integrations
  • The Nasty Way - Adding the Head and Foot scripts directly to your templates.
I'm not going to go through the Nasty way, except that it's quick, dirty and, well, nasty!

Configuring it via Cloud Services you need to get your Marketing Cloud API token. To get this, you need to contact Adobe Client Care for API token by emailing clientcare@adobe.com.

https://helpx.adobe.com/dtm/kb/How_to_retrieve_API_token_for_DTM_account.html

Friday, October 28, 2016

Using Maven to create an RPM distribution

I've been digging around trying to find the minimum POM configuration to create an RPM distribution using Maven. Here it is for anyone else who needs it.

Friday, September 16, 2016

AEM Quick Tips

How to find the runmode
http://host:port/system/console/status-System%20Properties
Listed as sling.run.modes

How to find the version info
http://host:port/system/console/status-productinfo

Wednesday, August 24, 2016

Setting up an AEM 6.2 project with Archetype 10

Adobe hasn't released a new Archetype for Adobe Experience Manager 6.1 and 6.2, so the AEM dependancies have not been updated to use the aem-uber.jar. I noticed this when I extended WCMUse in 6.2 and it was not deprecated. This has been replaced by WCMUsePojo in 6.2. Here's what you need to do to get your AEM project working with aem-uber.jar.

Update the AEM dependency in the project root pom.xml file:

Update the referenced dependencies in the core, it.tests, ui.apps and ui.content module pom.xml files:

That should do it, now WCMUse is deprecated!

Thursday, July 28, 2016

Content Fragment Templates in AEM 6.2 means content centric sites!

Just had the opportunity to start digging through the AEM 6.2 changes, upgrades and improvements and I've stumbled across Content Fragment Templates. WOW! So many times I've seen, heard and been requested to be able to create Content Types and reuse content snippets in an easy and manageable fashion in AEM, and now it's possible.

Content Fragment Templates will allow us to create fragments of content, containing a combination of text, images and whatever we want, in a template format, with renditions, then drag and drop it into a page as if we were adding in an Asset. Great news for replying to every RFP that asks for this!

Check it out on the Adobe AEM Help:

https://helpx.adobe.com/experience-manager/using/content-fragments.html

Wednesday, June 8, 2016

AEM Lucene Index was corrupted after unexpected shutdown

We were seeing the following error message appearing in the error.log files after a recent AWS outage unexpectedly shutdown the whole EC2 instance:
org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker Could not access the Lucene index at /oak:index/lucene
java.io.EOFException: reached end of stream after reading 0 bytes; 32468 bytes expected
        at com.google.common.io.ByteStreams.readFully(ByteStreams.java:697)
        at org.apache.jackrabbit.oak.plugins.index.lucene.OakDirectory$OakIndexFile.loadBlob(OakDirectory.java:218)
        at org.apache.jackrabbit.oak.plugins.index.lucene.OakDirectory$OakIndexFile.readBytes(OakDirectory.java:262)
        at org.apache.jackrabbit.oak.plugins.index.lucene.OakDirectory$OakIndexInput.readBytes(OakDirectory.java:348)
        at org.apache.jackrabbit.oak.plugins.index.lucene.OakDirectory$OakIndexInput.readByte(OakDirectory.java:354)
        ...
AEM did not shut down cleanly when the AWS outage occurred. This log message had pushed the error.log file up to 40+ GB in size.

The first thing I checked was the "Lucene Index statistics" in the JMX Console. On a working Publish instance, this was returning the Lucene Index statistics with an Index Size of 1.2GB. On our suspect instance it was showing no statistics.

To fix this issue, we needed to kick off a Lucene Reindex. To do this you need to login to CRXDE on the instance, navigate to /oak:index/lucene and set the reindex attribute to true.

We were unable login to CRXDE. Our solution was to restart the instance, login as soon as it was available and set the reindex flag. If this solution doesn't work, you can temporarily disable the Oak Lucene bundle (named "Oak Lucene (org.apache.jackrabbit.oak-lucene)"), login to CRXDE and set the reindex flag and finally re-enable the Oak Lucene bundle.