0% found this document useful (0 votes)
411 views15 pages

AEM Interview Questions & Answers Guide

The AEM Interview Guide provides a comprehensive list of questions and answers related to Adobe Experience Manager (AEM), covering topics such as its technology stack, advantages over other CMS, and key components like the dispatcher and replication agents. It serves as a resource for understanding AEM's functionalities, including content management, digital asset handling, and templating with Sightly. The guide is structured to assist individuals preparing for interviews or seeking to deepen their knowledge of AEM's capabilities and best practices.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
411 views15 pages

AEM Interview Questions & Answers Guide

The AEM Interview Guide provides a comprehensive list of questions and answers related to Adobe Experience Manager (AEM), covering topics such as its technology stack, advantages over other CMS, and key components like the dispatcher and replication agents. It serves as a resource for understanding AEM's functionalities, including content management, digital asset handling, and templating with Sightly. The guide is structured to assist individuals preparing for interviews or seeking to deepen their knowledge of AEM's capabilities and best practices.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

AEM INTERVIEW GUIDE

Questions and Answers

AUGUST 15, 2015


SCOTT WESTOVER
[Link]
1|Page AEM Interview Guide

Table of Contents
Q: What is AEM 6, or CQ5? .................................................................................................................... 3
Q: Why is a Content Management System (CMS) required? ................................................................ 3
Q: What is RESTful? ................................................................................................................................ 3
Q: What are the advantages of AEM over another CMS? .................................................................... 3
Q: What is the technology stack that CQ5 is based on? ....................................................................... 4
Q: What are the benefits of using OSGI? ............................................................................................... 4
Q: What is the role of the dispatcher? .................................................................................................. 4
Q: What is the listener Property in AEM? ............................................................................................. 5
Q: How do you load digital assets in dam? ........................................................................................... 5
Q: How to build a bundle through crxde? ............................................................................................. 6
Q: What is the purpose of the [Link] file?................................................................................ 6
Q: What is a CQ5 overlay/override component? .................................................................................. 6
Q: What is extending a component? ..................................................................................................... 6
Q: What is sightly?.................................................................................................................................. 7
Q: How does sightly differ from other templating systems? ................................................................ 7
Q: What is the difference between a dialog and design dialog? .......................................................... 7
Q: Can you create a page without a template?..................................................................................... 8
Q: What are xtypes and how are they useful in AEM? ......................................................................... 8
Q: How do you add properties to the Page Properties dialog? ............................................................ 8
Q: What is the difference between the Author and Publish environment? ........................................ 9
Q: What is a replication agent? ............................................................................................................. 9
Q: What is resource mapping? ............................................................................................................... 9
Q: What is resource resolution in Sling? ............................................................................................... 9
Q: What design patterns are used in AEM? ........................................................................................ 10
Q: What is reverse replication? ........................................................................................................... 10
Q: What is the difference between Parsys and Iparsys? .................................................................... 10
Q: Can you restrict certain users from seeing digital assets? ............................................................. 11
Q: What is segmentation?.................................................................................................................... 11
Q: What is the persistence Manager? ................................................................................................. 11
Q: What is a farm file?.......................................................................................................................... 11
Q: Any components that you have used in your project that are not relevant to an out of the box
component?.......................................................................................................................................... 12
Q: How can you inherit properties from one dialog to another? ....................................................... 12
Q: What are Clientlibs? ........................................................................................................................ 12
Q: What are workflows? ...................................................................................................................... 12

1
2|Page AEM Interview Guide

Q: What is FileVault? ............................................................................................................................ 13


Q: What is the Query Builder? ............................................................................................................. 13
Q: How to move content from one server to another? ...................................................................... 13

2
3|Page AEM Interview Guide

Q: What is AEM 6, or CQ5?

A: AEM, or CQ5 is a java based content management system that is offered from Adobe. It
was previously called Day CQ5, but was acquired from Adobe in 2010. AEM is based on a
content repository and uses the JCR to access the content in the repository. AEM uses the
Apache Sling framework to map request url to the corresponding node in the content
repository. It also uses the OSGI framework to internally allow modular application
development.
This question will usually depend on what version of AEM the company is using, but
otherwise is the same.
Reference: [Link]

Q: Why is a Content Management System (CMS) required?

