Adobe CQ5 System Administrator Interview Questions and Answers

Q1 : What is a template in Adobe CQ5?
A : A template in CQ5 is nothing but a consistent page style can be defined for all the pages within the application. Generally, a template consists of nodes which actually specify the entire page structure within the application.

Q2 : Difference between CQ5.4 and CQ5.5?
A : Versions of CQ before 5.5 were based on a servlet container (CQSE, by default, though others could be used) running with multiple web apps: One for the CRX content repository and one for the OSGi container which itself contained Sling and AEM. The Sling web app 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 endpoint. 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.
Added three new connectors to key Adobe products – Creative Suite, Scene7, Search&Promote
Authors can directly work on mobile apps.
Partnered with hybris software to add some nice eCommerce capabilities.
Added Undo(Ctrl+z) and Redo(Ctrl+y) functionalities.

Q3 : What is the role of Persistence Manager in CQ5?
A : 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.

Q4 : What is CQ5? Why Content Management System is Reqiured?
A : CQ5 is a java based content management system from adobe, previously Day CQ5

  1. It is based on a content repository(i.e it uses a content repository to store the content of a website) and use JCR(Java content repository) specification to access the content repository.
  2. It uses RESTfulApache Sling framework to map request URL to the corresponding node in content repository
  3. 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.

CQ5 uses  Apache Felix as the OSGi container. Therefore different parts of cq5 can be independently started and stopped.
Why a content management system is required? Some websites are very dynamic in nature, content needs to be updated frequently, so it is easier to manage the content of such websites using a CMS.

Q5 : What are the two roles in CQ5 Dispatcher?
A : Within CQ5 dispatcher there are two main roles that should be highlighted, as follows:

  • Caching: Within this role, the content on the website is cached as much as possible so that it can be a form of a static website. It will reduce the repeated functioning of the layout engine.
  • Load balancing: This is used to increase the performance of the website.

Q6 : What is the technology stack of cq5?
A : Cq5 uses the following technologies :

  1. 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.
  2. Apache Sling – RESTful framework to access a JCR over HTTP protocol. It maps the request URL to the node in jcr.
  3. 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.

Q7 : What is the role of Dispatcher in CQ5?
A : 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 doesn’t need to access layout engine frequently for generating content dynamically.
  2. Load-balancing – To increase the performance by load-balancing.

Q8 : Explain OSGi[Open Systems Gateway initiative] in CQ5 ?
A : 

  1. Dynamic module system for Java.
  2. Universal Middleware Category.
  3. Helps applications to be constructed from small, reusable and collaborative components.
  4. OSGi bundles can contain compiled Java code, scripts, or any contents to be loaded in the repository.
  5. Helps the bundles to be loaded, installed.

Q9 : What is the contribution of Servlet Engine in CQ5?
A : Servlet Engine pretends as a server within which each CQ (and CRX if used) instance runs. Even though you can run CQ WCM without an application server, always a Servlet Engine is needed.

Q10 : What is Replication in CQ5?
A :

  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.

REPLICATION PROCESS:

  1. First, the author requests that certain content is published (activated).
  2. The request is passed to the appropriate default replication agent.
  3. Replication agent packages the content and places it in the replication queue.

Q11 : Where does the cache directory actually exists in CQ5?
A : The cache directory exists or created in the root of a web server.

Q12 : How clustering is done in CQ5?
A : 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.

Q13 :  State various strategies used by Dispatcher?
A :

  1. Cache as much content as possible as static pages.
  2. Accessing layout engine as little as possible.

Q14 : How does a dispatcher perform Load balancing activity?
A : The dispatcher performs load balancing activity by executing these steps;

  1. Performance statistics
  2. Sticky connections
  3. Increased fail-safe coverage
  4. Processing power

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

Q15 : Explain the methods of Caching adopted by Dispatcher?
A :

  1. Dispatcher invalidates those pages whose content has been updated and replaces it with new content.
  2. Auto-Inavidation automatically removes the contents which are not relevant.

Q16 : Explain the difference between OSGi bundle and Normal Jar file?
A : 

  1. 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 read by an OSGi runtime container, is what gives the bundle its power.
  2. With OSGi, just because a class is public doesn’t mean you can get to it. All bundles include an export list of package names, and if a package isn’t in the export list, it doesn’t exist to the outside world. This allows developers to build an extensive internal class hierarchy and minimize the surface area of the bundle’s API without abusing the notion of package-private visibility. A common pattern, for instance, is to put interfaces in one package and implementations in another and only export the interface package.
  3. All OSGi bundles are given a version number, so it’s possible for an application to simultaneously access different versions of the same bundle (eg: JUnit 3.8.1 and JUnit 4.0.). Since each bundle has its own classloader, both bundles classes can coexist in the same JVM.
  4. OSGi bundles declare which other bundles they depend upon. This allows them to ensure 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 version JUnit version 3.8.1 and another bundle depends on JUnit version 4.0.
  5. In OSGi bundle, there will be an Activator.java class in OSGi which is an optional listener class to be notified of bundle start and stop events.

Q17 : How you can inherit properties of one dialog to another dialog?
A : For inheriting properties we have to create two components with unique names in the base component dialog. For eg. If your plan is to have two rich text two rich text areas in the dialog of components that inherit from the base, then you must include two rich text areas with unique names in the base component dialog. In any case, every input field of a dialog must have a unique name, else they will point to the same property path relative to the jcr: content node of the component when used on a page.

Q18 : Can we restrict for certain users not to display some digital assets?
A : You can always limit who can access certain folders in CQ Digital Assets by making the folder part of a CUG(closed user group).

Steps to make a folder part of a CUG:

  • In CQ DAM, right-click the folder you want to add closed user group properties for and select Properties.
  • Click the CUG tab.
  • Select the Enabled check box to make 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.

Q19 : How bundles are loaded and installed in CQ5?
A : This is managed by the Sling Management Console of CQ5.

Q20 : What is Reverse Replication?
A : Reverse replication is used to get user content generated on a publish instance back to the author instance. To do this you need a reverse replication agent in the author environment. This act as the active component to collect information from the outbox in the publish environment.

Q21 : What is the difference between live copy and language copy?
A : Live Copy – Copy created from an existing site or blueprint 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.

Q22 : What is process step in workflow?
A : It is a workflow component which can be found at – “/libs/cq/workflow/components/model/process”, this is used for calling a java class in workflow.

Q23 : What is Dependency/ Dependencies in client library?
A : 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.

Q24 : What is the purpose of clientlibs?
A : It is used for adding site-specific js and CSS files to the page and also third-party js and CSS files

Q25 : Explain the difference between package and bundle?
A : 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 (if any).