1.What is AEM?
A:Adobe Experience Manager (AEM), 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.<left;”>
2. 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 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.
3.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.
4.What is the role of the dispatcher?
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.
5.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.
6.How do you 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.
7.What is the purpose of the Activator.java file?
A: The purpose of the Activator.java file is that it is to be notified any time there are bundle start and stop events for that bundle. The Activator.java file is an optional listener class that is created when you create a bundle through crxde.
8.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.
9.What is the difference between a dialog and a 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.
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.
10.What is extending a component?
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
11.What is the role of Dispatcher in CQ5?
Dispatcher is a CQ5 tool for caching and load-balancing. It has 2 responsibilities.
1) Caching – To cache as much content as possible, so that it doesnt need to access layout engine frequently for generating content dynamically.
2) Load-balancing – To increase the performance by load-balancing
12.What is Replication in CQ5?
1) Publish (activate) content from author to publish environment.
2) Explicitly flush content from the dispatcher cache.
3) Return user input from the publish environment to the author environment.
13.How bundles are loaded and installed in CQ5?
This is managed by the Sling Management Console of CQ5.
14.How clustering is done in CQ5?
CQ5 CRX is pre-loaded to run within a cluster,even when running a single instance. Hence the configuration of multi-node clusters with little effort happens in CQ5.
15.What is the contribution of Servlet Engine in CQ5?
Servlet Engine pretends as a server within which each CQ (and CRX if used) instance runs. Eventhough you can run CQ WCM without an application server, always a Servlet Engine is needed.
16.Explain the role of Dispatcher in CQ5?
In CQ5 Dispatcher helps to cache and load-balance. The main responsibilities are,
i) Caching – Cache as much content as possible[ It helps to reduce the continuous functioning of layout engine frequently for generating content when in dynamic.
ii) Load-balancing – To increase the performance by load-balancing.
17.State various strategies used by Dispatcher?
i) Cache as much content as possible as static pages.
ii) Accessing layout engine as little as possible.
18.Where does the cache directory exists for CQ5?
The cached documents are created in the root of a web-server which is preconfigured.
19.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.
20.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
21.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.
22.What is a Component?
Components are re-usable modules that implement specific application logic to render the content of your web site. You can think of a component as a collection of scripts (for example, JSPs, Java servlets, and so on).
23.Which script you should include to display sidekick?
init.jsp should be included in our jsp or script file to display sidekick.
24.What is the use of EditConfig node in creating a component?
A cq: EditConfig node is used to define the behavior of the component
25.What are the basic SCR Annotations used for creating an OSGI component?
Basic SCR Annotation used for developing a component or service in osgi are:-
Component – defines the class as a component.
Service – defines the service interface that is provided by the component.
Reference – injects a service into the component.
Property – defines a property that can be used in the class.
26. Difference between Dialog and Design Dialog?
Both 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.