Professional Documents
Culture Documents
Student Workbook
1
©2016 Adobe Systems Incorporated. All rights reserved. Extend
If this guide is distributed with software that includes an end user agreement, this guide, as well as the software described
in it, is furnished under license and may be used or copied only in accordance with the terms of such license. Except as
permitted by any such license, no part of this guide may be reproduced, stored in a retrieval system, or transmitted, in any
form or by any means, electronic, mechanical, recording, or otherwise, without the prior written permission of Adobe
Systems Incorporated. Please note that the content in this guide is protected under copyright law even if it is not
distributed with software that includes an end user license agreement.
The content of this guide is furnished for informational use only, is subject to change without notice, and should not be
construed as a commitment by Adobe Systems Incorporated. Adobe Systems Incorporated assumes no responsibility or
liability for any errors or inaccuracies that may appear in the informational content contained in this guide.
Please remember that existing artwork or images that you may want to include in your project may be protected
under copyright law. The unauthorized incorporation of such material into your new work could be a violation of the
rights of the copyright owner. Please be sure to obtain any permission required from the copyright owner.
Any references to company names in sample templates are for demonstration purposes only and are not intended to refer
to any actual organization.
Adobe, the Adobe logo, Acrobat, the Creative Cloud logo, and the Adobe Marketing Cloud logo are either registered
trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.
Notice to U.S. Government End Users. The Software and Documentation are “Commercial Items,” as that term is defined at
48 C.F.R. §2.101, consisting of “Commercial Computer Software” and “Commercial Computer Software Documentation,” as
such terms are used in 48 C.F.R. §12.212 or 48 C.F.R. §227.7202, as applicable. Consistent with 48 C.F.R. §12.212 or 48 C.F.R.
§§227.7202-1 through 227.7202-4, as applicable, the Commercial Computer Software and Commercial Computer Software
Documentation are being licensed to U.S. Government end users (a) only as Commercial Items and (b) with only those
rights as are granted to all other end users pursuant to the terms and conditions herein. Unpublished-rights reserved
under the copyright laws of the United States. Adobe agrees to comply with all applicable equal opportunity laws
including, if appropriate, the provisions of Executive Order 11246, as amended, Section 402 of the Vietnam Era Veterans
Readjustment Assistance Act of 1974 (38 USC 4212),
1
©2016 Adobe Systems Incorporated. All rights reserved. Extend
If this guide is distributed with software that includes an end user agreement, this guide, as well as the software described
in it, is furnished under license and may be used or copied only in accordance with the terms of such license. Except as
permitted by any such license, no part of this guide may be reproduced, stored in a retrieval system, or transmitted, in any
form or by any means, electronic, mechanical, recording, or otherwise, without the prior written permission of Adobe
Systems Incorporated. Please note that the content in this guide is protected under copyright law even if it is not
distributed with software that includes an end user license agreement.
The content of this guide is furnished for informational use only, is subject to change without notice, and should not be
construed as a commitment by Adobe Systems Incorporated. Adobe Systems Incorporated assumes no responsibility or
liability for any errors or inaccuracies that may appear in the informational content contained in this guide.
Please remember that existing artwork or images that you may want to include in your project may be protected
under copyright law. The unauthorized incorporation of such material into your new work could be a violation of the
rights of the copyright owner. Please be sure to obtain any permission required from the copyright owner.
Any references to company names in sample templates are for demonstration purposes only and are not intended to refer
to any actual organization.
Adobe, the Adobe logo, Acrobat, the Creative Cloud logo, and the Adobe Marketing Cloud logo are either registered
trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.
Notice to U.S. Government End Users. The Software and Documentation are “Commercial Items,” as that term is defined at
48 C.F.R. §2.101, consisting of “Commercial Computer Software” and “Commercial Computer Software Documentation,” as
such terms are used in 48 C.F.R. §12.212 or 48 C.F.R. §227.7202, as applicable. Consistent with 48 C.F.R. §12.212 or 48 C.F.R.
§§227.7202-1 through 227.7202-4, as applicable, the Commercial Computer Software and Commercial Computer Software
Documentation are being licensed to U.S. Government end users (a) only as Commercial Items and (b) with only those
rights as are granted to all other end users pursuant to the terms and conditions herein. Unpublished-rights reserved
under the copyright laws of the United States. Adobe agrees to comply with all applicable equal opportunity laws
including, if appropriate, the provisions of Executive Order 11246, as amended, Section 402 of the Vietnam Era Veterans
Readjustment Assistance Act of 1974 (38 USC 4212),
1
and Section 503 of the Rehabilitation Act of 1973, as amended, and the regulations at 41 CFR Parts 60-1 through
60-60, 60-250, and 60-741. The affirmative action clause and regulations contained in the preceding sentence
shall be incorporated by reference.
2
Table of Contents
Table of Contents ................................................................................................................................................................................................... 3
Exercise 2.1 Starting and Installing Adobe Experience Manager using Command Line ......................................... 17
Exercise 2.3 Starting and installing Adobe Experience Manager using command line [optional] ...................... 21
Chapter 5: Using the CRX Package Manager and Automating it with cURL ............................................................................. 35
Exercise 6.1 Configuring the Version Purge Task using a content node........................................................................ 47
Exercise 6.2 Determining the Run Modes of the current instance ................................................................................... 51
Exercise 6.3 Creating a Configuration for the Publish Run Mode ..................................................................................... 53
Exercise 7.1 Create a Custom Log File using a Logging Logger Configuration............................................................ 62
Exercise 7.2 Create a custom log file using the Sling Log Support pane........................................................................ 63
3
Chapter 8: Operations Dashboard ............................................................................................................................................................... 66
Exercise 9.2 Publishing a page and understand what the replication agent does ..................................................... 94
4
Chapter 1: Basics of the Architectural Stack
What is Adobe Experience Manager?
§ Adobe Experience Manager is a web-based client-server system for building, managing, and deploying
commercial websites and related services.
§ A number of infrastructure-level and application-level functions combined into a single integrated package.
Adobe Experience Manager is a Java web application, and is based on technologies such as Open Service
Gateway Initiative (OSGi), Java Content Repository (JCR), and Apache Sling. The following diagram is a high-
level view of the architecture stack.
5
ü Web Application Framework - Sling
OSGi enables a collaborative and modular environment, where each application may be built and implemented
as a small bundle. Each of these bundles is a collection of tightly coupled, dynamically loadable classes, JAR files,
and configuration files that explicitly declare their external dependencies.
All content is stored in the content repository, and hence backup is done at the repository level. OSGi runtime
hosts Java applications that can access the repository using the JCR API. As part of the application runtime, you
get Apache Sling, a RESTful web application framework that exposes the full repository content using HTTP and
other protocols.
Apache Felix is an open source implementation of the OSGi that the Adobe Experience Manager framework
makes use of. It provides a dynamic runtime environment, where code and content bundles can be loaded,
unloaded, and reconfigured at runtime.
6
Introduction to the Java Content Repository
The JCR, specifically JSR-283, is a database that supports structured and unstructured content, versioning, and
observation. All data pertaining to Adobe Experience Manager such as HTML, CSS, JS/Java, Images, and
Videos are stored in the JCR object database. It is built with Apache Jackrabbit Oak. The Adobe
implementation of JSR-283 is the Content Repository eXtreme (CRX), and the version of CRX that comes with
Adobe Experience Manager supports JCR 2.x.
In addition to CRX, Adobe Experience Manager can also work with other JCR repositories such as Apache
Jackrabbit and with a number of non-JCR data storesthrough connectors. As Adobe Experience Manager is built
on top of this standard, it is capable of pulling content not just from its built-in CRX repository, but from any
JCR- compliant source, such as a third-party repository (for example, Jackrabbit) or aconnector that exposes
legacy storage through JCR.
2. It supports namespaces. Namespaces prevent naming collisions among items and node types that come
from different sources and application domains. JCR namespaces are defined with a prefix, delimited by a
single colon (:); for example, jcr:title.
7
Understanding the Repository Structure
The repository structure consists of the following areas as shown in the above screenshot.
• /apps – all custom templates, components, and any other definitions related to your site is stored here. When
you inherit foundation components, it is done from the libs folder. Always copy the components from libs to
apps, and then modify it in apps. By doing this, no code will be lost when Adobe Experience Manager is
upgraded. You just need to make the updates to the apps folder.
NOTE: It is best practice is to use the Sling Resource Merger feature, and duplicate the required /libs
folder structure (empty folders) under /apps. Make modifications to the node or property, wherever
changes are required.
• /libs –All libraries and definitions that belong to the code of Adobe Experience Manager are stored here. It
includes out-of-the-box components, templates, and other features such as search or replication. It is also
referred to as the foundation components. Avoid making any modifications to any of the components in libs.
• /content – all content of your website is stored in this folder.
• /conf – holds all the configuration files. For Adobe Experience Manager 6.2, it is used to store dynamic
templates and content policies.
• /etc – contains all resources related to utilities and tools.
• /home – contains all information related to users and groups.
• /tmp –is a temporary working area
• /var – contains files that change and are updated by the system, such as audit logs, statistics, and event
handling.
• /oak:index – This node contains Jackrabbit Oak index definitions. Each node specifies the details of one index.
Standard indexes for the Adobe Experience Manager application are visible and additional custom indexes
can be created.
Introduction to Apache Sling
Apache Sling is a web application framework for content-centric applications, and uses a Java Content
Repository, such as Apache Jackrabbit or CRX to store and managecontent.
• It is based on REST principles.
• Its applications are built as a series of OSGi bundles.
• It is resource-oriented, and usually maps into JCR nodes.
The embedded Apache Felix OSGi framework and console provide a dynamic runtime environment, where
code and content bundles can be loaded, unloaded, and reconfigured at runtime. Sling lets you implement
simple applications, while providing an enterprise-level framework for more complex applications.
Sling assumes “Everything is a Resource.” That is, Sling is resource-oriented, where resources have URLs, and
each resource is mapped into a JCR node. A request URL is first resolved to a resource, and then based on the
resource, it selects the Servlet or script to handle that request. Servlets and scripts are handled uniformly in that
they are represented as resources themselves and are accessible by a resource path. This means that every
script, Servlet, filter, error handler, and so on is available from the ResourceResolver just like normal content—
providing data to be rendered on request.
8
framework includes all the application layer functionality such as mobile functionality, multisite manager,
taxonomy management, and workflow. These functionalities are shared among all the application modules. In
addition to these functionalities, these Adobe Experience Manager applications share the same infrastructure
and UI framework, and are very tightly integrated with each other. All of this is encapsulated within the OSGi
container.
9
Chapter 2: Installation
Adobe Experience Manager Workflow
In Adobe Experience Manager terminology, an “instance” is a copy of Adobe Experience Manager running on a
server. Adobe Experience Manager installations usually involve at least two instances, typically running on
separate machines:
• Author: An Adobe Experience Manager instance used to create, upload, and edit content, and administer
the website. After content is ready to go live, it is replicated to the Publish Instance.
• Publish: An Adobe Experience Manager instance that serves the published content to the public.
NOTE: In a basic sense, the author and publish instances are the same software stack but two different
run modes. Run modes are covered later in this course.
These instances are identical in terms of installed software. They are differentiated only by their configuration.
In addition, most installations use a Dispatcher:
• Dispatcher: A static web server (Apache httpd, Microsoft IIS, and so on) augmented with the Adobe
Experience Manager Dispatcher module. It caches webpages produced by the Publish instance to improve
performance.
10
Prerequisites
To install Adobe Experience Manager, you must have:
• Adobe Experience Manager installation and startup JAR file
The Adobe Experience Manager installation and startup JAR file is also known as the “quickstart” file. You use
the file to install Adobe Experience Manager. Once installed, the file is referred to as the Adobe Experience
Manager startup file. During installation, you will notice the JAR file creates a root folder called crx-quickstart.
You will also need to set environment variables as part of setting up your JDK 1.8.
Installing Adobe Experience Manager on Your System
In general, when you want to install Adobe Experience Manager on your system, you would follow this
procedure:
1. Create a specific folder structure for your Adobe Experience Manager instance.
a. Author instance
For Windows: C:/adobe/AEM/author
For Mac OS or *x: /opt/adobe/AEM/author OR /Applications/AEM/author
b. Publish instance
For Windows: C:/adobe/AEM/publish
For Mac OS or *x: /opt/adobe/AEM/publish OR /Applications/AEM/publish
2. Add the AEM Quickstart JAR file along with the license.properties file to the folder you created earlier.
3. Rename the jar file to include the run mode as well as the port number. That is, rename the file to the
format:
aem-<run mode>-<port number>.jar
For example:
Author instance: aem-author-4502
Publish instance: aem-publish-4503
The first time you double-click the jar file, Adobe Experience Manager will be installed on your system, creating
a root folder called crx-quickstart, which serves as your repository. The following screenshot shows a
sample folder structure for an Author instance.
11
NOTE: The Adobe Experience Manager quickstart file is renamed for installation purposes. When
running for the first time, the quickstart file will notice that it has to install Adobe Experience Manager.
By renaming the file, you use the convention of passing the instance name (Webpathcontext) and port
number through the file name so no user interaction is needed during the installation process.
If no port number is provided in the file name, Adobe Experience Manager selects the first available
port from the following list in this specific order:
1. 4502
2. 8080
3. 8081
4. 8082
5. 8083
Perform Task - Start an Adobe Experience Manager Author Instance, from the Lab Activity section.
Perform Task - Start an Adobe Experience Manager Publish Instance, from the Lab Activity section.
There are many ways of starting an Adobe Experience Manager instance, but this course covers two methods:
graphical user interface (GUI) and command line. The latter option is more powerful because the user has the
ability to configure additional performance-tuning parameters to the Java Virtual Machine (JVM).
• A dialog box will pop up similar to the following (this is known as the GUI):
12
After Adobe Experience Manager starts, your default browser automatically opens, pointing to Adobe
Experience Manager’s start URL (where the port number is the one you defined during installation).
4. In the Sign In area that displays, enter the default administrator’s credentials (admin/admin), and then
click Sign In.
If this is the first time you are logging in, a wizard displays, asking if you want to configure Analytics & Targeting
now.
5. Click Cancel.
13
6. A hover menu opens, asking if you want to be reminded to complete the Configure Analytics & Target
wizard later, or not ask again (which means it will never open again when you first log in). For this class,
click Don’t ask again.
7. The Welcome screen displays, with different consoles available for you.
14
Using the Command Line to Start Adobe Experience Manager Author Instance
Prior to the installation, you may want to know which parameters are available to configure quickstart. Enter the
following command to display a complete list of optional parameters:
The Adobe Experience Manager quickstart installer will show all available command-line options without
starting the server. In addition, you need to tune the JVM used for running Adobe Experience Manager. Tuning
the JVM is an important and delicate task and requires a more realistic environment in terms of resources
(hardware, operating system, and so on) and workload (content, requests, and so on). For now, it will be enough
to know that you can start your instance (Author or Publish) using the following parameters:
Default value 64 MB for a JVM running on 32-bit machines, or 83 MB for 64-bit machines
15
-Xmx --> assigns the maximum size the heap can grow
Default value 64 MB for a JVM running on 32-bit machines, or 83 MB for 64-bit machines
Specific to physical memory available and expected traffic, but should be equal or
Recommended greater than the initial size. To run Adobe Experience Manager, it is recommended to
allocate at least 1024 MB of heap size.
-Xmx1024m (sets the maximum size for the heap. In the example, we are letting it grow
Syntax to 1024 MB; however, in production, this should be higher because Adobe Experience
Manager consumes a lot of resources).
You can now install and start Adobe Experience Manager from the command line together with increasing the
Java heap size, which helps improve performance. Refer to the following image for an example of the command
line.
You can control the way Adobe Experience Manager is installed by defining properties via file name.
Perform Task - Start and installing Adobe Experience Manager using command line, from the Lab Activity
section.
Using the Command Line to Start the Adobe Experience Manager Publish Instance
In your command prompt, navigate to the directory /adobe/AEM/publish, and enter the following command to
install the publish instance:
16
Exercise 2.1 Starting and Installing Adobe Experience Manager using Command
Line
Overview
Unlike many other applications, you can install Adobe Experience Manager using a quickstart, self-extracting
JAR file and a license.properties file containing the license key. When you double-click the JAR file for the first
time, everything you need is automatically extracted and installed.
In some scenarios, you need to start the Adobe Experience Manager instance using the command line, where
you provide the argument during the instance start-up.
To begin, you need to configure and install two servers:
• Author on localhost port number 4502
Content creators and developers use the Author server to create and manage the content. Visitors access the
website and interact with it on the Publish instance.
Prerequisites
You must have the following to complete the tasks in this module:
• Adobe Experience Manager quickstart JAR file
• license.properties file
NOTE: In a VILT class, the installation would have already been performed.
Steps
1. Task - Start an Adobe Experience Manager Author instance
2. Create a folder structure on your file system where you will store, install, and start Adobe Experience
Manager. For example:
a. Windows: C:/adobe/AEM/author
17
a. aem = Application
b. author = Web Content Management (WCM) mode it will run in (in this case, Author)
5. In a Windows or MacOS X environment, double-click the aem-author-4502.jar file. Installation will take
3 3T 33T
After Adobe Experience Manager Author instance has started successfully, the start-up screen will change to
2T
In addition, after Adobe Experience Manager starts, your default browser will automatically open to Adobe
2 T
Experience Manager’s start URL (where the port number is the one you defined on installation). For
example: http://localhost:4502
52 4T T 54T
18
Exercise 2.2 Starting an Adobe Experience Manager Publish instance
1. Create a folder structure on your file system where you will store, install, and start the Adobe Experience
Manager. For example:
Windows: C:/adobe/AEM/publish
• aem = Application
4. Double-click the aem-publish-4503.jar file to start the Publish instance. After Adobe Experience
3 3T 33T 2 T
Manager Publish instance has started successfully, the start-up screen will change to something similar to
the following:
In addition, the Adobe Experience Manager login page opens from your default browser (where the port
number is the one you defined on installation). For example: http://localhost:4503
5 4T
The Geometrixx Outdoors site opens in your browser once the Publish instance is up and running. If you are
wondering why it shows this, it is based on the root mapping set out of the box for Adobe Experience Manager.
19
Congratulations! You successfully installed and started Adobe Experience Manager Author and Publish
instances on localhost. To start Adobe Experience Manager in the future, double-click the renamed
aem-quickstart-6.2.0.jar file. For example: aem-author-4502.jar
3 3T 33T 3 3T 33T
20
Exercise 2.3 Starting and installing Adobe Experience Manager using command line
[optional]
You already have an author instance and a publish instance running. Perform this task only when necessary or
as an add-on exercise to try out beyond this class.
This is a powerful method because the user can provide additional performance-tuning parameters to the Java
Virtual Machine (JVM). On Windows, MacOS X, or *x, you can install or start Adobe Experience Manager from
the command line, while increasing the Java heap size, which improves performance.
When entered at the command prompt, the Adobe Experience Manager author runmode starts with a specific
memory allocation to the JVM and the GUI window “on”:
At your command prompt, navigate to the Adobe\AEM\author directory, and enter the following command to
install Adobe Experience Manager without installing the Geometrixx sites:
TIP: To open a directory in Windows Explorer in a command line, select the directory, and then
press Shift and right-click. You will see an option to open that directory in a command line window.
Summary
You should now be able to:
• install and run the Adobe Experience Manager Author instance
21
Chapter 3: Authoring Basics
Overview
This chapter introduces the Touch User Interface (UI) of Adobe Experience Manager, and shows you how to
create and edit pages.
Objective
By the end of this chapter, you will be able to:
22
Introduction to the Touch UI
The Adobe Experience Manager User Interface (UI) combines the advantages of a web interface with the fluidity
and responsiveness usually associated with desktop applications.
Let’s familiarize ourselves with the key areas of Adobe Experience Manager Touch UI. When you load the
application, you are presented with a screen that includes the header bar and content area.
Actions Bar
The Actions bar displays at the top of a page when performing a task in Adobe Experience Manager. The actions
available depend on the page selected. For example, if you select the English-version of the Products page
within the Geometrixx Demo Site, you will see Create, Edit, View Properties, and so forth in the Actions bar.
These actions are “clickable” and let you perform the necessary action based on business need.
OmniSearch (“/”)
OmniSearch is a powerful search tool built into Adobe Experience Manager that you access with one tap - all
The biggest benefit of OmniSearch is you do not have to click through different menus; if you get lost within
Adobe Experience Manager, all you need to do is press / and enter a partial or full string of your destination’s
name. As you type, your search results appear - you do not have to even press Enter to return the results, and
then you can click on where you need to go.
OmniSearch is also available on all pages within Adobe Experience, making it easier to find and learn more
about different areas in the UI.
Navigating to Consoles and Tools
23
Two major areas you must access during this training are Consoles and Tools. You can access these areas by
clicking Adobe Experience Manager in the upper-left corner of the screen.
• Navigation—Provides access to other consoles such as Projects, Sites, Assets, Mobiles, and so on.
• Tools—Provides access to a number of specialized tools and consoles that help you administer your websites,
digital assets, and other aspects of your content repository.
24
Creating and Editing Pages
A page in Adobe Experience Manager contains components such as text, images, videos, and many more. These
pages are created from templates that define the structure of the page—including where each component must
be placed.
Creating Pages
To organize your website within Adobe Experience Manager, it is critical to understand how your role allows
you to access functionality that lets you create, edit, and publish a website. Without this access, you cannot
access many of the features that comprise Adobe Experience Manager that make it possible to build your
website from concept to completion.
Although content is key, a website needs a foundation - and that foundation is built on pages. Before you add
content, you must create a page within a site.
Two key fields are used when creating a page:
• Title: This is displayed in the console and shown at the top of the content page when editing. This field is
mandatory.
• Name: This is used to generate the Uniform Resource Identifier (URI). The most common URI is the URL
(“web address”). User input for this field is optional. If not specified, the name is derived from the title.
The name of the page should be in lowercase, as it is recommended practice for URLs (some web servers are
case-sensitive while others are not).
NOTE: On the following characters are allowed in the Name field: a through z; A through Z; 0 through
9; _ (underscore); and – (hyphen/minus).
25
26
Exercise 3.1 Creating a page
In this exercise, you will create a demo page for the sample Geometrixx Demo Site. This basic exercise will
introduce you to using OmniSearch to find the Sites console in Adobe Experience Manager, which is where you
will create your page.
To create a page:
1. Log in to Adobe Experience Manager.
2. Press /.
3. In the OmniSearch field, enter Sites and select Go to Sites. The Sites page opens. By default, it opens in
Column View.
4. While in the Column View, select Geometrixx Demo Site then select English.
6. In the Template wizard, select the Geometrixx Content Page template, then click Next.
7. In the Name and Title fields in the Properties wizard, enter these values (leaving all other fields empty):
a. Name: demopage
9. Click Done. You are back on the Sites page. The new page will appear as a child of the English page under
Geometrixx Demo Site. You can create subpages of any page using the same process.
Editing Pages
Once the page is created, you can edit the content of the page. Content is added using components (content
placeholder) that you can drag and drop onto the page. You can add, edit, and delete components from the
page.
Let’s edit the page and add content using components such as Text, Image, and Text & Image.
27
Exercise 3.2a Editing a page
In this exercise, you will edit the page you created in Exercise 3.1.
To edit a page:
1. If you are not on the Sites console, select the page you just created by clicking Adobe Experience Manager
in the upper-left and clicking Sites.
3. Click English and then click the checkmark in the circle on the thumbnail (image) for Demo Page.
TIP: If you do not click the checkmark on the thumbnail, the Actions will not open at the top of the
page.
4. Click Edit from the Actions bar. Demo Page opens in a new tab in the same browser.
5. A Welcome wizard opens on top of the Demo Page; click Skip in the lower-left corner and select Don’t
show again.
6. Verify the page is open in Edit mode by looking at the top-right of the page. You will see Edit, which is part
of a drop-down menu. If another option is selected (for example, Developer), select Edit. This should not
happen, as Edit is the default option when opening a page in Edit mode, but it helps to get to know the UI.
7. To add Text component to the page, click the Toggle Side Panel icon. The side panel opens on the left side
of the tab on the Assets tab. The Assets tab features different fields as well as a drop-down menu for finding
and selecting assets.
8. Click Components underneath the Assets icon. The Components tab opens.
9. In the Filter field, search for a text component by entering Text and pressing Enter.
10. Drag and drop the Text component into the Drag components here area. You will see a gray box with the
word, Text, in the middle. The Drag components here box moves below the new text box.
11. Click the Text component, and then click Edit (pencil icon).
TIP: If you go to another page in your browser (while you are in the Text Editor page), then go back to the
Edit mode of the page you are editing, the Text Editor will close for the Text component.
12. Add sample text and click Save (checkmark) in the upper-right to save the changes. The text is added to the
page.
13. Keep the page open in Edit mode to perform the next exercise.
1. In Demo Page, double-click Drag components here and select Image from the Insert New Components
menu.
28
2. Choose any image from the Assets tab and then drag and drop the image onto the Image component. The
image will be added to the page.
3. Keep the page open in Edit mode to perform the final exercise in this chapter.
1. In Demo Page, double-click Drag components here and select Text & Image component from the Insert
New Components menu. Selecting this option lets you insert an image with a text box.
2. Choose any image from the Assets tab, and drag and drop the image onto the Text & Image component.
3. Click the Text & Image component, and click Edit (pencil icon) from the component toolbar.
5. Add some text and click Done (checkmark) from the toolbar. You can see the image along with text on the
page.
6. Click X to close the Demo Page, but keep your Adobe Experience Manager publish and author instances
open.
29
Chapter 4: Exploring the Administrative Interfaces
Overview
This chapter will explore the Adobe Experience Manager administrative interface, which helps you configure
Adobe Experience Manager for authors and developers.
Objectives
When you complete the exercises, you will be able to:
• Explain how to browse the application and server interfaces associated with an Adobe Experience Manager
installation
• Use your administrative privileges to configure Adobe Experience Manager
30
Exercise 4.1 Using the Adobe Web Console
1. If it is not already open, open an author instance of Adobe Experience Manager.
2. In the author instance, press / and enter: Web Console and select Go to Tools > Operations > Web
Console (from the search results that appear as you type in OmniSearch). Or, instead of using OmniSearch
(/), open a new tab in your browser and enter: http://localhost:4502/system/console
3. Verify the Adobe Experience Manager Web Console opens, showing you the Bundles application:
31
6. The Day CQ Mail Service dialog window opens:
8. Congratulations! You successfully logged in to the Adobe Experience Manager Web Console. From the
Configuration Console, you saw which parts (bundles) of the application you can configure.
32
Exercise 4.2 Using CRXDE Lite
CRXDE Lite is a browser-based Integrated Development Environment (IDE) loosely based on Eclipse. The
biggest difference between using CRXDE Lite and a common IDE such as Eclipse or IntelliJ is that the files
(created) are stored directly through CRX. However, CRXDE Lite cannot check in files into the Subversion
instance.
Or, if you want more of a challenge, open Adobe Experience Manager and click Adobe Experience
Manager in the upper-left then click Tools and CRXDE Lite to open the CRXDE Lite console. You can also
search for CRXDE Lite using OmniSearch (/).
2. On the left side of the console, find and expand apps (top of the folder structure) by clicking +.
3. Navigate to the /geometrixx/components folder to view the custom components created for the
Geometrixx website/project.
33
4. Congratulations! You successfully logged in to CRXDE Lite and browsed the custom components created
for the Geometrixx website/project. Again, CRXDE Lite is embedded into Adobe Experience Manager/CRX
and allows you to perform standard development tasks in a web browser.
5. Click X to close the CRXDE Lite window, but keep your Adobe Experience Manager author and publish
instances open.
34
Chapter 5: Using the CRX Package Manager and
Automating it with cURL
Objective
This chapter explains how to create an AEM package that will combine all elements of the training project
minus images. This helps you understand how to use CRX Package Manager and provides a good example of
packaging application content, which you could then distribute to team members for review. To successfully
complete and understand these instructions, you will need:
35
Exercise 5.1 Creating, Building, and Downloading a CRX Package
1. With an author instance of Adobe Experience Manager open, enter: /
3. As you type, search results containing the text you entered in Step 2 display.
4. Right-click Go to > Tools > Deployment > Packages and select Open link in new tab. The CRX Package
Manager page opens in a new tab, but in the same browser where your instance of Adobe Experience
Manager author instance is running.
6. In the following fields in the New Package window, enter these values:
IMPORTANT! You do not have to create a folder for your package; you can just enter the folder
name (in this case, training) in the Group field. You can also create a folder structure in the Group by
entering the folder path. For example: training/exercises
7. Click OK. You are back on the Package Manager page. At the top of the page, the package you created
(training_project-1.0.zip) is visible.
8. Click Edit on the newly created package. The Edit Package window opens.
36
13. Define a rule that excludes all jpg files: Exclude => .+\.jpg=
NOTE: The group name is a folder name where your package will be stored; you can choose an existing
one or create a new one by providing a new name for the group.
15. Click Build then click Build again to build the package.
37
16. As the package is builds, the Activity log is running in the lower portion of your screen.
17. After the build process is successful, your package is ready for distribution, which means other users can
install it to achieve the same output.
Always check for errors in the build process. Although errors are seldom seen, verify and fix them immediately
because they could cause instability with the repository at a later stage.
An HTTP service interface is available and allows for managing packages using command-line clients, such
cURL, wget, or automated scripts. In this case, you can auto- mate content package management using scripts.
In rest of this chapter, you will learn about cURL syntax for content package management. To successfully
complete and understand these instructions, you will need:
1. Look for the cURL software under USB drive > distribution > curl or you can download the cURL zip file
from: http://curl.haxx.se/download.html
2. Extract the contents (if you downloaded the correct version, you should find curl.exe).
3. Place curl.exe in a folder where you keep your software (for example, C:/ Program Files/curl).
c. Right-click My Computer.
d. Select Properties.
38
e. Click Advanced system settings.
h. Add a semicolon before the curl.exe folder path as shown: ;C:/ Program Files/curl
i. You can now run cURL from the command line by entering: curl www.google.com
Installing cURL in Mac OS X
If your device uses Mac OS X as its operating system, you do not have to install cURL, as it comes with the
standard installation of Mac OS X.
39
Exercise 5.2 Using Package Manager with cURL
The following Package Manager operations are currently supported from the command line:
• Uploading packages
• Creating packages
• Deleting packages
• Downloading packages
• Performing a dry run
• Previewing package
• Listing packages (contents)
• Building packages
• Rewrapping packages
• Installing packages
• Uninstalling packages
• Replicating packages
To trigger the above operations, send requests using the command-line client to the CRX repository. The
response is sent back in XML format.
2. Navigate
curl -u admin:admin http://localhost:4502/crx/packmgr/service.jsp to the location of
the package to be
uploaded:
4. Enter the following command to install the package you just uploaded:
6. Congratulations! You successfully automated uploading, installing, and removing a content package. Refer
to the documentation for more information about building, uninstalling, and other cURL commands
40
supported by Package Manager.
41
Chapter 6: Configuring OSGI Bundles and Setting
Run Modes
Overview
OSGi is a fundamental element in the technology stack of Adobe Experience Manager. It is used to
control the composite bundles that make up Adobe Experience Manager and their configuration.
OSGi provides the standardized primitives that allow applications to be constructed from small,
reusable, and collaborative components that may have no prior knowledge of each other. These
components can be composed into bundles, the bundles composed into an application and the
application is then deployed.
OSGi support for modular deployment of bundles allows easy managementof the application asthe
bundles can be stopped, installed, and started individually. The interdependencies are handled
automatically. Each OSGi component is contained in one of the deployed bundles.
42
OSGi configuration of Adobe Experience Manager
Adobe Experience Manager is installed with default settings for all parameters, which allows it to
run out-of-the box. However, you can configure Adobe Experience Manager and its OSGi
components for the specific requirements of each of your environments.
This can be done either:
• Using the Adobe AEM Web Console Configuration Manager tab -
http://localhost:4502/system/console/configMgr
Recommended as a viewer. The web console will provide information needed for configuring OSGi
components, such as: persistent identity, property names, default values, etc.
43
• Using configuration files
1. Modifying a configuration in the Web console will take immediate effect as it takes precedence at runtime.
2. Modifying a configuration in /apps will take immediate effect.
3. Modifying a configuration in /libs will take immediate effect, unless it is masked by a configuration in /apps.
44
This means that a generic configuration in /libs can be masked by a project specific configuration in /apps.
CAUTION: Configuring Adobe Experience Manager may seem straightforward, but you must be aware
that certain changes can have a major impact on the application(s). For this reason, make sure you
have the necessary experience and knowledge before you start configuring Adobe Experience
Manager; make only the changes that you understand, know, and are required. Any changes made
through either the web console or content nodes are immediately applied to the running system (no
restart is required).
Defining Configurations
To configure an OSGi component, you must know the following:
Persistent Identity (PID) of the service
The PID is the unique name for this OSGi component. Reference the component in the AEM Web Console
Configuration Manager. The name is shown in the Configuration Information portion of the configuration dialog.
45
Other useful information for configuring OSGi components includes:
• Whether a Configuration or Factory Configuration is necessary. When you have a single module, you will
have a single configuration that occurs just once in the CRX. There are also cases where you will have
factory modules that allow multiple modules of the same type to exist simultaneously. When configuring a
module generated by a factory, you use a factory configuration. An example of a factory configuration is the
Apache Sling Logging Logger Configuration. This is a factory of creating multiple modules that log to log
files, one per file.
• Does a configuration already exist in /libs? If so, this configuration can be copied from /libs
to /apps/<yourProject>/, then customized in the new location.
• Whether a specific run mode is required. Run modes, which allow you to customize configurations for
multiple environments simultaneously and group configurations per environment, are covered later in this
section.
When configuring OSGi components using content nodes, you will create a folder named using the format:
/apps…/config.*. Inside that config folder, you will create a node of type sling:OsgiConfig whose name matches
the PID of the component being configured. To configure specific parameters for this component, you will
define properties, on the node, which are set to the desired values. AEM maps the node name to the OSGi
component and applies the configurations to that component.
The CRX watches for nodes of type sling:OsgiConfig inside folders named “config”. At system startup, AEM
collects all of the nodes of type sling:OsgiConfig occurring in folders named “config” and applies the
configurations.
46
Exercise 6.1 Configuring the Version Purge Task using a content node
1. Navigate to the AEM Web Console: http://localhost:4502/system/console
2. Click the OSGi drop-down and select Configuration.
3. Click Day CQ WCM Version Purge Task. This configuration dialog will be used as source information to create the
configuration node and associated properties. Take note of the PID, property names and default values.
4. In a different browser tab or window, navigate to AEM Home > Tools > General > CRXDE Lite.
47
6. Right-click on /apps/geometrixx and select Create > Create Folder.
7. Save.
8. Right-click on the config.author folder and select Create > Create Node.
9. Enter the following information and click OK:
Name: com.day.cq.wcm.core.impl.VersionPurgeTask (the PID of the Version Purge Task from the configuration
dialog)
Type: sling:OsgiConfig
10. Save.
11. Select the /apps/geometrixx/config.author/com.day.cq.wcm.core.impl.VersionPurgeTask node you just created.
12. Add the following six properties to the selected node:
Name: granite.maintenance.schedule
Type: String
Value: daily
Name: granite.maintenance.isConservative
Type: Boolean
Value: false
Name: versionpurge.paths
Type: String
Value: /content
Name: versionpurge.recursive
Type: Boolean
Value: true
Name: versionpurge.maxVersions
Type: String
Value: 3
Name: versionpurge.maxAgeDays
Type: String
Value: 15
13. Save.
48
14. Return to the Web Console Configuration Manager and refresh the page.
15. Open the Day CQ WCM Version Purge Task and notice the changes in the parameter values for the component.
Congratulations! You now know how to configure an OSGi component. To put this configuration under change
control, you can create a content package containing the configuration you just defined and any other
configurations. Then export the content package to your change control system.
Run modes allow you to fine-tune your Adobe Experience Manager instance for a specific purpose (for example,
author, publish, or development). This is done by defining collections of configuration parameters for each
environment, as defined by a run mode.
49
Adobe Experience Manager has built-in author or publish run modes (do not remove these). If required, you can
add additional custom run modes. For example, you could configure run modes for:
• Environment: local, dev, test, prod
• Location: Berlin, Basel, Timbuktu
• Company: acme, partner, customer
• Special system type: importer
::* runmode(s)
set CQ_RUMMODE=author,foo,dev
sling.run.modes=author,dev,berlin
/apps/myapp/config.publish
/apps/myapp/config.publish.berlin
config.basel/com.day.cq.mailer.DefaultMailService
config.berlin/com.day.cq.mailer.DefaultMailService
50
config.prod/com.day.cq.wcm.core.impl.WCMDebugFilter
config.dev/com.day.cq.wcm.core.impl.WCMDebugFilter
When using different configurations for separate run modes, the following apply:
• The configuration with maximum matching run modes wins.
• Partial configurations are not supported.
• Once the system selects a matching configuration, it will use that configuration, even if all properties are not set in that
configuration.
Congratulations! You now know how to check the run modes defined for the current AEM instance.
51
Make sure your application code is separate from the configuration, as you may need to use different
configurations with the same application for different environments. Creating separate content packages makes
it easy to deploy the appropriate configuration for each environment.
Make sure your application code does not depend on specific content, as this may not be present in all
environments.
Code/configurations packages will be created in the development environment and will then travel from
development to test and then to production.
You will want to keep the application separate from its configuration. So, typically the application will be in a
separate package from its configuration. There are two main approaches for deploying the configurations:
Packaging Style 1
One configuration package for each environment: for example, QA and production.
Packaging Style 2
One configuration package containing the configurations for all the environments through the use of run
modes.
Now that you know how to configure OSGi components, and you have author and Publish instances, you can
examine how custom run modes affect component configuration. In this next exercise, you will create two
configurations for the Version Purge Task: one for the Author environment and one for the Publish
environment.
52
Exercise 6.3 Creating a Configuration for the Publish Run Mode
1. Navigate to AEM Home > Tools > General > CRXDE Lite.
2. Copy /apps/geometrixx/config.author to /apps/geometrixx/config.publish.
3. Select /apps/geometrixx/config.publish/com.day.cq.wcm.core.impl.VersionPurgeTask.
4. Modify the properties listed to the following values. Leave all other properties unchanged:
Name: granite.maintenance.schedule
Type: String
Value: weekly
Name: versionpurge.maxVersions
Type: String
Value: 7
Name: versionpurge.maxAgeDays
Type: String
Value: 60
5. Save.
6. In a separate browser tab or window, navigate to the Web Console Configuration Manager.
7. Open the Day CQ WCM Version Purge Task and notice the values in the parameter values for the component remain
a match to the configuration defined in /apps/geometrixx/config.author. This is because the config.author folder
matches the author run mode of the Author instance.
53
54
Exercise 6.4 Deploying a Configuration package to another AEM instance
1. Ensure a publish instance is up and listening on port 4503.
2. Navigate to Tools > Deployment > Packages or go directly to the URL: http://localhost:4502/crx/packmgr/index.jsp
3. Click Create Package.
4. In the Create Package dialog box, enter these values:
a) Name: trainingConfig
b) Version: 1.0
c) Group: training
5. Click OK.
55
14. In the package header, click Build. You now have a package that contains configurations for both author and publish
run modes. To test the publish configurations, you must deploy the package to the publish instance.
15. In the package header, navigate to More > Replicate. This replicates the package to the publish instance.
16. Verify the package arrived at the publish instance: http://localhost:4503/crx/packmgr/index.jsp
17. Examine the configurations in the publish instance using CRXDE Lite: http://localhost:4503/crx/de
18. Use the Web Console on the publish instance to validate the Version Purge Task is configured with the desired values:
http://localhost:4503/system/console/configMgr
56
Congratulations! You now know how to create and deploy environment-specific configurations using run
modes.
• The Web Console is the standard interface for OSGi configuration. It provides a UI for editing the various
properties, where possible values can be selected from predefined lists.
As such it is the easiest method to use.
• Can be included in content packages for use on other instances
• Any configurations made with the Web Console are applied immediately and applicable to the current
instance, irrespective of the current run mode, or any subsequent changes to the run mode.
Configuration files
• Contain settings defined in the web console.
• Can be included in content packages for use on other instances.
• Any configurations made using configuration files are applied on restart, if applicable.
Content-nodes (sling:osgiConfig) in the repository
• Ensure that copying or replicating the repository contents recreates identical configurations.
• Allow you to check configurations out to FileVault or Subversion; either for security or further updates.
• Can be saved in packages for use when setting up other instances.
57
• Allow you to perform configuration rollouts using scripts to propogate the configuration details.
58
Chapter 7: Log Files
Overview
Adobe Experience Manager log files provide detailed information about the current system state. In addition to
the default system log files, you can also create and customize your own log files. They can help you better track
messages produced by your own applications and to separate them from the default log entries.
The logging system for Adobe Experience Manager is based on Simple Logging Facade for Java (SLF4J), which
consists of two elements:
• Logging Logger
• Logging Writer
The Writer persists the data provided by the Logger to a configurable location. Usually, it is a file. The Logger
collects data from different components inside Adobe Experience Manager, and filters them by requested
severity level, then redirects the output to a configured Writer.
NOTE: There is no need to configure a Writer unless you need to change the default log file size or
maximum number of files before rotation begins.
In Adobe Experience Manager, you can configure logging for the two major interfaces: Adobe Experience
Manager and the CRX, independently. By default, what happens in Adobe Experience Manager will be of more
interest to you. However, in some cases, you can also set a higher verbosity level for the CRX module.
59
AEM Log Files
The CRX records detailed information in its logs. You can find the AEM logs in ~/crx-quickstart/logs. The out-of-
the-box log files of most interest are:
request.log: Each access request and its response are recorded in this log.
You can also see request log entries using the AEM Operations Dashboard.
access.log: All access requests to AEM and the CRX repository are recorded in this log.
error.log: Error and informational messages are recorded in this log. This is the central log for AEM.
• logging level
• location of the central log file
• number of versions to be kept
• version rotation; either maximum size or a time interval
60
• format to be used when writing the log messages
NOTE: Any changes that you make to the logging configuration should be made by defining standard
OSGi configuration nodes in the repository.
Pro Tip: In production, Adobe recommends configuring everything using OSGi configurations in the repository
and using the Adobe Web Console as a viewer only. However, the Sling Log Support pane of the AEM Web
Console is an excellent choice for developers to use for debugging.
61
Exercise 7.1 Create a Custom Log File using a Logging Logger Configuration
In this first example, you will create a new Logger module based on a factory module (Apache Sling Logging
Logger Configuration) To create the logging logger configuration, you will create a config folder and define
a sling:OSGiConfig node. The node name will be the name of the logging logger factory with a unique
string suffix to distinguish this logger from all the other loggers. It should log protocol messages generated
by the modules org.apache.felix and com.day packages, filtering out messages with log severity higher than or
equal to ‘Debug’.
a) Right click the /apps/geometrixx folder and choose Create... Create Node.
b) Enter the following values in the Create Node dialog:
Name: config.author
Type: sling:Folder
3. Click Save All.
Name: org.apache.sling.commons.log.LogManager.factory.config-TRAINING
Type: sling:OsgiConfig
Name: org.apache.sling.commons.log.level
Type: String
Value: info
Name: org.apache.sling.commons.log.pattern
Type: String
62
Value: {0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* [{2}] {3} {5}
Name: org.apache.sling.commons.log.names
Type: String[] (String Array) (String + Multi)
Values: org.apache.felix, com.day
9. In your file system, navigate to ~/crx-quickstart/logs. You should see the file training.log.
10. Open the training.log file to examine its contents. These are the Information level messages being logged
by the org.apache.felix and com.day packages.
Congratulations! You now know how to use OSGi configuration to create a custom log file.
Exercise 7.2 Create a custom log file using the Sling Log Support pane
1. Using the AEM Web Console, navigate to Sling > Log Support.
63
2. Click on Add New Logger.
4. Click Save.
64
6. Open the training2.log file. You will notice that it is already logging. (You may have to access an AEM
page.)
65
Chapter 8: Operations Dashboard
Overview
The Operations Dashboard in Adobe Experience Manager 6.2 helps system operators to monitor the Adobe
Experience Manager system health at a glance. The Dashboard also provides auto-generated diagnosis
information on relevant aspects of Adobe Experience Manager and allows configuring and running of self-
contained maintenance automation to reduce project operations and support cases significantly.
The Operations Dashboard can be extended with custom health checks and maintenance tasks. Further,
Operations Dashboard data can be accessed from external monitoring tools via JMX. You can access the
Dashboard from AEM Home > Tools > Operations or by using OmniSearch by pressing “/” and entering
Operations.
Health Reports
The Health Report system provides information on the health of an Adobe Experience Manager instance
through Sling Health Checks. You can do this either through OSGI, JMX or HTTP requests (via JSON). It offers
measurements and threshold of certain configurable counters and, in some cases, will offer information on how
to resolve the issue.
66
Diagnosis Tools
Diagnosis Tools help you find and troubleshoot root causes of the warnings reporting from the Health Check
Dashboard, as well as providing important debugging information for system operators.
67
Automated Maintenance Tasks
The Automated Maintenance Tasks page is a place where you can view and track recommended maintenance
tasks scheduled for periodic execution. The tasks are integrated with the Health Check system and their
execution has minimal impact on system performance. The tasks can also be manually executed from the
interface.
Adobe Experience Manager 6.x ships with a default set of automated maintenance tasks, including Version
Purge, Workflow Purge, and Revision Clean Up among others,
Custom maintenance tasks can be implemented as OSGi services. The maintenance task infrastructure is based
on Apache Sling's job handling.
Monitoring
The Health Check Dashboard can integrate with Nagios via the Granite JMX Mbeans.
68
Exercise 8.1 Adding a New Task to the Maintenance Schedule
1. Navigate to AEM Home > Tools > Operations > Maintenance > Daily Maintenance Window.
5. Before you run the Version Purge task, return to the System Maintenance page, AEM Home > Tools > Operations >
Health Reports > System Maintenance. Notice that a new CRITICAL task has shown up.
69
6. Return to the daily maintenance page and run the Version Purge task by clicking on the Play button.
Congratulations! You now know how to add a new task to the automated maintenance schedule.
70
Exercise 8.2 Modify the Maintenance Schedule
1. Navigate to AEM Home > Tools > Operations > Maintenance.
Congratulations! You now know how to modify the Automated Maintenance Schedules.
71
Exercise 8.3 Configure the Workflow Purge Task.
1. Navigate to and open the Weekly Maintenance Window (Tools > Operations > Maintenance > Weekly
Maintenance window).
5. Navigate to AEM Home > Tools > Web Console > Configuration Manager. Find the Workflow Purge Scheduler:
com.adobe.granite.workflow.purge.Scheduler
http://localhost:4502/system/console/ configMgr/com.adobe.granite.workflow.purge.Scheduler
72
Notice the configuration is empty. To configure the Workflow Purge Scheduler, you must create
configuration nodes in the repository.
Type: sling:OsgiConfig
10. Save.
11. Add the following properties on the Properties tab. As you add each property, click Save All. Refer to the following table
for the four properties you will add:
Name Type VALUE
scheduledpurge.name String Weekly Purge
scheduledpurge.workflowStatus String COMPLETED
scheduledpurge.modelIds String[] “”(leave this blank)
scheduledpurge.daysold Long 28
73
12. Navigate to AEM Home > Tools > Web Console > Configuration Manager http://localhost:4502/system/console/
configMgr/com.adobe.granite.workflow.purge.Scheduler
Notice that all values, except the workflow models are filled in. The explanation next to the
ModelIds to Purge notes that leaving the ModelIds blank will purge all models.
13. Return to the Workflow Purge task and run the task. You will notice that the card has a green indicator, meaning
Success.
74
Extra credit exercise: Successfully run the Audit log Maintenance Task
Using the same methodology as Exercise 8.4 and the com.adobe.cq.audit.purge.Scheduler, configure the Audit
Log Maintenance task to run successfully.
75
Exercise 8.4 Configure Health Reports to Check Bundle Status
1. Navigate to AEM Home > Tools > Operations > Health Reports.
2. Check the Active Bundles card in the Health Reports.
3. After the “vanilla” installation (out-of-the-box settings) with Adobe Experience Manager, the status of this card should
be OK (Green card).
4. Click the card to ensure that there are no inactive or unresolved bundles.
3. Return to the Health Reports and refresh the page. You will notice that the Active Bundles card has changed to yellow
(WARN).
76
You can also configure the Active Bundles Health Check to monitor the status a specific set of bundles.
4. Navigate to AEM Home > Tools > Web Console > Configuration Manager.
5. Find the Adobe Granite Active Bundles Health Check.
Pro Tip: There is a short cut to go directly to the Adobe Granite Active Bundles Health Check bundle from the
Active Bundles Health Check. Click the Configuration button on the Active Bundles card as shown.
6. For testing purposes, you can quickly fill in the form in the Web Console configuration tab, but it is preferable to use a
node of type sling:OsgiConfig with the appropriate name and properties as described in the following tables.
Node:
Node Type sling:OsgiConfig
Name com.adobe.granite.bundles.hc.impl.InactiveBundlesHealthCheck
Properties:
hc.tags String[]= “” (leave this blank)
ignored.bundles String[]= org.apache.sling.jcr.webdav
77
7. Return to the Health Reports and you will notice that the Active Bundles card has returned to the green OK status:
The OK status is reached because you specified that the org.apache.sling.jcr.webdav bundle be ignored.
Congratulations! You successfully used the Operations dashboard to check the status of your AEM instance
concerning the ‘Active Bundles’, and you have learned how to configure the health check bundle associated
with this card.
A Composite Health Check's role is to aggregate a number of individual Health Checks sharing a set of common
features. For instance, the Security Composite Health Check groups together all the individual health checks
performing security checks.
You can create custom composite Health Checks by configuring the Composite Health Check OSGi component.
78
Exercise 8.5 Working with Security Checks
1. Navigate to Tools > Operations > Health Reports > Security Checks. You will see some cards for a number of key
security points. Note the disclaimer as it is important to realize that there is more to security than what you find in the
dashboard. For more help on this point, you should consult the online documentation as concerns the Security
checklist:
https://docs.adobe.com/docs/en/aem/6-2/administer/security/security-check- list.html
Most of the cards in Security Checklist dashboard are in yellow WARN status.
79
2. Notice that the Default Logins Accounts card is one of the Security Checks with WARN status. Click it.
3. Click on the Default Logins card to see a diagnosis and Hint for solutions.
80
c. Click the Change Password link.
d. Modify the password.
NOTE: Do not forget the password! This is the new administrator password!
81
NOTE: This is the only item you should configured directly in the Web Console.
8. Return to the Security Checks page in the Dashboard. The Default Logins card is now green (OK status).
82
Congratulations! You consulted the Security Checks dashboard, addressed some of the points in the Security
checklist to change the status of the Default Login’s security card, and learned about the Security checklists.
83
Chapter 9 - Replication
Overview
Replication, activation, and publish are three terms that have been used interchangeably describe the process of
transferring data in the forward direction from one AEM instance to another: typically, from an AEM author
instance to one or more AEM publish instance(s), in response to a content author’s Publish action. The Publish
action triggers the replication agent(s) to start the replication process.
Publishing a page or an asset typically means making that page or asset available on the publish instance(s),
your public website. Pages and assets can also be unpublished, which means removing the page/asset from the
publish instance (public website), but leaving it available on the author instance. Pages and assets can also be
deleted from the author instance, which automatically removes them from the publish instance.
Publish/Unpublish/Delete requests are queued to the replication agents for processing. Replication agents are
central to Adobe Experience Manager (AEM) as the mechanism used to:
Each replication can transfer content to one and only one endpoint. So if you have four Publish Instances, you
need to define four replication agents.
84
How the replication process works
As mentioned, replication typically means transferring content from author instance to publish instance in
response to a content author’s Publish action. However, in some cases it might be appropriate to define author-
to-author replication or even publish-to-publish replication. No matter the source or the target, the forward
replication process is the same.
1. Author requests that certain content be published (activated); this can be initiated by a manual request, or
by automatic triggers that have been preconfigured.
2. Request is passed to the appropriate default replication agent(s); an environment can have several default
agents, which will always be selected for such actions.
3. Replication agent "packages" the content and places it in the replication queue.
4. Content is lifted from the queue and transported to the publish environment using the configured protocol;
usually this is HTTP.
5. Servlet in the publish environment receives the request and publishes the received content; the default
servlet is: http://localhost:4503/bin/receive
85
Replication Agents available out-of-the-box
The following replication agents are available out-of-the-box for a standard AEM instance:
Default Agent
Static Agent
This is an "Agent that stores a static representation of a node into the filesystem.".
For example with the default settings, content pages and dam assets are stored under /tmp, either as HTML or
the appropriate asset format. See the Settings and Rules tabs for the configuration.
This was requested so that when the page is requested directly from the application server the content can be
seen. This is a specialized agent and (probably) will not be required for most instances.
Used to integrate with Adobe Test and Target. This agent is not enabled by default and must be enabled on the
author instance when using Adobe Test and Target as a targeting engine for targeted content.
86
Dynamic Media Hybrid Image Replication (s7 delivery)
Used to publish Dynamic Media assets such as images, video metadata, and sets to the Adobe-hosted Image
Service. The Replication Agent is not enabled by default.
Configuration.
Using the Replication Agent Overview pages, you can examine the
87
• Its queue
In addition to monitoring the replication agents, you can use the agent overview pages to refresh the display,
pause the display of queue entries, access the replication log for that agent, force a replication retry, and clear
the queue.
88
When configuring a replication agent from the Tools console, five tabs are available within the dialog:
• Settings: Specifies Agent properties, such as Name, Description, Serialization Type, Retry delay, etc.
• Transport: Specifies target listener service location, access information, etc. The transport tab supports
definition of only one destination.
89
1. Proxy: Specifies proxy information
90
3. Triggers: Specifies triggers which cause this agent to run, such as On Modification, On Receive, etc.
4. Batch: Specifies Batch properties, such as Trigger size, Max Wait time, etc.
91
For more information about the details of the configuration tabs of the replication agents, refer to the following URL:
Configure the replication agents from the Tools tab in the author environment, whether the agents will eventually
run in the author environment or the publish environment. If you are configuring an agent that will be enabled and
run in the publish environment, you configure the agent and then publish/activate/replicate the agent to the publish
instance.
92
Exercise 9.1 Examining a Replication Agent Overview page
In this exercise, you will examine the state, status, and destination for a replication agent.
4. Expand Replication and select Agents on Author in the left-hand browser tree.
5. In the right-hand pane, double-click Default Agent to open the overview page. This is the forward
replication agent.
6. Notice the state and status of the agent.
7. Notice the destination: the endpoint to which this agent will replicate content:
http://localhost:4503/bin/receive?sling:authRequestLogin=1
9. Click on View Log to examine the replication log for this agent.
Congratulations! You now know how to monitor a replication agent, test the connection to its destination, and view
its log.
93
Exercise 9.2 Publishing a page and understand what the replication agent does
In this exercise, you will publish a page and then open the replication log to examine what happened.
5. Navigate to AEM Home > Tools > Configuration and open the Default Agent overview page.
6. Click View Log.
Congratulations! You now know how to use the replication agent log to investigate replication actions.
94
Exercise 9.3 Configure Replication for Two Publish Instances
In order to publish to two publish instances, you need two forward replication agents, one for each publish instance.
Start by creating an additional replication agent.
6. Click Paste in the toolbar. In the dialog, change the name to publish1. Leave all other defaults unchanged.
7. Click in the Title field of the new Default Agent and change the name to Publish2.
8. Click Enter and click Yes.
The Default Agent is replicating to http://localhost:4503. Since you copied the Default Agent, you must configure the
new replication agent to replicate to a different publish instance.
12. In the URI field, change the port number to 4505. Leave all other defaults unchanged.
NOTE: The system is smart enough to know that the Men’s page has not been modified since it was last
published, so DO NOT publish the Men’s page again.
95
3. Open the overview page for the Default Agent. Notice the queue is empty and the status is “idle”.
4. Open the overview page for the Publish2 agent. Notice there are items in the queue and the status is
“blocked”.
96
6. Click Test Connection.
7. The Publish2 agent could not replicate because there is no publish instance listening on port 4505. You
need to start a second publish instance listening on port 4505.
8. Using the same method that you used earlier, create a second publish instance. For example:
11. Once the second publish instance is up and listening, you should see the replication agent’s queue empty.
97
12. Congratulations! You now know how to create additional replication agents.
Activate Tree
From the Sites view of AEM you can publish individual pages. Sometimes you may need to publish an entire
sub-tree of your website at once. The AEM Activate Tree tool provides the capability to activate an entire tree in
one action. You will find Activate Tree by navigating to AEM Home > Tools > Operations > Replication >
Activate Tree.
The Activate Tree tool allows you to choose the tree you want to activate and then perform a dry run to test
what will happen during the replication process. You will also notice the three options that will control what
gets replicated/activated. If checked, the options enable the following rules:
• Only Modified: Activate only content that has been modified since it was last published/activated.
• Only Activated: Activate only content that has been published previously.
• Ignore Deactivated: Do not activate content that has been previously deactivated.
98
Exercise 9.4 Activate Tree
1. Verify that an author instance is running.
2. Verify that a publish instance is up and listening on port 4503.
3. In the author instance, navigate to AEM Home > Tools > Operations > Replication.
4. Double-click on Activate Tree in the left-hand navigation tree to open the Activate Tree page.
5. Enter /content/geometrixx/en into the Start Path field. Leave other defaults unchanged.
99
6. Click Dry Run to test the activation of the tree.
7. Click Activate.
Administer and Securely Maintain Adobe Experience Manager v.6.x Student Guide 100