8/31/2020

AEM - Dispatcher Rules

 AEM - Dispatcher Rules


how the new Dispatcher 2.0 will be enabled in AEM

Outline the steps and structure.

8/30/2020

AEM - The new Resource Mapping

 

AEM - The new Resource Mapping SPI and how to use it in AEM


Resource Mapping in AEM - We use etc/map
JcrResourceResolverFactoryImpl configs 

8/29/2020

AEM - Code Quality Rules

 AEM - Code Quality   

How to write good quality code in AEM?


SonarQube Validations. / SonarQube Rules

8/28/2020

AEM - Sling Distribution

 AEM - Sling Distribution

AEM Architecture 

1-AEM Author

2-AEM Publish

2-Dispatcher

how the Client Generated Content will receive?

8/27/2020

AEM - Sling Scheduling

 AEM - Sling Scheduling

how to create a scheduler in AEM

8/26/2020

AEM - Sling Dynamic Include

 AEM - Sling Dynamic Include

Sling Filter

-The filter works on components level

-The filter produces SSI tag for specific

components instead of markup

-Apache detects SSI and makes additional

request for the markup

8/25/2020

AEM Sites - Headless CMS

 AEM Sites - Headless CMS

  • HTTP REST API for Content Fragment-CRUD operations
  • Bulk delivery of fragment structure and content
  • Output in JSON format that can be consumed across SPA, Mobile App, IoT App and more

8/24/2020

AEM - Component Life Cycle

 AEM - Component Life Cycle

8/23/2020

AEM - Testing

 AEM - Testing

how to perform testing in AEM websites?

Developer - JUNIT testing / mock it

8/22/2020

AEM - Security

 AEM - Security

8/21/2020

AEM - Operations

 AEM - Operations

8/20/2020

AEM-Backend Development

 AEM - Backend Development

  1. Writing AEM Sling Servlets
  2. AEM and Sling Logging - Log service configuration
  3. AEM Sling EventHandler - Eventing
  4. AEM JCR Observation
  5. AEM Sling Scheduling - Schedulers
  6.  AEM Sling Models
  7. AEM Sling Dynamic Include
  8. AEM Sling Model Exporter
  9. AEM Backend Coding Practices - Best Practices

8/19/2020

AEM - Overview

 AEM-Overview 

Daily work details with AEM Author , Publish and Dispatcher

working with AMS

8/18/2020

AEM - Sling Mappings

 AEM - Sling Mappings

Resource Resolution Is the key functionality in AEM - Adobe Experience Manager


8/17/2020

AEM- Data Flow

 AEM- Data Flow

8/16/2020

AEM-Servlets with OSGi DS latest annotations

 AEM-Servlets

With new OSGi Declarative Services

Prerequisites:

  • bnd 4.0+ via
    • bnd-maven-plugin 4.0+ or
    • maven-bundle-plugin 4.0+
  • DS 1.3 (AEM 6.1+)
  • Maven Dependency

<dependency>
<groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.servlets.annotations</artifactId> <version>1.1.0</version>
</dependency>

@Component(service=Servlet.class)
@SlingServletResourceTypes( resourceTypes="/apps/my/type", selectors= {"hello"})
public class ResourceTypeBoundServletWithSelectors extends SlingSafeMethodsServlet 
{...
}



8/15/2020

AEM - Clientlibs

 AEM - Clinetlibs

ui.apps

src/main/content/jcr_root/apps/<project-name>/clientlibs

1)clientlib-author

2)clientlib-base

3)clientlib-dependencies

4)clientlib-site

5)vendor



8/14/2020

AEM - website development with core components and HTL

 Website development with Sling Models and HTL using Core Components

Advantages of using core components in website development

  • Shorter time to value
  • Build Websites Faster

Core Components - Technical

  • HTL markup
  • Clean, HTML-based templating language
  • Use-objects
  • Sling Models
  • POJOs
  • Javascript

8/13/2020

AEM - Component Development

 AEM - Component Development

AEM - Extending Core Components

Creating Custom Components

8/12/2020

AEM- Editable Templates

 AEM - Editable Templates and Its concepts

8/10/2020

AEM - Sling Dynamic Include

 Sling Dynamic Include

SSI - Server Side Include

ESI - Edge Side Include



8/09/2020

AEM-OSGi

 AEM-OSGi - Declarative Services

OSGi component development or Modular development

8/08/2020

AEM - Dispatcher

 AEM -  Dispatcher

In AEM - Dispatcher set up is very important concept


8/07/2020

AEM - Solution Design Document

 In AEM - How to write a Solution Design Document for a business requirement.

8/06/2020

AEM - Overview

AEM - Core Concepts

1-Sling
2-JCR 
3-OSGi
4-HTL / Sightly

