Thursday, 28 April 2016

Top Features in Adobe Experience Manager 6.2: Sites

  1. Find Anything Anywhere
    Adobe has introduced an updated Touch UI. This is actually a great enhancement, but once again Adobe is changing the user interface. It’s hard on authors to constantly need to learn a new way of doing things and navigating around, and it means additional training for people when they upgrade from one version to another. But let’s not get bogged down with negativity. The new update to AEM is called OmniSearch and this is a really decent way of getting around. No longer do I have to do multiple clicks to find my tags. I just type “tags” and then the page loads. It also comes with search suggestions that show you all the possible destinations within AEM and the ability to do filtered searches. Also, they removed the need to go to a “selection mode” to select multiple items (pages, assets, etc.) when you need to activate them or update their properties. That’s great.
  2. Templates for Everyone
    This is the new Template Editor. Last year when they teased this I mentioned how reluctant I was about it. Put the template in the hands of the authors and not the developers, are you insane? I still feel that way, but not as strongly now. An author can still royally screw things up, if you give them the permissions to do so. And that is the key. You can tie down this functionality by only giving it to people who actually know what they are doing. I was able to chat a bit with Gabriel Walt during Summit and that was his big piece of advice. So, we can still be happy, authors can still feel empowered, and developers won’t have to do as much. I had a chance to play around with it a bit in one of the Summit lab sessions and it certainly shows some promise.

Learn Sightly with Read–Eval–Print Loop in AEM 6.x

A great live code editing environment for Sightly templates with optional server-side JavaScript logic, executed on an Adobe Experience Manager instance. This little tool is great for learning Sightly and for experimenting with it, because the resulting output is displayed as you type.
To get started you need minimum Adobe Experience Manager 6+, there are you two ways you can setup your environment and start experimenting:-
1. Install as a Package
  • Download the built package:
  • On your running AEM instance, go to Package Manager, click on Upload Package, browse to the previously downloaded package, and hit OK.
  • Install the package Don’t mind the missing dependencies, simply click the Install button and confirm.
2. Maven Method
  • Checked-out repository with Git clone.
  • Build and install it with following command line instruction:
    mvn clean install content-package:install
Once any of the above steps are performed for installation, go to the following URL on AEM instance localhost:4502/content/repl.html
Sightly Read Eval Print Loop (REPL)
Sightly Read Eval Print Loop (REPL) will give you three options:-
  1. Source :- Shows the generated HTML Structure of webpage
  2. View :- Output of webpage can be seen here, this is the same which you will see in your browser
  3. Java :- Complied sightly Java class
It’s a great environment for people who are willing to get hands on Sightly and want to gain some experience in it.

Ask the AEM Community Experts

Target audienceAEM authors, admins, and developers
Applicable CQ versionsAEM 5.6 and later

The following table provides a complete listing of all of the sessions of Ask the AEM Community Experts.
Name Description Link
ATACE Session Best Practices for Experience Manager and AEM Assets (Sep 2016) Abhishek Dwevedi,Tech Training Instructor and Developer, Adobe Worldwide Field Enablement provides information about using AEM Assets. By joining this session, you will gain a deeper understanding of best practices for using assets in Experience Manager.  Click Here
ATACE Session Working with Experience Manager and eCommerce (Aug 2016) Lokesh BS and Scott Macdonald for a discussion about how to use  AEM eCommerce. This session will cover the eCommerce Framework, including how to use the eCommerce APIs. By joining this session, you will gain a deeper understanding of how to use the AEM eCommerce framework and the given APIs.   Click Here
Using AEM Forms
Rajesh R. Kandasamy, a community contributor, (and other communuity members) provide an in-depth look at how to work with AEM Forms to build data capture applications Click Here
(April 2016)
A Deep Dive into Sightly 
Praveen Dubey, a top community contributor, for an in-depth look at how to use Sightly to build engaging Experience Manager Components. Click Here
(Mar 2016)
Developing AEM Sling Components using Brackets
Lokesh (Top AEM Community member of the year for 2015) for a walk though on developing Adobe Experience Manager Apache Sling components using Brackets. By joining this session, you will learn developer techniques using Brackets to program experience manager components using Sling APIs. Click Here
(Feb 2016)
 A Deep Dive into AEM Apps
Join the AEM Applications Eng team for a discussion about AEM Apps Click Here
(Nov 2015)
Integrate AEM and other Digital Marketing products
discussion about how to integrate Adobe Experience Manager and other Digital Marketing products.  Included in this discussion is an emphasis on AEM and Analytics Click Here
(Oct 2015)
AEM & Dispatcher
AEM expert Joerg Hoh @joerghoh provides insight into using Dispatcher with Adobe Experience Manager. By viewing this session you will gain a better knowledge about Dispatcher as well as best practices for configuring, using and securing communication between Dispatcher and AEM. Click Here
(Sept 2015)
Personalization & segmentation with AEM & Adobe Campaign
Shows you how to work with AEM and Campaign to create personalization and segmentation experiences. The password to access the recording is AugATCE Click Here
(Aug 2015)
Advanced AEM component development
Provides insights on creating components that use CQ.Ext APIs, build custom xtypes, invoke sling servlets, and build  advanced dialogs for components. Click Here
(July 2015)
AEM & Sling
Learn about Sling and its use within AEM.  Click Here
(May 2015)
Creating AEM Touch UI components
Learn how to create touch UI components, create dialogs and use Touch UI based APIs meant for component development.
Click Here
(April 2015)
(To watch this session, click link and enter password AtAEMCE.)
Understanding AEM Workflows
Provodes an in-depth on AEM Workflows. Included in this session is the different type of workflows you can create, building workflow models, how to create a custom workflow step, how to use Workflow launcher, and available workflow operations. By viewing this session, you will gain a deeper understanding of how to work with AEM workflows to address your business requirements. Click Here
(Mar 2015)
Building login-based sites in AEM
Walks through a presentation and demo on developing secure AEM web sites that require user authentication. This session will provide you with a deeper understanding of how to build AEM secure web site by using Sling technology. Click Here
(Feb 2015)
Introduction to Sightly
Provides an Introduction to Sightly  Click Here
(Jan 2015)
Getting Started with AEM Apps
Talks about how to get up and running with AEM apps and developing mobile applications for use with Adobe Experience Manager.  Click Here
(Nov 2014)
Testing AEM Applications with ease
Demonstrates the new AEM Testing tool for testing AEM applications. You will learn how to use the new tool, you and new ways to improve your AEM applications and get rid of potential bugs. Click Here
(Oct 2014)
Developing custom services to customize AEM
This session covers developing custom services to customize AEM. It provides details on how to develop Java-based services to customize AEM to meet your business requirements. Click Here
(July 2014)


