MMadhusudhanGinaemdeepdive.hashnode.dev·Sep 12 · 4 min readAEM Project Structure ExplainedSeries: AEM Foundations — Part 5 When you generated a project from Adobe's Maven archetype earlier in this series, it created several modules with cryptic-looking names — core, ui.apps, ui.content, ui00
MMadhusudhanGinaemdeepdive.hashnode.dev·Sep 12 · 4 min readUnderstanding Sling: Resource Resolution & Request LifecycleSeries: AEM Foundations — Part 4 AEM is built on top of Apache Sling, a web framework that takes a fundamentally different approach to handling requests than typical Java web frameworks. If you've wor00
MMadhusudhanGinaemdeepdive.hashnode.dev·Sep 12 · 4 min readSetting Up a Local AEM SDK Dev EnvironmentSeries: AEM Foundations — Part 3 Before you can build components, write Sling Models, or test anything discussed in this series, you need a working local AEM environment. This post walks through getti00
AGAnudeep Garnepudiinadapttoaem.hashnode.dev·Feb 7 · 4 min readEmbed-Dependency and How to Embed Third-Party JARs in AEMEmbed-Dependency allows you to include external JARs inside your bundle, effectively making them part of your bundle at runtime. It’s similar to “shading” in standard Maven builds, but OSGi-aware. ⚠️00
AGAnudeep Garnepudiinadapttoaem.hashnode.dev·Feb 5 · 6 min readbnd-maven-plugin ConfigurationWhat exactly is a Maven plugin? A Maven plugin is a collection of goals that perform actual work during a build. Maven itself is just a framework + lifecycle.Plugins do everything: compile, test, pac00
AGAnudeep Garnepudiinadapttoaem.hashnode.dev·Jan 31 · 5 min readThread Safety in AEMThread safety in AEM means ensuring that request-scoped objects (such as ResourceResolver, Session, and Resource) are never shared across threads. AEM handles many requests concurrently, and many core00
AGAnudeep Garnepudiinadapttoaem.hashnode.dev·Jan 31 · 4 min readHow to Use Non-Thread-Safe AEM Objects SafelyJCR and Sling objects are contextual views, not reusable services. They represent: A user A request A moment in time So the rule is simple: Acquire late → Use briefly → Release early 1. Resou00
AGAnudeep Garnepudiinadapttoaem.hashnode.dev·Jan 21 · 6 min readSling Servlets in AEM - Complete GuideIn the previous post, we explored Sling Resource Resolution, which forms the foundation of how AEM maps HTTP requests to content. In this post, we’ll dive into Sling Servlets, the next key building bl00
AGAnudeep Garnepudiinadapttoaem.hashnode.dev·Jan 21 · 6 min readadaptTo() in Apache Sling: How It Works, When to Use It, and All Possible AdaptationsIn Apache Sling and AEM, adaptTo() is one of the most fundamental yet often misunderstood concepts. Almost every advanced feature in AEM like Sling Models, JCR access, services, rendering - relies on 00
AGAnudeep Garnepudiinadapttoaem.hashnode.dev·Jan 21 · 3 min readUnderstanding ResourceResolver: Accessing Content Safely and EfficientlyIn Apache Sling, ResourceResolver is your gateway to content stored in the JCR. It is the primary API to access resources, navigate the content tree, and perform CRUD operations. Understanding how to 00