What is ACS AEM Commons?

What is ACS AEM Commons?
ACS AEM Commons is a suite of Adobe Experience Manager components, services, and other tools for bootstrapping an AEM implementation.

Created by the Adobe Consulting Services group, AEM commons includes a broad range of useful items that fill some gaps in the out-of-the-box implementation of Adobe Experience Manager. From servlets for capturing a series of image transforms under a re-usable label, to common workflow processes, and even tools to expand the logging capabilities of your AEM instance, AEM commons addresses many “missing features” that AEM implementers, developers, sysadmins, and users often find themselves wishing they had.

No matter what your level of interaction is with your organization’s Adobe Experience Manager implementation, you will likely find some piece of AEM Commons that makes your life just a little bit easier.

Where can I get it?
The AEM Commons package is one of three related offerings the Adobe Consulting Services has published on GitHub (the other two being the ACS AEM Tools, and ACS AEM Samples; we’ll also cover each of those in future articles on this blog.)

You can add AEM Commons as a maven dependency, or you can download the latest release directly and install it in your instance via the AEM Package Manager service (/crx/packmgr/index.jsp).

Are there any caveats?
The first thing to note is that, as nice as Adobe Experience Manager Commons is to have, it’s not a silver bullet. Your developers are going to have to familiarize themselves with the tools provided, and make sure they’re using them in an effective way. If you stay tuned to AEM Podcast, we plan to provide some assistance with that; but you’ll also need to discuss where and how using the components makes sense in your own implementation. With some of the tools provided, you’ll want to engage your Operations team to make sure they can support you in how you’re planning to use them.

Additionally, there are just a handful of optional dependencies that live outside the AEM Commons itself that will be required to use some of the pieces. At the time this article was originally written, these include the Twitter4J library (provided by the ACS team as an OSGi bundle here); the Apache Sling Models and Sling Health Check packages (these latter two are only required as separate installs if you’re using an AEM version prior to 6.0, as they are part of the product proper starting with 6.0.0); and Netty (provided here.)

Where can I learn more?
First of all, you can find the project itself—and some surface documentation—on the GitHub site. Additionally, the Adobe Experience Manager Podcast team will be covering specific items inside AEM Commons. Peter and I will spend some time talking about some of the components we’ve really found useful, and other members of the AEM Podcast team will be chipping in with detailed articles demonstrating practical application of the same set of components. If there are particular components you’d especially like to see us cover, please drop us a line at info@aempodcast.com.