Adobe Experience Manager Sites Developer AD0-E134 Exam Questions

Page: 1 / 14
Total 50 questions
Question 1

On package install content that is already present in the repos must not be overwritten and if not present in the repos it must not be removed.

Which import mode should the developer use?



Answer : A

When installing a package in AEM and you want to ensure that existing content in the repository is not overwritten while ensuring that content not present in the repository is not removed, you should use the update import mode.

The update import mode performs the following actions:

It updates existing content nodes in the repository with the nodes from the package being installed.

It does not remove any existing nodes or properties in the repository that are not present in the package.

It adds any new nodes or properties from the package to the repository.

This mode is particularly useful when you want to preserve any manual changes or additions that might have been made to the repository content outside of the package installations.

Here's how you can specify the import mode during package installation:

Access Package Manager: Log into your AEM instance and navigate to the CRX Package Manager (e.g., http://localhost:4502/crx/packmgr/index.jsp).

Upload the Package: If the package is not already uploaded, click on 'Upload Package' and select the package file from your local system.

Install the Package: Click on 'Install' for the package you wish to install.

Choose the Import Mode: During the installation process, you will have the option to choose the import mode. Select update from the available options.

Complete Installation: Proceed with the installation. The content will be updated according to the rules defined by the update import mode.

By using the update mode, you ensure that your repository content is updated without losing any existing nodes or properties that are not part of the package.


Adobe Experience Manager Package Manager Documentation

AEM Import Modes

These steps ensure that you manage content updates in a controlled manner, preserving existing repository content while incorporating updates from the installed package.

Question 2

Which AEM dependency provides APIs for all AEM environments?

A)

B)

C)

D)



Answer : C

Option C is the AEM dependency that provides APIs for all AEM environments. Option C uses the uber-jar dependency with the provided scope and the classifier set to apis. The uber-jar dependency contains all the public Java APIs that are available in AEM. The provided scope indicates that the dependency is not required for runtime, as it is already provided by the AEM platform. The apis classifier indicates that only the API classes are included in the dependency, not the implementation classes. Reference: https://experienceleague.adobe.com/docs/experience-manager-cloud-service/implementing/developing/aem-project-content-package-structure.html?lang=en#project-dependencies https://helpx.adobe.com/experience-manager/6-4/sites/developing/using/htl/eclipse-setup.html


Question 3

In an AEM as a Cloud Service environment, which repository areas are considered as immutable?



Answer : C

In AEM as a Cloud Service environment, the repository areas /apps and /libs are considered as immutable, meaning that they cannot be modified at runtime by any means. These areas contain application code and configuration that are deployed via Cloud Manager and are read-only for security and performance reasons. Any changes to these areas require a new deployment via Cloud Manager. Reference: https://experienceleague.adobe.com/docs/experience-manager-cloud-service/implementing/deploying/overview.html?lang=en#repository-restrictions https://experienceleague.adobe.com/docs/experience-manager-cloud-service/implementing/developing/aem-project-content-package-structure.html?lang=en#repository-restrictions


Question 4

A new component called Page Headline needs to be implemented. The only difference to the title component delivered by Adobe's WCM core components is that the text needs to be taken from the current page title instead of jcr.title.

How should a developer implement this request?

A)

1. Create custom component

2. Implement Sling Modal as follows

B)

1. Create proxy component from the core title component

2. Implement sling Model as follows

C)

1. Create proxy component from the core title component

2. Implement Sling Model as follows



Answer : C

To implement a new component called 'Page Headline' which takes the text from the current page title instead of jcr:title, you should create a proxy component from the core title component and implement a Sling Model accordingly. Option C demonstrates the correct approach to achieve this functionality.

Here is a detailed explanation of Option C:

Create Proxy Component:

Create a new component in your project that will act as a proxy to the core title component. This involves creating a new component node in the repository that inherits from the core title component.

Example path: /apps/myproject/components/pageHeadline with sling:resourceSuperType set to core/wcm/components/title/v2/title.

