AEM Sites Developer - Certified Expert AD0-E116 Flashcards
A custom lucene index that you set up isn’t being used for queries as epxected. What is the index config missing?
A. includedPaths property
B. queryPaths property
B.
queryPaths
“Path restrictions of queries are only checked against queryPaths”
https://jackrabbit.apache.org/oak/docs/query/lucene.html#include-exclude
What are the downsides of an in place upgrade?
A. Lose content audit history
B. Takes time/Downtime
C. Risk of data loss because it’s not a copy of the environment
D. Complexity
E. Limited ability to roll back
B, C, D, E
Most of these are right: https://experienceleague.adobe.com/docs/experience-manager-65/deploying/upgrading/in-place-upgrade.html?lang=en . In-place upgrade is where you run the upgrade on an existing instance. It’s cost-effective if you’re paying per-instance, but the downsides are you have to take your current instance down while the upgrade is in progress, and you won’t have time to test the new version side-by-side with the old.
If you want an a sub-component that can be added as a child of the Embed component, what sling:resourceSuperType and component group should your component have?
resourceSupertype should be core/wcm/components/embed/v1/embed/embeddable
, componentGroup is .hidden
The real exam question will list code samples of the component
https://github.com/adobe/aem-core-wcm-components/blob/main/content/src/content/jcr_root/apps/core/wcm/components/embed/v1/embed/embeddable/.content.xml
What is the default import mode for A/C Handling?
A. Merge
B. Ignore
C. Overwrite
D. Replace
B.
Default AC handling mode is ignore
https://experienceleague.adobe.com/docs/experience-manager-65/administering/contentmanagement/package-manager.html?lang=en#advanced-settings
How do you limit the number of concurrent workflow jobs (for bulk image upload, for example)
Configure Queue: Granite Workflow Queue
or
Configure the queue can from the Sling Jobs option of the AEM Web console; for Job Queue Configuration: Granite Workflow Queue, at http://localhost:4502/system/console/slingevent.
https://experienceleague.adobe.com/docs/experience-manager-64/developing/extending-aem/extending-workflows/workflows-best-practices.html?lang=en
What Omni channel features in AEM cloud CANNOT help serve assets to a mobile app or SPA from a headless instance?
A. Graph QL
B. Content services
C. Sling models for Content fragments and experience fragments
D. Assets HTTP API
E. Adobe I/O
C.
Sling Models don’t exist for Experience Fragments.
Assets API enables CRUD operations; good for managing assets. Graph QL is great for serving up Content Fragments or creating compiling data from CFs and pages. Content Services are authorable, and can serve up Experience Fragments or pages. Assets API can serve up images and CFs, can also be used to manage content. Adobe I/O Runtime can export published content from AEM as JSON and push it to other external cloud services.
https://blog.developer.adobe.com/headless-commerce-content-management-with-aem-i-o-runtime-87c315283b74
What is the best way to implement an event-driven data layer?
Adobe Client Data Layer
https://experienceleague.adobe.com/docs/experience-manager-learn/sites/integrations/adobe-client-data-layer/data-layer-overview.html?lang=en
Best way to share read only assets between instances?
A. Asset Link Share
B. Connected assets.
Connected Assets
Connected Assets https://experienceleague.adobe.com/docs/experience-manager-65/assets/using/use-assets-across-connected-assets-instances.html?lang=en.
Asset Link is used to integrate AEM Creative Cloud (Photoshop, Illustrator, etc) with AEM Assets
A custom AEM application contains Bundle A and Bundle B. Bundle A has a dependency to Bundle B via Import-Package.
How can both bundles be deployed most efficiently across all environments?
A. Use the Felix Web Console to upload the bundles in the correct order.
B. Create one content package per bundle and use a package dependency to ensure installation order.
C. Embed both bundles in one content package and use property ‘installationOrder’ in package
properties for correct bundle installation order.
D. Embed both bundles in one content package: the dependency via Import-Package is enough to
ensure correct installation.
D
OSGI will ensure dependency order while bundles are in Resolved state
If BundleA requires classes from BundleB and OtherBundle, adding Import-Package and Export-Package metadata in the MANIFEST.MF of all bundles should be sufficient.
BundleA MANIFEST.MFImport-Package: my.required.package.from.b, other.package.in.b, other.package
BundleB MANIFEST.MFExport-Package: my.required.package.from.b, other.package.in.b
OtherBundle MANIFEST.MFExport-Package: other.package
https://stackoverflow.com/a/35181295
Where do context-aware configs live?
Context-Aware configs are located at:/conf/<my-site>/sling:configs/<my-configuration>
https://experienceleague.adobe.com/docs/experience-manager-core-components/using/developing/context-aware-configs.html?lang=en
Your site may need different configurations for different sites regions for instance where some parameters may be shared requiring inheritance for nested contexts and global fallback values. AEM leverages Sling context aware configurations, which enable this possibility.
“The application needs different configuration for different sites, regions and tenants = different contexts.”
After an in-place upgrade, the acs commons bundle isn’t starting. What is the cause?
Uninstall the package and add ACS Commons and a maven depencency
NEED CONFIRMATION on question, but I think this is the correct answer
https://adobe-consulting-services.github.io/acs-aem-commons/pages/maven.html
How is the Pattern Detection Tool used for in-place upgrades?
The pattern detection tool can be used to determine the complexity of an upgrade.
This feature allows you to check existing AEM instances for their upgradability by detecting patterns in use that:
Violate certain rules and are done in areas that will be affected or overwritten by the upgrade
Use an AEM 6.x feature or an API that is not backwards compatible on AEM 6.4 and can potentially break after upgrade.
This could serve as an assessment of the development effort that is involved in upgrading to AEM 6.4.
https://experienceleague.adobe.com/docs/experience-manager-64/deploying/upgrading/pattern-detector.html?lang=en
A developer wants to change the log level for a custom API.
Which OSGi configuration should the developer modify?
A. Apache Sling Logging Configuration
B. Apache Sling Log Tracker Service
C. ApacheSling Logging Writer Configuration
D. Adobe Granite Log Analysis Service
A.
Apache Sling Logging Configuration
https://experienceleague.adobe.com/docs/experience-manager-65/deploying/
A custom AEM application is using the PageManager API. What should a developer add to make the application compile and run correctly in AEM?
A. a maven dependency to AEM uber-jar to the content package
B. a maven dependency to bundle cq-wcm-core to the application bundle
C. a maven dependency to AEM uber-jar to the application bundle
D. a maven dependency to bundle cq-wcm-api to the content package
C.
Add a maven dependency to AEM uber-jar to the application bundle
Refer to thefollowing four Client Library Folders
One- categories="[library.one]"
- dependencies="[library.three, library.four]"
- embed="[library.two]"
Two- categories="[library.two]"
Three- categories="[library.three]"
- dependencie="[library.four]"
Four- categories="[library.four]"
A developer uses the following:
html<data-sly-call="${clientlib.css @ categories='library.one'}" />
What is the resulting HTML?
A. <link rel="stylesheet" href="library.two.css" >
<link rel="stylesheet" href="library.three.css" >
<link rel="stylesheet" href="library.four.css" >
B. <link rel="stylesheet" href="library.two.css" >
<link rel="stylesheet" href="library.one.css" >
<link rel="stylesheet" href="library.three.css" >
C. <link rel="stylesheet" href="library.four.css" >
<link rel="stylesheet" href="library.three.css" >
<link rel="stylesheet" href="library.one.css" >
D. <link rel="stylesheet" href="library.three.css" >
<link rel="stylesheet" href="library.four.css" >
<link rel="stylesheet" href="library.one.css" >
C.
<link rel="stylesheet" href="library.four.css" >
<link rel="stylesheet" href="library.three.css" >
<link rel="stylesheet" href="library.one.css" >
This has been tested and confirmed on a local instance.
The dependencies will render first, then the main clientlib. Embedded clientlibs are compiled into the rendered css/scripts and aren’t rendered as separate link elements. Clientlib One lists library.three
as a dependency first, but because library.four
is a dependency of library.three
, it is rendered first.
https://experienceleague.adobe.com/docs/experience-manager-65/developing/introduction/clientlibs.html?lang=en
AEM is installed in $AEM_HOME.
In which subfolder are the command line startup and shutdown scripts located?
A. $AEM_HOME/
B. $AEM_HOME/crx-quickstart/scripts
C. $AEM_HOME/crx-quickstart/opt/
D. $AEM_HOME/crx-quickstart/bin/
D
Confirmed on local instance
A developer is working on the following Sling Model that is being used in a component.
@Model(adaptables = SlingHttpServletRequest.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL) public class SampleModel { @Inject private Page currentPage; private boolead matchingTitle; @PostConstruct private void init(){ matchingTitle = title.equals(currentPage.getName()); } public boolean isMatchingTitle(){ return matchingTitle; } }
The model must check if the configured value of the jct:title property for the component matches the
same name of the current page. If the jcr:title property of the component has NOT been configured, then
isMatchingTitle() must return false.
How should the developer inject the title property in this model?
A. “@ValueMapValue @Via(““jcr:title””) @Required private String title;”
B. “@ValueMapValue @Named(““jcr:title””) @Default(values = “”””) private String title;”
C. “@ValueMapValue @Named(““jcr:title””) @Required private String title;”
D. “@ValueMapValue @Via(““jcr:title””) @Default(values = “”””) private String title;”
B.@ValueMapValue @Named(""jcr:title"") @Default(values = """") private String title;
This question may be outdated.
The current way the annotations are written are as follows:@ValueMapValue(name = "jcr:title", injectionStrategy = InjectionStrategy.OPTIONAL)
private String title
https://sling.apache.org/apidocs/sling8/org/apache/sling/models/annotations/injectorspecific/ValueMapValue.html
https://sling.apache.org/documentation/bundles/models.html
A Client-Side Library has the category “library.example”.
Which HTL statement should a developer use to reference only the CSS files of this Client-Side library
A. <sly data-sly-use.clientlib="/libs/granite/sightly/templates/clientlib.html" data-sly-call="${clientlib.css @ categories='library.example'}"/>
B. <sly data-sly-use.clientlib="/libs/granite/sightly/templates/clientlib.html" data-sly-call="${clientlib.css @ category='library.example'}"/>
C. <sly data-sly-use.clientlib="/libs/granite/sightly/templates/clientlib.html" data-sly-call="${clientlib.all @ type='css' categories='library.example'}"/>
D. <sly data-sly-use.clientlib="/libs/granite/sightly/templates/clientlib.html" data-sly-call="${clientlib.all @ categories='library.example.css'}"/>
A.<sly data-sly-use.clientlib="/libs/granite/sightly/templates/clientlib.html" data-sly-call="${clientlib.css @ categories='library.example'}"/>
https://experienceleague.adobe.com/docs/experience-manager-htl/content/getting-started.html?lang=en#common-patterns-with-htl