AD0-E137 Adobe Experience Manager Assets Developer Practice Questions
Prepare for AD0-E137 with more than an answer.
- Exam fee
- $225 USD
- Level
- Expert
- Valid for
- 2 years
Domains covered on the exam 4
- Configurations22%
- AEM Development40%
- Build and Deployment18%
- Environment Maintenance20%
- 1
A project team is planning a repository migration from CRX2 to Oak as part of an AEM 6.0 to 6.5 upgrade. Which Adobe-provided tool is specifically designed to facilitate this repository migration process?
Show answer details
Correct answer: B
The CRX2Oak tool is a command-line Java utility specifically created by Adobe to migrate content from older CRX2-based AEM versions (AEM 6.2 and earlier) to the new Oak repository structure used in AEM 6.3 and later. It handles the transformation of repository data, version histories, and datastores. It is an essential part of the upgrade process for older AEM instances.
- 2
During a dispatcher health check, an administrator notices that authenticated user traffic is being cached, leading to users seeing personalized data belonging to others. The goal is to prevent any caching for requests that contain an authentication cookie named
login-token. Which dispatcher farm configuration rule will achieve this?Show answer details
Correct answer: D
The
/cache /rulessection determines what is cachable. To prevent caching based on the presence of a request header (like a cookie), you must create a rule that inspects the headers. The configuration/headers { /glob "*login-token*" /type "deny" }instructs the dispatcher to check if any header contains the stringlogin-token. If it does, the/type "deny"directive prevents that request from being cached. This is the correct and secure way to handle authenticated sessions. - 3
A developer is building a Sling Model for a component. The model needs access to the current
Pageobject to retrieve the page title. Which annotation should be used to inject the current page directly into a field of typecom.day.cq.wcm.api.Page?Show answer details
Correct answer: C
The
@ScriptVariableannotation allows injection of objects that are typically available in scripting environments like HTL. ThecurrentPageobject is one of these standard script variables. By using@ScriptVariable(name="currentPage"), a developer can directly inject thePageobject corresponding to the component's context into the Sling Model. - 4
A client has a requirement for a custom workflow process step that archives a page payload to an external system via a REST API call. The external system is sometimes unavailable, so the step must be able to retry the operation several times before failing. How can a developer implement this retry logic within the workflow step?
Show answer details
Correct answer: D
The correct way to handle temporary, recoverable failures in a workflow process step is to use the Granite Workflow API's requeue mechanism. The developer can catch the exception from the external API call, increment a retry counter in the workflow's metadata, and if the retry limit is not exceeded, call
workflowSession.requeue(workItem). This puts the item back in the workflow processing queue to be tried again later, without blocking the workflow engine thread. Throwing aWorkflowExceptionwill terminate the step, not retry it. - 5
A developer is using the AEM SPA Editor with a React application. They need to make an AEM container component's content editable from within the SPA. Which TWO steps are essential to achieve this? (Select TWO)
sequenceDiagram participant SPA participant AEMPageModel participant AEMComponent SPA->>AEMPageModel: Request JSON for page AEMPageModel-->>SPA: Return page structure & content SPA->>AEMComponent: Map JSON to React Component AEMComponent-->>SPA: Render ComponentShow answer details
Correct answer: B, C
The
withMappableHOC from the Adobe SPA libraries is crucial for making a component editable. It injects the necessary authoring attributes and functionality into the React component's DOM.The
Containercomponent from the Adobe library is specifically designed to render the child components of an AEM container. It iterates over the child items in the JSON model and uses the component mapping to render them, while also providing the placeholder for authors to add new components. - 6
A financial services client is implementing a multi-tenant AEM as a Cloud Service solution. To maintain security and performance isolation, they require that each tenant's dispatcher cache invalidation only affects that specific tenant's content. Which dispatcher configuration setting is most critical to achieve this granular invalidation?
Show answer details
Correct answer: B
The combination of a unique document root for each tenant's site (e.g.,
/var/www/html/tenantA) and a/statfileslevelthat corresponds to the depth of the site structure within that docroot ensures that auto-invalidation via .stat file creation is scoped only to that tenant's directory tree. When content is activated for tenantA, the .stat file is touched only within tenantA's hierarchy, leaving tenantB's cache untouched. Setting/statfileslevelto 0 disables auto-invalidation, which is incorrect. Using/virtualhostshelps with domain mapping but doesn't inherently solve cache invalidation isolation. Unique cache roots are a part of the solution but are ineffective without the correct/statfilesleveland unique docroots. - 7
A developer is creating a custom OSGi service that needs to behave differently in author and publish environments. The service requires a specific external API endpoint URL which varies per environment. What is the AEM best practice to manage this environment-specific configuration?
Show answer details
Correct answer: C
The AEM standard for managing environment-specific OSGi configurations is to use run mode-specific config folders. By creating
config.authorandconfig.publishfolders within the project's/apps/my-project/directory, AEM will automatically apply the correctorg.acme.MyService.cfg.jsonfile based on the active run mode of the instance. This approach avoids hardcoding, keeps configuration out of the code, and is the standard deployment practice for AEM projects. - 8
During a performance audit of an AEM Sites implementation, a consultant discovers that a frequently used query to find articles by a custom metadata tag (
acme:tags) is consistently slow and appears in theslow-queries.log. The current repository does not have a custom index for this property. What is the most effective method to resolve this performance issue?Show answer details
Correct answer: B
For queries that filter by a specific property value, creating a custom Oak property index is the standard and most efficient solution. By defining an
oak:indexnode (e.g., under/oak:index/acmeTags) withtype='property',propertyNames=['acme:tags'], andreindex=true, the Oak repository will build an index that allows for rapid lookups based on that property, drastically improving query performance and avoiding costly repository traversals. Using a Lucene index is more suitable for full-text search. Modifying the query without an index won't solve the underlying traversal issue. Increasing heap size is a temporary fix for memory issues, not slow queries. - 9
An organization needs to integrate their on-premise Active Directory with AEM for user authentication. The security team requires that the integration uses a standard, secure protocol and that AEM does not store user passwords. Which AEM authentication handler should be configured to meet these requirements?
Show answer details
Correct answer: C
The LDAP (Lightweight Directory Access Protocol) Identity Provider is the specific AEM OSGi configuration designed to integrate with directory services like Active Directory. It allows AEM to delegate authentication to the external LDAP server, meaning AEM never stores the passwords. It also supports user and group synchronization, fulfilling the typical requirements for enterprise integration with Active Directory.
- 10
A developer needs to create a complex AEM component that displays aggregated data from several child resources. The business logic requires iterating over these children, performing calculations, and then exposing the final computed values to the HTL script. What is the most appropriate and maintainable approach to implement this logic?
Show answer details
Correct answer: B
Sling Models are the recommended best practice for encapsulating business logic for AEM components. Using a Sling Model allows for clean separation of concerns, moving complex logic out of the presentation layer (HTL). By using annotations like
@ChildResourceand a@PostConstructinit method, the model can efficiently access JCR data, perform necessary computations, and expose the results through simple getter methods, which can then be easily accessed in HTL. This approach is highly testable, maintainable, and scalable.