A: A content management system is a piece of software that is used to create and manage
documents and Web sites. Many websites are dynamic, so their content needs to be
updated frequently. In order manage these changes efficiently, it is recommend that a
content management system be used. Which is why AEM is a content management system.
Reference: [Link]
system

Q: What is RESTful?

A: Representational State Transfer (REST) is an architectural style and an approach to


communications that is often used in the development of web services. It relies on a
stateless, client server, cacheable communications protocol. RESTful applications use HTTP
requests to post data, read data, and delete data.
The six architectural constraints of REST are: uniform interface, stateless, cacheable, client
server, layered system, and code on demand.
Reference: [Link]

Q: What are the advantages of AEM over another CMS?

A: One big advantage of AEM over another CMS is how it integrates with other products
from Adobe and with the Adobe Marketing Cloud. AEM comes built in with features like

3
4|Page AEM Interview Guide

workflows to control content in the CMS, the use of search queries to find anything you are
looking for, setting up social collaboration, tagging content, and a way to manage your
digital content.
AEM also includes a way to manage mobile applications, mobile websites, e-commerce, and
marketing campaign management.
Reference: [Link]
[Link]

Q: What is the technology stack that CQ5 is based on?

A: The CQ5 technology stack is based on three technologies. These technologies are: Apache
Sling, OSGI (Apache Felix), and the Java Content Repository (JCR).
Apache Sling is a RESTful framework that is used to access a jcr over http protocol. It will
then map that request url to the node in the jcr.
OSGI is a framework that is used for modular application development using Java. Each
module, which is called a bundle, can be stopped and started independently during runtime.
The Java Content Repository uses the JSR-170 API to access the content repository by using
Java independently of the physical implementation. CQ5 uses its own implementation of the
jcr called CRX.
Reference: [Link]
resources/cq5_guide_architect/[Link]

Q: What are the benefits of using OSGI?

A: The main benefits of using OSGI are:


It reduces the complexity of the system by having everything in bundles.
It makes the components loosely coupled and easy to manage since they can be installed,
deleted, updated, started, and stopped at run time.
It increases the performance of the system since parts of the application that are not in use,
do not need to be loaded in the memory.
Reference: [Link]

Q: What is the role of the dispatcher?

4
5|Page AEM Interview Guide

A: The dispatcher is AEM’s caching and/or load balancing tool. By using the dispatcher it can
also help protect your AEM server from attack since it will be using cached pages. The goal
of the dispatcher is to cache as much content as possible, so it does not need to access the
layout engine.
Load balancing is the practice of distributing computational load of the website across
several instances of AEM.
The benefits of using the dispatcher as a load balancing tool is so that you gain increased
processing power since the dispatcher shares document requests between several instances
of AEM, and to have increased fail-safe coverage. This is accomplished by if the dispatcher
does not receive responses from an instance, it will automatically relay the request to
another instance.
Reference: [Link]

Q: What is the listener Property in AEM?

A: The listener property in AEM for a component is used to define what happens before or
after an action on the component. This is added by using the “cq:listeners” node with a
node type of “cq:EditListenersConfig”.
Reference: [Link]
0/develop/[Link]#cq:listeners
The listener property can also be added to any widget in AEM. In order to add a listener to
that widget you just need to add to add a node that is called “listeners” with a type of
“nt:unstructured”. Then you just need to add child nodes to the “listeners” node that are
events of that widget. You can find a list of events for each widget by searching CQ Widget
API documentation.
Reference: [Link]

Q: How do you load digital assets in dam?

A: You can add digital assets to your dam by using the graphical user interface or through
WebDav access. If you are using the graphical user interface, you would just browse for the
selected files you would like to add, and then cq will create the metadata for those assets in
the dam folder. You would generally use the WebDav option when you want to upload a
large number or assets at once.
Reference: [Link]

5
6|Page AEM Interview Guide

Q: How to build a bundle through crxde?

A: You can build a bundle through crxde by navigating to the source folder of your project
located under “apps”. Once you do this, right click on the “src” folder and choose to create a
bundle. This will open the wizard that will walk you through creating your bundle.
It is recommended that you no longer use crxde to create OSGI bundles for AEM. Instead
you should be using Maven.
Reference: [Link]
[Link]