Java Content Repository
The Java Content Repository (JCR) standard, JSR 283 , specifies a vendor-independent and implementation-independent way to access content bi-directionally on a granular level within a content repository.

Sling Request Processing
Introduction to Sling
AEM is built using Sling , a Web application framework based on REST principles that provides easy development of content-oriented applications. Sling uses a JCR repository, such as Apache Jackrabbit, or in the case of AEM, the CRX Content Repository, as its data store. Sling has been contributed to the Apache Software Foundation - further information can be found at Apache.
Using Sling, the type of content to be rendered is not the first processing consideration. Instead the main consideration is whether the URL resolves to a content object for which a script can then be found to perform the rendering. This provides excellent support for web content authors to build pages which are easily customized to their requirements.
The advantages of this flexibility are apparent in applications with a wide range of different content elements, or when you need pages that can be easily customized. In particular, when implementing a Web Content Management system such as the WCM in the AEM solution.

Sling is Content Centric
Sling is content-centric . This means that processing is focused on the content as each (HTTP) request is mapped onto content in the form of a JCR resource (a repository node):
the first target is the resource (JCR node) holding the content
secondly, the representation, or script, is located from the resource properties in combination with certain parts of the request (e.g. selectors and/or the extension)
RESTful Sling
Due to the content-centric philosophy, Sling implements a REST-oriented server and thus features a new concept in web application frameworks. The advantages are:
very RESTful, not just on the surface; resources and representations are correctly modelled inside the server
removes one or more data models
previously the following were needed: URL structure, business objects, DB schema;
this is now reduced to: URL = resource = JCR structure

OSGI
OSGi defines an architecture for developing and deploying modular applications and libraries (it is also known as the Dynamic Module System for Java). OSGi containers allow you to break your application into individual modules (are jar files with additional meta information and called bundles in OSGi terminology) and manage the cross-dependencies between them with:
services implemented within the container
a contract between the container and your application
These services and contracts provide an architecture which enables individual elements to dynamically discover each other for collaboration.
An OSGi framework then offers you dynamic loading/unloading, configuration and control of these bundles - without requiring restarts.

8/05/2020

AEM Servlets

AEM Servlets
How to create Servlets in AEM

8/04/2020

AEM Component Development

AEM Component Development

In generally we can refer anything is a component;
For example in a web site, home page is collection of many components
For example:
Header Component
Footer Component
Carousel Component
Hero Banner or Hero Slide Component
like, we have many page components or author-able components

We need to understand Component Basics


What are Components?
Modular units which realize specific functionality to present your content on your website.
Re-usable.
Developed as self-contained units within one folder of the repository.

8/03/2020

AEM Upgrade - Few Important Items

AEM Upgrade - Few Important Items

Current AEM version is 6.5.x
Based on your current version 6.x to 6.5.x, It is better to follow the AEM Best Practices.

Adobe is offering now AEM as a Cloud Service, If you want to update your current version to AEM as a Cloud Service, it is better to upgrade to AEM 6.5 version and make sure this version is compatible with Cloud Manager.

Upgrade can be divided in to 3 phases
1) Discovery
2) Implementation
3) Optimization


8/01/2020

AEM - Sling Models

Day # 1
AEM - Sling Models

In AEM Component development Sling Models concept has brought up a revolutionary change and it eases the component development.

Sling Models - Is Plain Old Java Objects (POJO) or a Model Class.
Business Use Case For Sling Model:

Develop a Custom Component where the Author can configure or Author Some content in a Dialog, the same content will be saved to JCR Nodes (Repository), based on the Business requirement, the authored content will be presented to Client in HTML page (using HTL and Sling Models)

The traditional use case for a Sling Model to provide a Business abstraction for a RESOURCE or a REQUEST , which provides the HTL scripts and interface for accessing the business function.

Common patterns for developing a sling model that represents an AEM component in pages using sling model object to create HTL scripts with data and END result of HTML that displayed on the browser.

Information flow in a Sling Model that starts with the HTTP Get Request to a RESOURCE in AEM , based on the Request, requested resources, sling:resourceType
appropriate script is selected.

Then the script is ADAPTS the REQUEST or RESOURCE to the desired SLING Model, the script use the Sling Model Object to generate the HTML rendition
The HTML generated by the HTL script is return in the HTTP Response.

Day # 2

Sling Models:
What we can do with the Sling Models or What Sling Models do in AEM Page development

1) Sling Models is a Frame work for component development or Simply for development
2) Sling Models allows you to use annotation driven Plain Old Java Objects (POJO s)
3) They are adaptable to multiple objects, including Resource and SlingServletRequest
4) Annotations in Sling Models will handle the Inputs
5) Out of the box (OOB), Sling Models work with
    - Sling Bindings
    - OSGi Services
    - Request Attributes

Best Practices in Sling Models