Adobe AEM CQ5 Interview Questions
Explain Adobe CQ5
Adobe CQ5 is a java based content management system from adobe. It is based on a content repository to store the content of a website and use JCR(Java Content Repository) specification to access the content repository. It uses RestfulApache Sling framework to map request url to the corresponding node in content repository It uses powerful OSGi framework internally to allow modular application development. It means individual pieces of your application(called bundles in terms of OSGi) can be independently started and stopped. It uses Apache Felix as the OSGi container. Therefore different parts of cq5 can be independently started and stopped.
What is CQ5?
What is Dependency/Dependencies in client library?
It is a list of other client library categories on which this library folder depends. For example, given two cq:ClientLibraryFolder nodes F and G, if a file in F requires another file in G in order to function properly, then at least one of the categories of G should be among the dependencies of F.
What is the purpose of clientlibs?
It is used for adding site specifIt is a list of other client library categories on which this library folder depends. For example, given two cq:ClientLibraryFolder nodes F and G, if a file in F requires another file in G in order to function properly, then at least one of the categories of G should be among the dependencies of F.
Difference between CQ5.4 and CQ5.5?
Versions of CQ before 5.5 were based on a servlet container (CQSE, by default, though others could be used) running with multiple webapps: One for the CRX content repository and one for the OSGi container which itself contained Sling and AEM. The Sling webapp was bound to the root 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 end point. The CRX content repository is now just another OSGi service, alongside the various services that comprise the rest of the AEM functionality. These changes do not affect applications built on top of AEM or Sling.
The new architecture means that the quickstart jar installation of AEM can no longer support other web applications running alongside AEM. However, the war version of AEM is designed to be deployed in an application server, where additional web applications can be deployed alongside it.
Interested in mastering Adobe Experience Manager or Adobe CQ5 Training?
Enroll now for FREE demo on Adobe Experience Manager Training.
What is the Role of Dispatcher in CQ5?
Dispatcher is CQ5 caching and/or load balancing tool. Dispatcher also helps to protect your AEM server from attack. It cache responses from publish instance, to increase the responsiveness and security of your externally facing published website.
Explain Multi Site Manager?
Multi Site Manager (MSM) enables you to easily manage multiple web sites that share common content. MSM lets you define relations between the sites so that content changes in one site are automatically replicated in other sites.
For example, web sites are often provided in multiple languages for international audiences. When the number of sites in the same language is low (three to five), a manual process for synchronizing content across sites is possible. However, as soon as the number of sites grows or when multiple languages are involved, it becomes more efficient to automate the process.
What is JCR?
JCR stands for Java Content Repository, we have CRX built on JCR, which is our repository where all data will be saved under content folder.
What is difference between live copy and language copy?
Live Copy - Copy created from existing site or blue print is called Live Copy. Rollout configurations for this Live Copy can be configured from tools console.
Language Copy - Site which is created using language tool is called Language copy. Basically to create a site for different language.
What is the Role of Persistence Manager in CQ5?
The persistence manager saves the repository content to a permanent storage solution, such as the file system or a database. By default, CRX saves repository content to the Tar persistence manager. Following DB's can be used for storing content - DB2, Oracle, SQL Server, MySQL.
Explain DAM Renditions?
The DAM allows you to create renditions of an image that include different sizes and versions of the same asset. You can use those renditions in the content of your website, and that can be helpful when you need to create thumbnails or smaller views of large, high-resolution images. When you are creating multi-device websites where Internet bandwidth is a varying concern, this feature becomes even more important. After all, you want to minimize the size of any files a site visitor has to download to view your site. Making your site load faster improves your search engine optimization and the user experience.
What are the advantages of CQ5 over other CMS?
Implementation of workflows for creating, editing and publishing of content. Managing a repository of digital assets like images, documents and integrating them to the websites. Usage of search queries to find content no matter where it is stored in your organization. Setting up easily the social collaboration blogs, groups. Tagging utility to organize the digital assets such as images.
Explain life cycle of OSGI bundle?
Life cycle states of OSGI:
Installed - The bundle has been successfully installed.
Resolved - All Java classes that the bundle needs are available. This state indicates that the bundle is either ready to be started or has stopped.
Starting - The bundle is being started, the BundleActivator.start method will be called, and this method has not yet returned. When the bundle has an activation policy, the bundle will remain in the STARTING state until the bundle is activated according to its activation policy.
Active - The bundle has been successfully activated and is running; its Bundle Activator start method has been called and returned.
Stopping - The bundle is being stopped. The BundleActivator.stop method has been called but the stop method has not yet returned.
Uninstalled - The bundle has been uninstalled. It cannot move into another state.
Learn more Adobe Experience Manager Interview Questions in this blog post.
AEM Interview Questions And Answers
What is a Template?
A CQ template enables you to define a consistent style for the pages in your application. A template comprises of nodes that specify the page structure.
Difference between Dialog and Design Dialog?
Dialog and design dialog are used by the user to configure the component.
Design Dialog: of a component can be seen/edited in design mode of the page. Design dialog is present at template level so all the page of the template will share same design dialog .
Dialog: of a component is present at page level so each component instance will have its own dialog and information entered in dialog will be stored under /content folder.
What is Adaptive Document?
Adaptive Document is used to display output to the end user. For example- a bank statement is an adaptive document as all its content remain same only name and amount changes. Basically we put place holder text in Adaptive Document which are filled dynamically at run time.
Explain the role of Dispatcher in CQ5?
In CQ5 Dispatcher has two main roles :
Caching – It is used to cache as much content as possible in the form of a static website which helps to reduce the continuous functioning of layout engine frequently for generating content when website data is dynamic.
Load-balancing – To increase the performance by load-balancing. Note: If there are multiple cq instances configured with a dispatcher, the dispatcher can do a load-balancing and if there is too much load on any cq instance, it can relay the request to another less busy instance.
Explain the methods of Caching adopted by Dispatcher?
Dispatcher uses the following methods for caching : Content Updates invalidates those pages whose content has been updated and replaces it with new content. Auto-invalidation automatically invalidates the content parts which are out of date – without physically deleting any files.
How Dispatcher performs Load-balancing ?
Performance Statistics – Dispatcher keeps statistics on how fast each instance of cq is responding to a particular url. Based on those metrics, dispatcher determines which instance of cq will fetch the quickest response for any request and relays the request to that cq instance.
Sticky Connections – when a user session is established, then all incoming requests from that user should be served by the same cq instance, because other cq instances cannot recognize the user session and generate personalized pages for him. Dispatcher makes sure all requests for user session are served from the same cq instance.
Increased fail-safe coverage: If the Dispatcher does not receive responses from an instance, it will automatically relay requests to one of the other instance(s)
Increased processing power: In practice this means that the Dispatcher shares document requests between several instances of CQ. Because each instance has fewer documents to process, you have faster response times.
What are the differences 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 is a tightly coupled, dynamically loadable collection of classes, jars, and configuration files that explicitly declare their external dependencies.
What are the advantages of using OSGI ?
Advantages of using OSGI are stated below:- Dynamic module system for Java. Universal Middleware Category. 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 in the repository. Helps the bundles to be loaded, installed. Reduces the complexity of the system.
What is the technology stack used in cq5 or AEM(Adobe Experience Manager)?
Adobe CQ5 uses the following technologies :
- JCR – Java specification for accessing a content repository JSR-283 specification jcr 2.0 , cq5 uses its own implementation of jcr called CRX. Apache Jackrabbit is an open-source implementation of jcr 2.0 specification.
- Apache Sling – RESTful framework to access a jcr over http protocol. It maps the request url to the node in jcr.
- OSGi(Apache Felix) – Framework for modular application development using java. Each module called bundle can be independently started and stopped. OSGi container which provides implementation classes for OSGi framework.
Why a content management system is required in CQ?
Now a days websites are very dynamic in nature, content needs to be updated very frequently, So, it is easier to manage the content of such websites using a CMS.
What is the use of EditConfig node in creating a component?
A cq:EditConfig node is used to define the behavior of the component.
Where does the cache directory exists for CQ5?
The Dispatcher uses a Cache Directory for caching static content. The cached documents are created in the root of a web-server.
What is sightly?
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.
What are xtypes and how are they useful in AEM?
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”.
What are the design patterns used in AEM?
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.
How to connect to external Database in CQ?
To connect to external DB, we need to configure a connection pool by creating a node of type sling:OsgiConfig.
What are the differences between parsys and iparsys?
parsys – It is a placeholder called “Paragraph System”, where we can drag and drop or add other components or scripts at page level.
iparsys – It is inherited paragraph system, it is similar to parsys except that it allows to inherits parent page “paragraph system”.
Most of the times, Adobe Interview Process includes practicals as well. Few More Interview Questions on Adobe Interview Questions