Q: What is the purpose of the [Link] file?

A: The purpose of the [Link] file is that it is to be notified any time there are bundle
start and stop events for that bundle. The [Link] file is an optional listener class that
is created when you create a bundle through crxde.
Reference: [Link]
2/developing/development_tools/developing_with_crxde.html

Q: What is a CQ5 overlay/override component?

A: The overlay/override component is used when you want to use an out of the box
component in AEM and you want to add extra features to it and you want to change it
across all instances of that component. For example if you want to add features to the out
of the box “text” component, but you don’t want to create a new component, you would
want to copy the “text” component from “libs/foundation/components” to
“apps/foundation/components” and keep the same folder structure that is used.
When this is done, any changes that done to this new component will be reflected in the out
of the box “text” component, without changing the original code under “libs”. It is generally
not a good practice to modify the original code, which is why CQ offers the ability to use
overlays.
Reference: [Link]

Q: What is extending a component?

6
7|Page AEM Interview Guide

A: Extending a component is when you want to create a new component that will not
override a base component, but will have the same features as the original so that you can
change or build upon that component.
In order to extend a component, you must set the “sling:resourceSuperType” of the
component to the base component you would like to extend. By doing this, you will inherit
everything from the base component.
Reference: [Link]
[Link]

Q: What is sightly?

A: Sightly is an HTML templating language that was introduced in AEM 6.0. It is meant to
take the place of JSP files and is the preferred templating system for HTML. The name
sightly means “pleasing to the eye”, and its focus is to keep your markup beautiful and
maintainable.
Reference: [Link]

Q: How does sightly differ from other templating systems?

A: Sightly differs from other templating systems in three ways. Sightly is secure by default, it
offers separation of concerns, and sightly is HTML5 because it is a valid HTML5 file. Sightly is
secure by default because it automatically filters and escapes all variables being output to
the presentation layer to prevent cross-site-scripting vulnerabilities.
Sightly offers separation of concern because it is purposely limited to ensure that a real
programming language is used to express the corresponding logic. This is done through the
Use-API pattern.
Reference: [Link]

Q: What is the difference between a dialog and design dialog?

A: A dialog is a key element of the component because they provide an interface for authors
to configure and provide input to that component. This input will be stored at the page level
in the jcr.

7
8|Page AEM Interview Guide

A design dialog is a dialog that will only display when you are in design mode in AEM. The
input that is received here will be stored at the template level and will be accessed across
the whole site.
Reference: [Link]

Q: Can you create a page without a template?

A: Pages are usually created by selecting a template for the page when you create them in
the Website console. However, a page can be created manually in the crxde by using the
same properties that are created when you make a page in the Website console.
For example, in crxde under the content folder, create a node with the following type
“cq:Page” and save it. Then add a child node with the following type “cq:PageContent”.
Then you can add the required properties to show any components you want displayed on
the page.
It is generally not good practice to create pages manually.
Reference: [Link]

Q: What are xtypes and how are they useful in AEM?

A: In the ExtJS language an xtype is a symbolic name given to a class. In AEM these xtypes
are widgets that used in the creation of components. AEM comes with a bunch of widgets
that are available out of the box. You can also create and define your own xtype to be used
in AEM.
An example of an xytpe is when you are creating your dialog for your component, and you
want the author to be able to enter text, you would add a “cq:Widget” that has an xtype
property of “textfield”.
Reference: [Link]

Q: How do you add properties to the Page Properties dialog?

A: You can add properties to your page properties dialog by copying the dialog located
under “libs/foundation/components/page/dialog” and adding it to your page template. This
will allow you to add new tabs and add new properties that you would like the author to
chooses from for pages that use that template.

8
9|Page AEM Interview Guide

You could modify the original page dialog as well to get the same result, however it is not
recommended.
Reference: [Link]
commons/features/[Link]

Q: What is the difference between the Author and Publish environment?

A: A production environment usually has two difference instances of AEM running. One is
the author instance, and the other is the publish instance. These two instances are usually
kept in two different settings.
The author instance is where you will enter and manage content for your website. This is
where you will administer your site as well. The author environment is usually kept behind a
firewall. The publish instance is where you will make your content available for your
targeted audience. The publish environment is usually kept in a Demilitarized Zone (DMZ).
Reference: [Link]

