AEM Interview Questions 1

AEM (Adobe Experience Manager) may be a detailedly content management solution for building websites and every one of their integral applications, including paperless forms, mobile apps and online communities. It’s a sort of a system that creates it easy for working professionals to manage all their marketing content and assets, then deliver them to the proper person at the legal time.

It allows non-technical marketers to create engaging pages easily. Developing and editing of any site is often efficient through intuitive tools, so if you’re the one who is curious about building your career within the same line as AEM. So, below we’ve mentioned some interview questions & answers for AEM Jobs that one can undergo and prepare well.

AEM (Adobe Experience Manager) may be a detailed content management solution for building websites and every one of their integral applications, including paperless forms, mobile apps and online communities. It’s a sort of a system that creates it easy for working professionals to manage all their marketing content and assets, then deliver them to the proper person at the legal time.

It allows non-technical marketers to create engaging pages easily. Developing and editing of any site is often efficient through intuitive tools, so if you’re the one who is curious about building your career within the same line as AEM. So, below we’ve mentioned some interview questions & answers for AEM Jobs that one can undergo and prepare well.

  1. What is the role of the AEM Dispatcher?

The emissary is AEM’s hoarding and/or load balancing tool. By using the dispatcher it also can help protect your AEM server from attack since it’ll be using cached pages. The goal of the hoarding is to cache the maximum amount of content as possible, so it doesn’t get to access the layout engine. Load balancing is the practice of distributing computational load of the web site across several instances of AEM. The benefits of using the hoarding as a load balancing tool are that you simply 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.

  1. What is sightly?

Sightly is an HTML original language that was introduced in AEM 6.0. The name slightly means “pleasing to the eye”, and its focus is to keep your markup beautiful and maintainable.

3. Aem vs Sitecore



Sitecore CMS











Easy to access

Easy to access

CMS Support

Multiple User Access Supported

Multiple User Access Supported





Moderate customizations

Highly customizable

Single platform support



User Experience




  1. Difference between Design Dialog and Edit Dialog

Both dialog and style dialog defines the UI interface for allowing the user to configure the component.

Design Dialog of a component is often seen/edited within the design mode of the page. Design dialog is at template level so all the pages of the template will share the same design dialog and it is stored under /etc/designs folder.

Whereas Dialog of a component is at page level so each component instance will have its own dialog and knowledge entered within the dialog are going to be stored under /content folder.

  1. What is the purpose of clientlibs?

It is worn for add-on site-specific js and CSS files to the page and also third party js and CSS files.

  1. What is Dependency/Dependencies in the client library?

It is an inventory of other client library categories on which this library folder depends. For example, given two cq: ClientLibraryFolder nodes F and G, if an enter F requires another enter G so as to function properly, then a minimum of one of the groups of G should be among the dependencies of F.

  1. What is embed and difference between dependency and embed in the client library?

Embed: Used to embed code from other libraries. If node F implant nodes G and H, the resulting HTML is going to be a degree of content from nodes G and H.

Dependency: Please refer to the above answer.

  1. Difference between package and bundle?

Package: A Package is a zip file that contains the content in the form of a file-system serialization (called “vault” serialization) that displays the content from the repository as an easy-to-use-and-edit representation of files and folders. Packages can include content and project-related data.

Bundle: Bundle may be a dense coupled, actively loadable collection of classes, jars, and configuration files that explicitly declare their external dependencies (if any).

  1. Can you explain the life cycle of the OSGI bundle?

Following are the life cycle states of OSGI:

Installed: The bundle has been successfully installed.

Resolved: All Java classes that the clump needs are available. This state indicates that the bundle is either able to be started or has stopped.

Starting: The bundle is being started, the BundleActivator.start method are going to be called, and this method has not yet returned. When the bundle has an activation policy, the bundle will remain within the STARTING state until the bundle is activated consistently with its activation policy.

Active: The bundle has been successfully operated and is running; its Bundle operator start method has been called and returned.

Stopping: The bundle is being stopped. The BundleActivator.stop method has been known but the stop method has not yet come back.

Uninstalled: The bundle has been uninstalled. It cannot move into another state.

  1. What is the difference between parsys and iparsys?

parsys: it’s called the “Paragraph System” component during which you’ll add other components at the page level.

iparsys: It is an inherited paragraph system, which inherits the parent page “paragraph system”.

  1. What is the process step in the workflow?

It is a workflow part that can be set up that is used for calling a java class in the workflow.

Related Article: Adobe (AEM) CQ5 Supervisor Interview Questions

  1. 1 Difference between CQ5.4 and CQ5.5?

