April 10, 2020
Estimated Post Reading Time ~

What is Day CQ?

Day's CQ4 platform allows you to build a compelling content-centric application that combines Web Content Management, Workflow Management, Digital Asset Management, and Social Collaboration.

Prerequisites for Developing with CQ:


The following skills are recommended before starting with CQ:
1. Basic knowledge of web application techniques, including:
a. The request-response cycle
b. HTML
c. CSS
d. JavaScript
2. Working knowledge of CRX(Content Repository Extreme); including the content explorer
3. Basic knowledge of JSP (Java Server Pages), with the ability to understand and modify simple JSP example.

CQ5 Platform Architecture:
CQSE - CQ Servlet Engine
a. J2EE Servlet engine
b. 3 Webapps loaded
CRXDE Lite
Browser-based IDE
Launchpad
Sling application framework
Provides access to the Websites, Digital Assets, Inbox, tools, Packages and so on..

CRX
JCR
Servlet Engine: Acts as the server within which each CQ instance runs as a web application.
Any servlet Engine supporting the servlet API 2.4 can be used.

CRX:
1. General purpose repository
2. Allows for separation of application and content
3. content is available through a standardized API
a. JCR 283
b. JCR API
Node node.addNode("JCR");
Node node.getnode("JCR");
Node node.setProperty("opinion","excellent and recommended");
Node node.getProperty("opinion").getString();

JCR:
1. JSR 283
2. Key principles
a. Common programmatic interface to content repositories
b. API not tied directly to the underlying architecture, data source, or protocol
c. Content organization in repository model Hierarchical modeling
3. Reference implementations
a. Apache Jackrabbit
c. Jackrabbit.apache.org
4. Content Repository Extreme (CRX)
Day implementation of JSR 283

Apache Sling:
Apache sling is a content access framework providing a RESTful way to access and manage data stored in a
JCR (CRX/Jackrabbit/other).

Apache Sling is not specific to any JCR implementation and has been tested with various JCR implementations.
Sling provides a Resource API to make it easier to work within a JCR and manage resources.

Key principles:
a. Web application framework
b. Content-oriented (JCR-based) application development
c. REST-based

Sling:
1. Maps content objects to components
2. Server-side and AJAX scripting support
3. Can be used with a range of scripting languages
JSP, ESP, Ruby, Scala

CMS application - enables the creation, management, and control of the content.

Workflow engine - controls the processing of workflow instances
Workflow instances often control the process of generating and publishing content

WCM Application:
1. Components - independent, reusable pieces of content rendering logic (code)
2. Widgets - basic elements that implement a specific user function
often manifested as a dialog box that enables entering or editing of a piece of content
3. sling - a component framework that provides the underlying mechanisms for rendering content.

Author vs Publish Instances:
Authors: Developers create Templates & pages
Publish: Visitors request Pages

Available Interfaces:
1. CQSE Administration Interface
2. CRX Interfaces
3. Apache Felix Interface

CQSE: http://localhost:4502/admin

CQSE Administration:
1. Used for stand-alone installation
Default CQ5/CRx installation uses CQSE
2. Used to manage:
a. web applications 
b. Connectors
c. Password
d. System information



What is Day CQ?

Day's CQ4 platform allows you to build compelling content-centric application that combine Web Content Management, Workflow Management, Digital Asset Management and Social Collaboration.

Prerequisites for Developing with CQ:

The following skills are recommended before starting with CQ:
1. Basic knowledge of web application techniques, including:
a. The request-response cycle
b. HTML
c. CSS
d. JavaScript
2. Working knowledge of CRX(Content Repository Extreme); including the content explorer
3. Basic knowledge of JSP (Java Server Pages), with the ability to understand and modify simple JSP example.

CRX (Content Repository Extreme):
CRX is a data storage system specifically designed for content-centric applications. CRX implements the Content Repository API for Java Technology (JCR).

Ref: http://dev.day.com/docs/v5_1/html-resources/cq5_guide_architect/cq5_guide_architect.pdf

Java Content Repository:
Content Repository API for Java Technology Specification
JCR 1.0 (JSR-170)
JCR 2.0 (JSR-283)
Is an object database tailored to storing, searching, and retrieving hierarchical data.
Data Structure
Tree – XML DOM API
Tree traversal - Recursion
Queries
XPath
SQL similar language
Apache LuceneFile System-like features:

Hierarchy
Content in a JCR repository can be addressed by path.
Semi-structured content
JCR can store structured documents like XML
Access Control and Locking
JCR can restrict access to different parts of the content hierarchy. 

Database-like features:
1. Query Access
a. JCR supports querying with languages such as SQL
2. Structured Content
a. Can enforce constraints on data structures according to schema
3. Can enforce referential integrity between content items

Repository Model:
1. Simple hierarchy and looks much like a n-ary tree
2. Consists a single repository, with one or more work spaces
3. Work space consists tree of items
a. Item can be either node or a property
b. Node can have zero or more children, and zero or more associated properties, where the actual content is stored.
4. Predefined mixin types:
a. mix:versionable: allows a node to support versioning
b. mix:lockable: enables locking capabilities for a node
c. mix:referenceable: provides an auto-created jcr:uuid property that gives the node a unique, reference able identifier
5. Repository model with multiple workspaces:
a. A circle represents nodes
b. Rectangles represent properties
6. Node types:
a. Every repository must support the primary node type, nt:base
b. nt:unstructured
i. Most flexible node type
ii. Allows any number of child nodes or properties, which can have any names
c. Nt:file
i. Represents files 
ii. Requires a single child node, called jcr:content
d. nt:folder
i. It can represent folders
e. nt:resource
i. Represents the actual content of a file
f. nt:version
i. Required node type for repositories that support versioning


By aem4beginner

No comments:

Post a Comment

If you have any doubts or questions, please let us know.