Q: What is a replication agent?

A: A replication agent is used to publish active content from the author environment to the
publish environment, to flush content from the dispatcher cache, and return user input
from the publish environment to the author environment. The replication agents are central
to AEM.
Reference: [Link]

Q: What is resource mapping?

A: Resource mapping is used to define redirects, vanity URLs and virtual hosts for AEM. You
can use resource mapping to prefix all requests with “/content” so the internal structure of
the AEM site is hidden from your visitors. You can also use resource mapping to define a
redirect so that all requests to the gateway page of your site are redirected to another site.
Reference: [Link]

Q: What is resource resolution in Sling?

9
10 | P a g e AEM Interview Guide

A: Resource resolution in Sling is how Sling takes a URL and attempts to resolve it to a script.
This is done by extracting information from the URL. Here is an example URL:
[Link]
It can be broken down as follows:

Protocol Host Content Selector(s) Extension Suffix Param(s)


path
http:// myhost tools/spy .printable.a4. html / a/b ? x=12

Sling uses the content path that is extracted from the request to locate the resource in the
JCR. When this resource is located, the sling resource type is extracted, and then it is used to
located the script to be used for rendering that content.
Reference: [Link]

Q: What design patterns are used in AEM?

A: Since AEM is built using OSGI, many of the design patterns for OSGI are valid. Some of
these design patterns are Singleton (Service), Adapter Service, Resource Adapter Service,
and Whiteboard.
Also, since AEM is modular, you should be able to use any design pattern in your
application.
Reference: [Link]
[Link]

Q: What is reverse replication?

A: Reverse replication is the process of replicating content from publish environment to the
author environment. In order to accomplish this you need a reverse replication agent on
your author instance that is configured to get content from the publish environment
outbox.
Reference: [Link]

Q: What is the difference between Parsys and Iparsys?

10
11 | P a g e AEM Interview Guide

A: Parsys is compound component that lets authors add components of different types to a
page and contains all other paragraph components. Iparsys is a paragraph system that will
allow to inherit the parent paragraphs from the parent.
Reference: [Link]
0/wem/wcm/default_components.html

Q: Can you restrict certain users from seeing digital assets?

A: Yes, you can restrict access to certain folders in the DAM by using closed user groups. You
can do this from the digital assets menu, right click on the folder that you want to add this
property to, and click “properties”. Then you go to the CUG tab and add the required
information.
Reference: [Link]

Q: What is segmentation?

A: Segmentation is used when you want to target your content towards your sites visitors in
order to offer a more personalized site. This is done by analysing and characterizing a
visitor’s activity on the website, their profile, and their activity on other websites.
Reference: [Link]

Q: What is the persistence Manager?

A: The persistence manager is handles the storage of the node/property tree that makes up
the structure of the repository. This includes the name and the position of each node and
property in the hierarchy. The default persistence manager is the TarPersistenceManager.
Reference: [Link]
1/core/administering/persistence_managers.html

Q: What is a farm file?

A: A farm file is a file that is used in the configuration of a dispatcher. These are used when
you want to break up the configuration file that is used for the dispatcher. They are then
added under the “/farms” section in the “[Link]” file.

11
12 | P a g e AEM Interview Guide

Reference: [Link]

Q: Any components that you have used in your project that are not relevant to an out of the
box component?

A: This is mostly an experienced based question that is likely to come up in one form or
another. Be prepared to discuss these components in full detail by talking about how they
functioned, your thought process behind them, etc.

Q: How can you inherit properties from one dialog to another?

A: You can inherit properties from one dialog to another if the new component has the
“sling:resourceSuperType” and this property is set to the base component. This will
automatically inherit all the properties from the original dialog.
If you only want to inherit certain tabs from a dialog, you can use the “cq:include” xtype to
inherit just that tab.
Reference: [Link]

Q: What are Clientlibs?

A: AEM allows you to create Client-side Library Folders, which allow you to store your client
side code in the repository, organized it into categories, and define when and how each
category of code is to be served to the client.
These folders are a nice way of keeping all of your JavaScript and CSS files in one location,
and a way to call all the files with one line of code.
Reference: [Link]

Q: What are workflows?

