
Explore advanced Adobe Experience Manager concepts like servlets and debugging. Master the query builder, content fragments, experience fragments, GraphQL, and the dispatcher.
Clone beginner course repository, set up the am instance, build with m n clean install hyphen p auto install package, and import the project into Eclipse to begin first module.
Learn how Sling servlets in Adobe Experience Manager handle http requests for content creation and retrieval, with resource type or path registration and safe vs all method distinctions.
Understand how resources represent content in AEM and how the resource resolver maps URLs to JCR content, enabling dynamic access, creation, and querying of pages, assets, and components.
Explore how a sling servlet is bound to a resource type, use selectors to differentiate multiple servlets, and map requests via JCR content to access resource properties.
Learn how a servlet is invoked through an inherited resource type by updating the sling resource super type to practice/components/page and using the tutorial template.
Register a sling servlet by path in Adobe Experience Manager by duplicating the servlet and changing its annotation from resource types to paths, and configure allowed paths in Config Manager.
Convert a get servlet to post by changing the method to post, changing do get to do post, updating the link and selector to am-tutorial-post, and testing with postman.
Learn debugging techniques in AEM using browser tools network tab and console to verify servlet responses, distinguish backend from frontend issues, and log with levels info, error, and debug.
Learn to start your AEM instance in debug mode by configuring the start script for four GB heap, enabling remote debugging on port 30303, and using breakpoints to inspect data.
Debug common servlet issues by checking Java errors in your editor, ensuring the active bundles, and validating servlet properties like resource types, methods, and selectors with the debugger.
Leverage Adobe Experience Manager's Sling and JCR APIs to manage resources, sessions, nodes, and properties. Use Page Manager and WCM API for authoring and publishing pages and components.
Create a servlet component and call a Sling servlet from it via an Ajax request, using a client library and jQuery dependency, and author header, title, and approve button label.
Demonstrates when to use get and post servlets with approve and reject buttons, showing how to pass data via post and via query strings, and comparing get versus post usage.
Explore how AEM's query builder enables complex JCR searches using maps or JSON, filtering by path, type, and properties, with pagination and a testing console.
Learn how to use the Query Builder API to query the JCR repository by building a servlet, defining a predicates map, and retrieving hits to display results.
Use the Query Builder API to process hits, convert results to a JSON array, build page objects with paths, and return a JSON response while managing resources.
Create a query component servlet, define a selector, and use AEM's Query Builder UI to locate pages authored with that component, testing predicates and refining the path for efficient results.
Discover how indexing in AEM speeds queries by using query builder and the Java Content Repository, and compare synchronous and asynchronous indexing with Lucene, property, full text, and solar indexes.
Create a Lucene index for the sling resource type property, specifying include paths, evaluate path restrictions, and async updates; reindex and verify using explain query in the Query Builder.
Explore the full codebase for current and future modules in the GitHub repository linked in resources, and clone it to debug and reference any servlet or class when you’re stuck.
Explore how content fragments in Adobe Experience Manager enable structured, headless content that can be reused across websites, mobile apps, and more by decoupling content from presentation and supporting versioning.
Create a content fragment model in Adobe Experience Manager to serve as a template for football player data, with fields for name, age, position, clubs, and country.
Create and organize content fragments from a content fragment model in AEM, store them under dam, and render with the content fragment component on pages, using variations.
Discover exporting content fragments as json using out-of-the-box content services, the asset api, and a custom servlet with query builder predicates to retrieve all players data.
Continue building a servlet to export content fragment data as json. Retrieve each hit resource, access the master node, filter unused properties, and assemble a json with titles as identifiers.
Harness GraphQL to query content fragments efficiently, retrieving only the needed data in a single request and supporting omnichannel delivery with nested, reusable fragments.
Explore the importance of experience fragments as reusable, templated components with multiple variations across channels and platforms, reducing copy-paste and enabling omnichannel commerce.
Create a custom experience fragment in Adobe Experience Manager using the web variation, integrate a header navigation component, and build a tutorial page to compare experience fragments with content.
Compare experience fragments and content fragments in AEM, noting that experience fragments include content and design for multi-channel reuse, while content fragments provide data for headless delivery via GraphQL.
Explore how Adobe Experience Manager uses users and user groups to manage permissions and access, with marketing and legal groups illustrating role, read, write, and publish controls.
Explore the Adobe Experience Manager publish environment, contrasting author and publish run modes, testing, and replication to ensure live, performance-optimized delivery.
Understand how replication in AEM moves content from author to publish using replication agents, queues, and HTTP transport, with cache clearing on the dispatcher and handling user submissions.
Explore Adobe Experience Manager workflows to automate content management, approvals, and asset lifecycles, and learn about workflow models, steps, participants, launchers, and the workflow console for tracking and auto assign.
Demonstrates building an AEM workflow model with marketing and legal review stages, a manual task, and automated publish via activate page, plus model syncing for launcher automation.
Configure workflow launchers in AEM to automatically trigger workflows on events like page creation, modification, or deletion, by constraining node types and paths and linking a workflow model.
Learn to trigger a workflow programmatically in AEM via a path-based servlet, using a resource resolver and workflow session to start a workflow with a payload and monitor its status.
Use an or split to pick a single workflow branch from multiple conditions, such as marketing review leading to optional legal review before publish.
Design a custom workflow process step in AEM to email a page link after publish, using a skeleton class, an OSGi component, and workflow data handling.
Configure a local fake smtp server, set localhost:25 in the mail service, and add a custom workflow process step for email notification to verify via a test email.
Modify the page publication process to trigger the page review workflow only on publish, disable quick publish, and route publications through a customized manage publication wizard.
Explore how the dispatcher, a cache and load balancing tool for Adobe Experience Manager, acts as a reverse proxy, caches content, and distributes traffic to improve performance, security, and scalability.
Set up the dispatcher with docker for am as a cloud service, validate configurations with the validator cli, and run the container to access 8080 via localhost.
Learn an alternative, local dispatcher setup for Adobe Experience Manager 6.5 using docker, with steps to build and run an easy docker dispatcher, adjust dispatcher.conf, and debug dispatcher rules.
Explore dispatcher modules and folder structure, including available and enabled vhosts, includes, mod_security, rewrites, variables, and farms, plus cache, headers, filters, renders, and vhost mappings.
Track how a request moves from the dispatcher vhost conf through the dispatcher module to the AEM instance, guided by farms, filters, caching, render rules, rewrites, and security checks.
Learn how redirects and rewrites in an AMP project using AEM work, including 301 and 302 redirects, rewrite rules, and vanity URLs to improve SEO, usability, and content organization.
Explore how dispatcher filters control access, caching, and request forwarding in the AEM dispatcher, detailing rule types, patterns, selectors, and default filters to optimize security, performance, and load management.
Explains virtual hosts in AEM and how to map multiple domains to content paths using vhost files, host entries, and rewrite rules for local testing.
Debug advanced AEM issues by reproducing the problem locally, publishing content fragments and their model from author to publish, updating dispatcher rules, and validating JSON data via Postman.
Entering the world of Adobe Experience Manager (AEM) can be daunting due to the vast array of concepts, many of which might not seem immediately relevant.
From my own experience, navigating AEM often feels overwhelming, with limited structured resources to guide learners effectively.
To address this, I created a beginner-friendly Udemy course titled "Adobe Experience Manager | AEM Developer Masterclass." Building on that foundation, I’ve now developed an advanced course designed to elevate your knowledge to the next level.
Why Choose This Course?
This course is thoughtfully crafted to cover the most critical advanced concepts essential for any AEM developer. Its structured approach is tailored to instill confidence in beginners tackling complex tasks while also providing intermediate learners with a deep dive into key topics.
I’m committed to supporting you throughout your learning journey. You can post questions directly in the course or message me, and I’ll happy to help you out.
Course Overview:
Here’s what you’ll learn in this advanced course:
Servlets:
Understand different ways to register servlets.
Dive into advanced servlet modules, including working with AEM APIs and calling servlets from components.
Debugging in AEM:
Learn debugging techniques and how to start AEM in debug mode.
Advanced debugging techniques with publish and dispatcher.
Query Builder:
Explore the Query Builder tool and API.
Learn about indexing, its types, and creating custom indexes for queries.
Content Fragments:
Work with content fragments and models.
Export content fragment data as JSON and integrate it with GraphQL.
Understand experience fragments and their differences from content fragments.
Users and Groups:
Create users and user groups locally.
Set up a publish environment and configure a replication agent.
Workflows:
Build custom workflows and explore features like launchers, OR splits, and branches.
Create custom workflow process steps and modify the page publication process to include custom workflows.
Dispatcher Module:
Learn about the dispatcher’s role in AEM.
Set up a local dispatcher and explore modules like redirects, rewrites, filters, and virtual hosts.
Learn by Doing:
This course emphasizes hands-on learning. Each topic includes interactive exercises and lab sessions to ensure you gain practical experience and reinforce your understanding.
Prerequisites:
Basic knowledge of AEM, Java, and HTML.
Ideally, you’ve completed my beginner course: "Adobe Experience Manager | AEM Developer Masterclass."
Access to AEM as a Cloud SDK or JAR file.
AEM Version Used:
The course uses the latest version of AEM as a Cloud Service.
Without further ado lets begin our learning!
Cheers,
Nimith