Versions of CQ before 5.5 were hold up a servlet receptacle (CQSE, by default, though others might be used) running with multiple web apps: One for the CRX content repository and one for the OSGi receptacle which itself contained Sling and AEM. The Sling web app was secure and handled most of the request processing.

With CQ 5.5 and AEM, the OSGi container is positioned at the root and the OSGi HTTP service, backed by Sling acting as the sole request handling endpoint. The CRX content repository is now just another OSGi service, alongside the varied services that comprise the remainder of the AEM functionality. These changes don’t affect applications built on top of AEM or Sling.

The new architecture means the quickstart jar installation of AEM can not support other web applications running alongside AEM. However, the war version of AEM is meant to be deployed in an application server, where additional web applications are often deployed alongside it.

Added three new connections to key Adobe products – Creative Suite, Scene7, Search&Promote

The authors can directly work on mobile apps.

Partnered with hybrid software to add some nice eCommerce capabilities.

Added Undo(Ctrl+z) and Redo(Ctrl+y) functionalities.

  1. Role of Dispatcher in CQ5?

The dispatcher is a CQ5 caching and/or load balancing tool. The dispatcher also helps to guard your AEM server from attack. It caches responses from publish instance, to extend the responsiveness and security of your externally facing published website

  1. What is Replication? and What are the steps involved in Replication?

Replication is the process of publishing the page from Author Instance to Process Instance.

Steps involved in replication:

  • The author requests that certain content be published (activated); this will be initiated by a manual request, or by automatic triggers that are preconfigured.
  • The request is passed to the acceptable default replication agent; an environment can have several default agents which can always be selected for such actions.
  • The replication agent “packages” the content and places it within the replication queue.
  • The content is lifted from the queue and transported to the publish environment using the configured protocol; usually, this is often HTTP.
  • A servlet within the publish environment receives the request and publishes the received content; the default servlet is https://localhost:4503/bin/receive.
  1. What is the difference between par base and parsys?

par base: The par base allows components to inherit attributes from other components, similar to subclasses in object-oriented languages such as Java, C++, and so on. For example, once you open the /libs/foundation/components/text node in the CRX Explorer, you see that it’s a property named sling:resourceSuperType, which references the par base component. The par base here defines tree scripts to render images, titles, then on in order that all components subclassed from this par base can use this script.

phrases (Paragraph System): The phrases system (parsys) is a amalgam component that allows authors to add components of different types to a page and contains all other paragraph components. Each paragraph type is represented as a component. The paragraph system itself is additionally a component, which contains the opposite paragraph components.

  1. Explain the Multi-Site Manager?

Multi-Site Manager (MSM) enables you to simply manage multiple internet sites that share common content. MSM allows you to define relations between the sites in order that content changes in one site are automatically replicated in other sites.

For example, internet sites are often provided in multiple languages for international audiences. When the amount of web sites within the same language is low (three to five), a manual process for synchronizing content across sites is feasible . However, as soon because the number of web sites grows or when multiple languages are involved, it becomes more efficient to automate the method .

  1. How to customize page property dialog?

Step 1 – Copy /libs/foundation/components/page/dialog node to template component’s node

Step 2 – Modify dialog node

18. Classes involved in URL Resolution?

URL Resolution
  1. What is the difference between the live copy and language copy?

Live Copy – Copy created from an existing site or blueprint is named Live Copy. Rollout configurations for this Live Copy are often configured from the tools console.

Language Copy – Site which is created using a language tool is called a Language copy. Basically to create a site for different languages.

  1. Role of Persistence Manager in CQ5?

The persistence manager saves the repository content to a permanent storage solution, like the filing system or a database. By default, CRX saves depot content to the Tar tenacity manager. Following DB’s can be used for storing content – DB2, Oracle, SQL Server, MySQL.

  1. What is the difference between c: import, sling: include and CQ: include? What is the advantage of each tag?


c:import url=”redirect.jsp”

I assume this is often the import tag of the quality Tag Library. This tag is documented



and does not know about Sling directly.


sling:include path=”trail” resourceType=”foundation/components/breadcrumb”

This is the cover tag of the Sling JSP Tag library. This tag knows about Sling and also keep up RequestDispatcherOptions.


cq:include path=”trail” resourceType=”foundation/components/breadcrumb” or cq:include script=”redirect.jsp”

This tag is a Communique specific extension of the Sling JSP Tag library include tag. IIRC it supports callings scripts additionally to only including renderings of resources.

In a Communiqué application, I might suggest to generally use the Communique or Sling include tag since this provides you with more Sling support.

You may use the JSTL import tag if you don’t have specific requirements for Sling extended features, decide to use the JSP (fragment) outside of Communique or if you would like to further process the generated (imported) content with a reader or a variable.

  1. How to connect to an external Database?