A: Workflows are a way to automate Experience Manager activities. They are a series of
steps that are executed when they are triggered. Some examples of these steps are
activating a page, sending an email, approving a page, etc.
Workflows can be used to implement approval processes and to receive sign-off by various
participants.

12
13 | P a g e AEM Interview Guide

Reference: [Link]

Q: What is FileVault?

A: FileVault is a tool that is offered by Adobe that will map the content of the CRX instance
to your file system. The VLT tool is similar to a Subversion client since it will allow you to
checkout content and to check-in content.
Reference: [Link]

Q: What is the Query Builder?

A: The Query Builder API is used will allow you to use the builder to accepts any query
description, create and run an XPath query, and filter the result set.
This is useful because it will allow you to search through the whole repository. It can also be
used to fine where certain nodes are used.
Reference: [Link]
1/dam/customizing_and_extendingcq5dam/query_builder.html

Q: How to move content from one server to another?

A: You can move content from one server to another in two ways. One way is to using the
package manager to create a package of all the content you would like to move. Once this is
done, download the package and install it in the new server.
You can also set up a replication agent to replicate this content to another server.
Reference: [Link]
1/administering/package_manager.html

13
END

Common questions

Powered by AI

AEM possesses several advantages over other CMSs due to its integration with other Adobe products and Adobe Marketing Cloud. It features robust workflows to manage content, a search functionality for easy information retrieval, capabilities for social collaboration and tagging content, and solutions for managing digital content across mobile applications, websites, e-commerce, and marketing campaigns .

Extending a component in AEM is beneficial when the goal is to reuse the base component functionality without altering its core code, yet adapting or adding new features to it. By setting the 'sling:resourceSuperType' to the base component, developers can build upon existing features while ensuring future base component updates are seamlessly integrated. Conversely, overlaying modifies existing components, which can hinder updates and maintenance .

CQ5's technology stack includes Apache Sling, OSGI (Apache Felix), and Java Content Repository (JCR), all of which support and enhance its functionalities. Apache Sling acts as a RESTful framework that helps map HTTP requests to JCR nodes, while the OSGI framework supports modular development by allowing independent start, stop, and update of its bundles. The JCR accesses the content repository, enabling content management independent of its physical implementation .

The OSGI framework is integral to CQ5 because it reduces system complexity by organizing components into bundles that are loosely coupled and easily manageable. These bundles can be individually installed, deleted, updated, started, and stopped at runtime, enhancing modularity. This design improves application performance as unused components aren’t loaded into memory, and facilitates dynamic updates without system downtime .

The listener property in AEM defines actions executed before or after a component undergoes changes. This is specified using the 'cq:listeners' node under 'cq:EditListenersConfig.' Listeners can also be appended to widgets by defining events on a 'listeners' node. This setup enhances customization and interaction handling within AEM components .

The dispatcher in AEM acts as both a caching mechanism and a load balancing tool. It caches content to reduce server load, thereby minimizing the need for the layout engine. It distributes computational load across multiple AEM instances, enhancing system robustness and performance. The dispatcher ensures fail-safe coverage; if one instance fails, requests are redirected to other instances .

FileVault is essential in AEM as it bridges between the file system and the CRX content repository. It functions similarly to Subversion clients, allowing content checkout and check-in directly from the file system. This utility facilitates version control, content migration, and system backup, critical for efficient content management in development environments .

Sightly enhances the HTML templating process in AEM by ensuring default security through automatic filtering and escaping of variables to prevent cross-site scripting. It offers separation of concerns by using the Use-API pattern, which limits logic within templates, thus requiring separate programming interfaces. Sightly also provides a valid HTML5 environment, ensuring templates remain clean and maintainable .

A farm file enhances AEM's dispatcher configuration by segmenting the dispatcher’s settings into modular pieces. This segmentation allows for more manageable and organized configurations under the '/farms' section of the 'dispatcher.any' file. The modular approach simplifies changes, updates, and troubleshooting within the dispatcher environment, promoting efficiency and clarity .

AEM workflows automate various tasks, leading to efficient content management. They support a variety of steps like page activation, sending emails, and obtaining approvals, streamlining and standardizing processes. This setup aids in enforcing organizational rules, reducing human error, and enhancing productivity by handling repetitive or complex sequences automatically .

You might also like