Saturday, 23 April 2016

Versioning ClientLibs in AEM

The Versioned ClientLibs ACS AEM Commons feature uses a Sling rewriter to add an MD5 hash to the paths of your clientlibs, forcing them to recache after every modification. Typically Adobe Experience Manager will use the lastModified property to determine when to recache, however versioned-clientlibs is a more reliable approach.
To implement the versioned-clientlibs feature, simply copy the node from /libs/cq/config/rewriter/default to some path inside your application. In this example, we’ll choose /apps/acslibs/config/rewriter. For the most part this path is arbitrary, however the config node must be inside a four-level-deep path that ends in config/rewriter to work.Read More

Working with AEM i18n translator

The Adobe AEM Translator is a powerful tool for managing and updating translations.  Using this tool you can create, update and remove i18n values across multiple languages in multiple translation dictionaries or groups of i18n keys.


To use the AEM Translator access the URL http://{SERVER}:{PORT}/libs/cq/i18n/translator.html, replacing the server and port with the correct values for your environment.  This will pull up the AEM Translator as shown below.
CQ5 Translator
The AEM Translator
The AEM translator allows you to manage multiple dictionaries, or sets of localized keys.  This allows you to separate out site or application level keys from system keys and keep the keys organized by function or use.  To change your dictionary, select the dictionary from the Dictionaries list on the top of the AEM Translator.  It is recommended to avoid updating the dictionaries found under /libs as doing so will complicate your upgrade process.


To update the value of a key, double click on the key, enter the new value and select save.  The AEM Translator will not update keys for language pages which do not exist in the current dictionary.  Unfortunately it will not display an error either.  If there are no translation values for the language you wish to update, ensure there is a translation page by checking for a translation page under the dictionary path in CRXDE Lite.  If no translation page exists, please consult the Creating a Translation Page section for more information on creating one.


The CQ5 Translator supports importing and exporting keys using the XLIFF format, a XML format specifically designed for containing localization data.

Exporting Keys

To export keys, select Export then the language to export from the top menu.  If you receive a 404 error on the resulting page, this means that there is not a language page for that language in the dictionary.  See Creating a Language Page, for information on how to create a language page.
Unfortunately, the Exported language data will only contain keys which already have a value.  Prior to exporting, you must enter a placeholder value in every un-translated key to get it to appear in the export file.

Importing Keys

Importing keys is simple, select the Import drop down and select the file to import.  Unfortunately, the import process will also not create language pages.  To import a XLIFF file for a language which previously did not have a language page, you must first create the language page.


Dictionaries are sets of translations grouped by application or functionality.  Adobe CQ includes a number of out of the box dictionaries for internal functionality and the Geometrixx application.  It is generally recommended to not update these dictionaries, as this may cause issues is subsequent upgrades.
You can create a new dictionary under your application under any directory.  I would recommend under /etc/i18n as localization keys are somewhat different than code and content and therefore best belong under neither tree.  To create a new dictionary, simply create a sling:Ordered folder to contain the language pages and create a language page.  At this point, the dictionary should appear in the list when you refresh the CQ5 Translator.


Do the following to add a language to the available languages in the CQ5 Translator. 
  • Using CRXDE Lite, create a node at /ect/languages if one does not already exist. 
  • Add a repeating String property called languages to this node, with the two or five letter language names you wish to see inside the CQ5 Translator.  The value of this field determines all of the available translations, so make sure you include the predefined languages as well as the ones you mean to add. 
  • Create a language page for each dictionary you intend to translate into the new language.
Once you have completed these steps, you should be able to add translations in the new language.


The CQ5 Translator will not automatically create language pages when you add a language to a dictionary or create a new dictionary.  To create a new language page, do the following:
  • Using CRXDE, create a new sling:Folder node in the dictionary root with the two or five letter, ISO 639-1 compliant, language name, ex: es or zh_cn
  • Add the mixin type mix:language
  • Set the jcr:language property to the two or five letter, ISO 639-1 compliant, language name, ex: es or zh_cn
Once you have completed these steps you should be able to add translations for the relevant language into the dictionary.

Issue: Page displays i18n keys instead of values

Issue Description: 

AEM i18n keys values are displayed instead of values.


This issue is observed when "Apache Sling Internalization Support" bundle is in resolved state. By restarting this bundle, i18n issue will be solved.