Home

Creating a site footer in AEM 6 using Sightly and Sling Models

The Adobe-developed and recently-donated-to-Apache-Sling project Sightly project has been out for a little under a year now, alongside Adobe Experience Manager 6, and has slowly been amassing documentation and gaining presence. The server-side templating language aims to give a facelift to the web development facet of Java-based software stacks, Adobe's AEM chief among them. This post will run the reader through a sample implementation of a site footer using Sightly, showcasing and describing a few...

CQ Haiku: JCR vs. Sling

Adapt to Node like Assembly inside Java Use Sling API Quite often I see code, especially from less experience developers, with something like this: Node node = resource.adaptTo(Node.class); String property = null; try{ property = node.getProperty("myProperty").getString(); } catch (RepositoryException re){ log.error("Exception accessing myProperty", re); } Or even scarier, there may be just a global exception handler for the particular method. Either way, this code is a lot more fragile than it needs to be. If...

AEM-Lingotek Translation Connector Webinar

Are you using a custom or legacy integration for managing your translations in AEM?  Are you interested in supporting both machine and human translation? Do you want to make your translation process easier, cheaper and more reliable? If so the AEM-Lingotek Translation Connector Webinar is for you! Now it's easy to quickly translate your content directly from within Adobe Experience Manager (AEM) using the new Lingotek - Inside AEM Connector. Developed by Six Dimensions, an Adobe Business...

Invalid CEN Header (bad signature)? We can fix that.

Here recently I was tasked with grabbing content from a client's production systems to install in our dev system so the developers could test their code against real conent without worrying about damaging production content should things go wrong in testing. Everything went well until I tried to upload the package to our development instance of AEM, in which case I was met with this cryptic error message from CRX Package Manager: After almost an...

OSGi Fragments, Fragment Host and AEM 6. Where's the bundle?!

Recently, I had the opportunity to upgrade a project to AEM 6.0 sp2. I did the usual updating maven dependency versions, but no matter what I tried I could not get a Fragment to start. After further investigation, I discovered two important changes made to AEM 6 ... Important changes to AEM 6 Maven-bundle-plugin "wrap" goal I upgraded the maven-bundle-plugin to version 2.5.3. After doing so, the project would no longer build and kept telling...

Six Dimensions + Storycode = Mobile Success

Six Dimensions just announced the acquisition of Storycode, a leading Digital Publishing Suite (DPS) solution provider and creative agency.  I'm excited about this and you should be too! As a technologist, seeing the potential of bringing 6D's AEM expertise together with Storycode's creativity and expertise in DPS allows us to create scalable, connected and flexible DPS apps, powered by the content engine of AEM. DPS is a powerful tool for publishing content to multiple mobile apps across...

Embedding Oak Index Configurations into a Package

AEM 6 ships with a new repository, CRX3 which is based on Apache Oak, a subproject of the Apache Jackrabbit project.  This repository promises significant performance increases over CRX2, however it does require a bit more work to setup.  Unlike CRX2, CRX3 requires you to explicitly declare which fields will be indexed.  If a field is not indexed, you will see an error like the one below in the error.log and significant performance degredation: 16.01.2015 13:56:45.206...

Taking Advantage of Git Branch Descriptions

If you're anything like me, you may accumulate a sizable number of branches locally over time. Based on old standards and what I'd consider some good practice, my branch names always follow the same format: myLDAPName/Issue# For example, jboyle/1641. While in my case this maps directly to a JIRA issue and is short and easy to type, it isn't very descriptive and after creating a number of branches, it becomes challenging to remember what branch...

ModifiableValueMap Not Found: Considerations in Using ModifiableValueMaps in an API

So let's just say you are designing an API which allows both reading and writing of attributes for a Resource.  Of course, you want to use consistent code to persist the values, so you use the (relatively) new CRUD features in the Sling API to both get and set the property values.  To save code, you might use a ModifiableValueMap for both operations, which works great in author as an administrative user.   The Problem At some...

Accessing Request Variables in Sightly

You can implement some interesting stuff in Sightly, the newest templating language for Adobe Experience Manager, including Tower of Hanoi.  At the same time, there are a few practical applications which are not available in Sightly, including accessing request scoped variables in Sightly.  While Gabriel's suggested approaches in the Stack Overflow post are absolutely correct in this situation, there are still certain situations where request variables can be very useful.   A good example is for sharing a variable...

jekyll