Implement Sling Model:

Implement a Sling Model that adapts from SlingHttpServletRequest and Title.class, ensuring it overrides the text fetching logic to retrieve the title from the current page's title.

The model will use @ScriptVariable to inject the current page and @Self to access the core title component's logic.

@Model(adaptables = SlingHttpServletRequest.class, adapters = Title.class, resourceType = 'myproject/components/pageHeadline')

public class PageHeadline implements Title {

@ScriptVariable

private Page currentPage;

@Self @Via(type = ResourceSuperType.class)

private Title title;

@Override

public String getText() {

return currentPage.getTitle();

}

@Override

public String getType() {

return title.getType();

}

}

@Model Annotation: Specifies that this class is a Sling Model and adapts from SlingHttpServletRequest. It is also an adapter for Title.class and applies to the myproject/components/pageHeadline resource type.

@ScriptVariable: Injects the current Page object, which allows access to the current page's properties.

@Self @Via(type = ResourceSuperType.class): Injects the core title component, allowing the reuse of existing logic.

getText() Method: Overrides the getText() method to return the title from the current page instead of the jcr:title.

getType() Method: Delegates to the core title component's getType() method to maintain existing functionality.

This approach leverages the power of Sling Models and the core components to extend functionality while keeping the implementation clean and maintainable.


Adobe Experience Manager - Core Components

Sling Models Documentation

Question 5

An AEM application wants to set up multi-tenancy using Adobe-recommended best practices and bind multiple configurations to it. Which of the following options is recommended?



Answer : D

The @Component(service = ConfigurationFactory.class) @Designate(ocd = ConfigurationFactorylmpl.Config.class,factory=true) option is recommended for creating a multi-tenancy configuration and binding multiple configurations to it. This option uses the OSGi R6 annotations to define a component that provides a service of type ConfigurationFactory and designates a class that contains the configuration properties. The factory=true attribute indicates that multiple configurations can be created for this component. Reference: https://experienceleague.adobe.com/docs/experience-manager-65/deploying/configuring/osgi-configuration-settings.html?lang=en#creating-factory-configurations


Question 6

Which practice should be used to push a code fix to make it into the current release candidate?



Answer : D

To push a code fix into the current release candidate, the best practice is to cherry-pick the fix commit into the release candidate branch. Cherry-picking allows you to apply specific changes from one branch to another, ensuring that only the necessary fixes are included without introducing unrelated changes.

Here's how to cherry-pick a commit:

Identify the Commit: Locate the commit hash of the fix you need to apply. This can be found in your version control system (e.g., Git).

Checkout the Release Candidate Branch:

git checkout release-candidate-branch

Cherry-pick the Commit:

git cherry-pick <commit-hash>

Resolve Conflicts (if any): If there are conflicts, resolve them manually and then continue the cherry-pick process:

git add <resolved-files>

git cherry-pick --continue

Test the Changes: Ensure that the changes are tested thoroughly in the release candidate environment to confirm the fix works as expected.

Push the Changes:

git push origin release-candidate-branch

Cherry-picking ensures that only the required changes are applied to the release candidate, maintaining the stability and integrity of the codebase.


Git Cherry-pick Documentation

Question 7

Which type of Cloud Manager tests are enabled for all Cloud Manager production pipelines and cannot be skipped?



Answer : A

Code Quality Testing is a type of Cloud Manager tests that are enabled for all Cloud Manager production pipelines and cannot be skipped. Code Quality Testing checks the code quality of the project using SonarQube and reports any issues or vulnerabilities. Code Quality Testing can fail the pipeline if the code quality does not meet the minimum standards defined by Adobe. Reference: https://experienceleague.adobe.com/docs/experience-manager-cloud-service/implementing/testing/testing-overview.html?lang=en#testing-types https://experienceleague.adobe.com/docs/experience-manager-cloud-service/implementing/testing/code-quality-testing.html?lang=en


Page:    1 / 14   
Total 50 questions