To connect to an external DB, a connection pool must be configured by creating a node of type sling: OsgiConfig. Below screenshot if for connecting to SQL database, but if you want to connect to other DB then properties values need to be changed accordingly:

External Database

Use below code to get a connection:

DataSourcePool dspService = sling.getService(DataSourcePool.class);

DataSource ds = (DataSource) dspService.getDataSource(“hsqldbds”);

  1. Explain DAM Renditions?

The DAM allows you to make renditions of a picture that include different sizes and versions of an equivalent asset. You can use those renditions within the content of your website, which are often helpful once you got to create thumbnails or smaller views of huge , high-resolution images. When you are creating multi-device websites where Internet bandwidth may be a varying concern, this feature becomes even more important. After all, you would like to attenuate the dimensions of any files a site visitor has got to download to look at your site. Making your site load faster improves your program optimization and therefore the user experience.

24.What is a content repository? What is JCR?

A Content repository is essentially an area where digital content is stored. Generally, the structure of the content repository is hierarchical and represented as a tree structure where each node of the tree is employed to store content.

Java Content Repository may be a statement given by the Java community to access the content repository during a uniform way (platform-independent and vendor-independent way). The specification was initially released as JSR-170(JCR 1.0) then later Revised Version 2 as (JCR-283).The javax.JCR API provides the varied classes and interfaces to access a content repository.

25.What is REST? What is a RESTful Framework?

REST stands for Representational State Transfer. REST-style architectures consist of clients and servers. Clients begin requests to servers; servers process requests and return appropriate responses. petition and replies are built around the transfer of representations of resources. A resource is often essentially any coherent and meaningful concept which will be addressed. A representation of a resource is usually a document that captures the present or intended state of a resource.

Apache Sling may be a RESTful framework to access a java content repository over http protocol.

26.What is Reverse Replication?

Reverse replication is employed to urge user content generated on a publish instance back to the author instance. To do this you would like a reverse replication agent within the author environment. This act is the active component to gather information from the outbox within the publish environment.

  1. Difference between Dialog and Design Dialog?

Dialog may be a key element of your component as they supply an interface for authors to configure and supply input thereto component. The user input will be stored at the page level.

Design dialog will part the content at the template level. Also, we will dynamically change the content in design mode.

  1. Explain the OSGi[Open Systems Gateway initiative] in CQ5?
  • Dynamic module system for Java.
  • Universal Middleware Category.
  • It helps applications to be constructed from small, reusable and collaborative components.
  • OSGi bundles can contain compiled Java code, scripts, or any contents to be loaded within the repository.
  • Helps the bundles to be loaded, installed.
  1. How bundles are loaded and installed in CQ5?

This is headed by the Sling Management Console of CQ5.

  1. How clustering is done in CQ5?

CQ5 CRX is pre-loaded to run within a cluster, even when running one instance. Hence the arrangement of multi-node clusters with little effort happens in CQ5.

  1. What is the contribution of the Servlet Engine in CQ5?

Servlet Engine professes as a server within which each CQ (and CRX if used) instance runs. Even though you can run CQ WCM without an application server, a Servlet Engine is always needed. 

32.State various strategies used by Dispatcher?

  • Cache the maximum amount of content as possible as static pages.
  • Accessing the layout engine as little as possible.
  1. Explain the methods used by Caching adopted by Dispatcher?
  • Dispatcher invalidates those pages whose content has been updated and replaces it with new content.
  • Auto-Navigation automatically removes the contents which are not relevant.
  1. How can you inherit the properties of one dialog to another dialog?

For inheriting properties we’ve to make two components with unique names within the base component dialog. For eg. If your plan is to possess two rich text areas within the dialog of components that inherit from the bottom , then you want to include two rich text areas with distinctive names in the base component dialog. In any case, every input field of a dialog must have a singular name, else they’re going to point to an equivalent property path relative to the JCR: content node of the component when worn on a page.

  1. Can we restrict certain users to not display some digital assets?

You can always limit who can access certain folders in CQ Digital Assets by making the folder a part of a CUG(closed user group).

Steps to form a folder a part of a CUG:

  • In CQ DAM, right-click the folder you would like to feature closed user group properties for and choose Properties.
  • Click the CUG tab.
  • Select the Enabled checkbox to form the folder and its assets available only to a closed user group.
  • Browse to the login page, if there is one, to add that information. Add admitted groups by clicking Add item. If necessary, add the realm. Click OK to save your changes.
  1. Differentiation between OSGi bundle and Normal Jar file?
  • OSGi bundles are jar files with metadata inside. Much of this metadata is in the jar’s manifest, found at META-INF/MANIFEST.MF. This metadata, when perused by an OSGi period container, is what gives the bundle its power.
  • With OSGi, simply because a category is public doesn’t mean you’ll get thereto . All bundles include an export list of package names, and if a package isn’t within the export list, it doesn’t exist to the surface world. This allows developers to create an in depth internal class hierarchy and minimize the area of the bundle’s API without abusing the notion of package-private visibility. A common pattern, as an example , is to place interfaces in one package and implementations in another and only export the interface package.
  • All OSGi bundles are given a version number, so it’s possible for an application to simultaneously access different versions of an equivalent bundle (eg: JUnit 3.8.1 and JUnit 4.0.). Since each bundle has its own classloader, both bundle classes can coexist in the same JVM.
  • OSGi bundles declare which other bundles they depend on . This allows them to make sure that any dependencies are met before the bundle is resolved. Only resolved bundles can be activated. Because bundles have versions, versioning can be included in the dependency specification, so one bundle can depend on JUnit version 3.8.1 and another bundle depends on JUnit version 4.0.
  • In the OSGi bundle, there’ll be an class in OSGi which is an optional listener class to be notified of bundle start and stop events.

37.What is a Template?

A CQ template empowers you to work out a uniform style for the pages in your application. A template comprises nodes that specify the page structure.

38.How does a dispatcher perform Load balancing activity?

The dispatcher performs load balancing activity by executing these steps:

  • Performance Statics
  • Sticky Connections
  • Increased fail-safe coverage
  • Processing Power

By classifying these parameters, the load balancers will work according to in CQ5

39.List out all available interfaces in Adobe Experience Manager?

The list of all available interfaces in AEM is:

  • CRX Delite
  • Apache Felix
  • Site Admin
  • Etc/Tool
  • CRX Explorer 
  1. What are the benefits of using OSGI?

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 straightforward to manage since they will be installed, deleted, updated, started, and stopped at run time.
  • It increases the performance of the system since parts of the appliance that aren’t in use, don’t have to be loaded within the memory.
  1. What is the listener property in AEM?

The listener property in AEM for a component is employed to define what happens before or after an action on the component. This is added by using the “cq: listeners” node with a node sort of “cq: EditListenersConfig”. The listener property also can be added to any widget in AEM. In order to add a listener to that widget you just need to add a node that is called “listeners” with a type of “nt: unstructured”. Then you only got to add child nodes to the “listeners” node that are events of that widget. You can find an inventory of events for every widget by searching CQ Widget API documentation.

  1. How do you load digital assets in the dam?

You can add digital assets to your dam by using the graphical interface or through WebDav access. If you’re using the graphical interface , you’d just browse for the chosen files you’d wish to add, 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 of assets at once.

  1. How do you build a bundle through crxde?

You can build a bundle via crxde by navigating to the origin folder of your project located under “apps”. Once you are doing this, right-click on the “src” folder and prefer to create a bundle. This will open the wizard which will walk you thru creating your bundle. It is recommended that you simply not use crxde to make OSGI bundles for AEM. Instead, you should be using Maven.

  1. What is the purpose of the file?

The purpose of the file is that it’s to be notified any time there are bundle start and stop events for that bundle. The file is an optional listener class that’s created once you create a bundle through crxde.

What is a CQ5 overlay/override component?

The overlay/override component is employed once you want to use an out of the box component in AEM and you would like to feature extra features thereto and you would like to change it across all instances of that component. For example if you would like to feature features to the out of the box “text” component, but you don’t want to make a replacement component, you’d want to copy the “text” component from “libs/foundation/components” to “apps/foundation/components” and keep an equivalent folder structure that’s used. When this is done, any changes that are 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 an honest practice to switch the first code, which is why CQ offers the power to use overlays. 

  1. How does slightly differ from other templating systems?

Sightly differs from other templating systems in 3 ways. Sightly is secure by invariable, it offers segregation of concerns, and slightly is HTML5 because it is a valid HTML5 file. Sightly is secure by invariable because it instinctively filters and flees all variables being output to the presentation layer to stop cross-site-scripting vulnerabilities. Sightly offers segregation of concern because it’s deliberately limited to make sure that a true programing language is employed to precise the corresponding logic. This is done through the Use-API pattern.

Above, are the mentioned interview questions & answers for AEM Jobs, candidates who have an interest in applying for an equivalent profile should undergo these AEM interview questions.

WhatsApp chat

Schedule a demo

We will schedule the demo with an expert trainer as per your time convenience.

Have a query?

we'd love to assist and help you on anything related to IT courses.