Set up local development environment for AEM Forms overview
When you set up and configure an Adobe Experience Manager Forms as a Cloud Service environment, you set up development, staging, and production environments on cloud. In addition, you can also set up and configure a local development environment.
You can use the local development environment to perform the following actions without logging in to cloud development environment:
- Create forms and related assets (themes, templates, custom Submit Actions, and more)
- Convert PDF forms to Adaptive Forms
- Build applications to generate Customer Communications on demand or in batch modes.
After an Adaptive Form or related assets are ready on the local development instance or an application to generate [Customer Communications] is ready, you can export the Adaptive Form or Customer Communications application from the local development environment to a Cloud Service environment for further testing or moving to production environments.
You can also develop and test custom code like custom components and prefill service on the local development environment. When the custom code is tested and ready, you can use the Git repository of your Cloud Service development environment to deploy the custom code.
To set up a new local development environment and use it to develop for activities, perform the following actions in listed order:
Prerequisites
You require the following software to set up a local development environment. Download these before starting to set up the local development environment:
Download the latest version of software from Software Distribution software-distribution
To download latest version of Adobe Experience Manager as a Cloud Service SDK, Experience Manager Forms feature archive (AEM Forms add-on), forms reference assets, or Forms Designer from Software Distribution:
-
Log in to https://experience.adobe.com/#/downloads with your Adobe ID
note note NOTE Your Adobe Organization must be provisioned for AEM as a Cloud Service to download the AEM as a Cloud Service SDK. -
Navigate to the AEM as a Cloud Service tab.
-
Sort by published date in descending order.
-
Click the latest Adobe Experience Manager as a Cloud Service SDK, Experience Manager Forms feature archive (AEM Forms add-on), forms reference assets, or Forms Designer.
-
Review and accept the EULA. Select the Download button.
Set up development tools for AEM Projects setup-development-tools-for-AEM-projects
The Adobe Experience Manager Forms project is a custom code base. It contains code, configurations, and content that is deployed via Cloud Manager to Adobe Experience Manager as a Cloud Service. The AEM Project Maven Archetype provides the baseline structure for the project.
Set up the following development tools to use for your Adobe Experience Manager project for development:
For detailed instructions to set up previously mentioned development tools, see Set up development tools.
Set up local Experience Manager environment for development
The Cloud Service SDK provides a QuickStart file. It runs a local version of Experience Manager. You can run either the Author or Publish instances locally.
While the QuickStart provides a local development experience, it does not have all features available in Adobe Experience Manager as a Cloud Service. So, always test your features and code with Adobe Experience Manager as a Cloud Service development environment before moving the features to stage or production.
To install and configure local Experience Manager environment, perform the following steps:
- Download and extract the Adobe Experience Manager as a Cloud Service SDK
- Set up an Author instance
- Set up a Publish instance
Add Forms archive to local Author and Publish instances and configure Forms-specific users add-forms-archive-configure-users
Perform the following steps in the listed order to add Forms archive to Experience Manager instances and configure forms-specific users:
Install the latest Forms add-on feature archive add-forms-archive
Adobe Experience Manager Forms as a Cloud Service feature archive provides tools to create, style, and optimize Adaptive Forms on the local development environment. Install the package to create an Adaptive Form and use various other features of AEM Forms. To install the package:
-
Download and extract the latest AEM Forms archive for your operating system from Software Distribution.
-
Navigate to the crx-quickstart/install directory. If the folder does not exist, create it.
-
Stop your AEM instance, place the AEM Forms add-on feature archive,
aem-forms-addon-<version>.far
, in the install folder, and restart the instance.
Configure users and permissions configure-users-and-permissions
Create users like Form Developer and Form Practitioner and add these users to pre-defined forms groups to provide them required permissions. The table below lists all types of users and pre-defined groups for each type of forms users:
When no user authentication is required to access Adaptive Forms, do not assign any group to such users.
Set up local development environment for Document of Record (DoR) docker-microservices
AEM Forms as a Cloud Services provides a docker-based SDK environment for easier development of Document of Record and for using other microservices. It frees you from manually configuring platform-specific binaries and adaptations. To set up the environment:
-
Install and Configure Docker:
-
(For Microsoft® Windows) Install Docker Desktop. It configures
Docker Engine
anddocker-compose
on your machine. -
(Apple macOS) Install Docker Desktop for Mac. It includes Docker Engine, Docker CLI client, Docker Compose, Docker Content Trust, Kubernetes, and Credential Helper.
-
(For Linux®) Install Docker Engine and Docker Compose on your machine.
note note NOTE -
For Apple macOS, allowlist folders containing local AEM Author instances.
-
Docker Desktop for Windows supports two backends, Hyper-V
(legacy) and WSL2 (modern). File sharing is automatically
managed by Docker when using WSL2 (modern). You have to
explicitly configure file sharing while using Hyper-V (legacy).
-
-
Create a folder, say aem-sdk, in parallel to your author and publish instances. For example, C:\aem-sdk.
-
Extract the
aem-forms-addon-<version>.zip\aem-forms-addon-native-<version>.zip
file. -
Create an environment variable AEM_HOME and point to local AEM Author installation. For example, C:\aem\author.
-
Open sdk.bat or sdk.sh for editing. Set the AEM_HOME to point to local AEM Author installation. For example, C:\aem\author.
-
Open command prompt and navigate to the
aem-forms-addon-native-<version>
folder. -
Ensure that your local AEM Author instance is up and running. Run the following command to start the SDK:
- (on Microsoft® Windows)
sdk.bat start
- (on Linux® or Apple macOS)
AEM_HOME=[local AEM Author installation] ./sdk.sh start
note note NOTE If you have defined the environment variable in the sdk.sh file, specifying it at the command line is optional. The option to define the environment variable at the command line is provided to execute the command without updating the shell script. - (on Microsoft® Windows)
You can now use the local development environment to render Document of Record. To test, upload an XDP file to your environment and render it. For example, http://localhost:4502/libs/xfaforms/profiles/default.print.pdf?template=crx:///content/dam/formsanddocuments/cheque-request.xdp converts the XDP file to the PDF document.
Set up a development project for Forms based on Experience Manager archetype forms-cloud-service-local-development-environment
Use this project to create Adaptive Forms, deploy configuration updates, overlays, create custom Adaptive Form components, test, and custom code on local Experience Manager Forms SDK. After testing locally, you can deploy the project to Experience Manager Forms as a Cloud Service production and non-production environments. When you deploy the project, the following AEM Forms assets are also deployed:
Setup AEM Archetype version 32 or later based project to get and use Tranquil, Urbane, and Ultramarine themes with AEM Forms as a Cloud Service.
To set up the project:
-
Clone Cloud Manager Git repository on your local development instance: Your Cloud Manager Git repository contains a default AEM project. It is based on AEM Archetype. Clone your Cloud Manager Git Repository using Self-Service Git Account Management from Cloud Manager UI to bring the project on your local development environment. For details to accessing the repository, see Accessing Repositories.
-
Create an Experience Manager Forms as a [Cloud Service] project: Create an Experience Manager Forms as a [Cloud Service] project based on latest AEM Archetype or later. The archetype help developers easily start developing for AEM Forms as a Cloud Service. It also includes some sample themes and templates to help you started quickly.
Open the command prompt and run the below command to create an Experience Manager Forms as a Cloud Service project.
code language-shell mvn -B org.apache.maven.plugins:maven-archetype-plugin:3.2.1:generate -D archetypeGroupId=com.adobe.aem -D archetypeArtifactId=aem-project-archetype -D archetypeVersion="41" -D appTitle=mysite -D appId=mysite -D groupId=com.mysite -D includeFormsenrollment="y" -D aemVersion="cloud"
Change the
appTitle
,appId
, andgroupId
in the above command to reflect your environment. Also, set value for includeFormsenrollment, includeFormscommunications, and includeFormsheadless toy
orn
depending on your license and requirements. The includeFormsheadless is mandatory to create Adaptive Forms based on Core Components.-
Use the
includeFormsenrollment=y
option to include Forms specific configurations, themes, templates, Core Components, and dependencies required to create Adaptive Forms. If you use Forms Portal, set theincludeExamples=y
option. It also adds Forms Portal core components to the project. -
Use the
includeFormscommunications=y
option to include Forms Core Components and dependencies required to include Customer Communications functionality.note warning WARNING - When creating an Archetype project with version 45, the [AEM Archetype Project Folder]/pom.xml initially sets the forms core components version to 2.0.64. Prior to building or deploying the Archetype project, update the forms core components version to 2.0.62.
-
-
Deploy the project to your local development environment. You can use the following command to deploy to your local development environment
mvn -PautoInstallPackage clean install
For the complete list of commands, see Building and Installing
-
Deploy the code to your AEM Forms as a Cloud Service environment.
Set up local Dispatcher tools setup-local-dispatcher-tools
Dispatcher is an Apache HTTP Web server module that provides a security and performance layer between the CDN and AEM Publish tier. Dispatcher is an integral part of the overall Experience Manager architecture and should be part of local development environment.
Perform the following steps to configure local Dispatcher and then add Forms-specific rules to it:
Set up local Dispatcher setup-local-dispatcher
The Experience Manager as a Cloud Service SDK includes the recommended Dispatcher Tools version that facilitates configuring, validating, and simulating Dispatcher locally. Dispatcher Tools are Docker-based and provide command-line tools to transpile Apache HTTP Web Server and Dispatcher configuration files into a compatible format and deploy them to Dispatcher running in the Docker container.
Caching on Dispatcher allows AEM Forms to prefill Adaptive Forms at a client. It improves rendering speed of prefilled forms.
For detailed instructions to set up Dispatcher, see Set up local Dispatcher tools
Add Forms specific rules to Dispatcher forms-specific-rules-to-dispatcher
Perform the following steps to configure Dispatcher cache for Experience Manager Forms as a Cloud Service:
-
Open your AEM Project and navigate to
\src\conf.dispatcher.d\available_farms
-
Create a copy of the
default.farm
file. For example,forms.farm
. -
Open the created
forms.farm
file for editing and replace the following code:code language-json #/ignoreUrlParams { #/0001 { /glob "*" /type "deny" } #/0002 { /glob "q" /type "allow" } #}
with
code language-json /ignoreUrlParams { /0001 { /glob "*" /type "deny" } /0002 { /glob "dataRef" /type "allow" } }
-
Save and close your file.
-
Go to
conf.d/enabled_farms
and create a symbolic link to theforms.farm
file. -
Compile and deploy the project to your AEM Forms as a Cloud Service environment.
Considerations about caching considerations-about-caching
-
Dispatcher caching allows AEM Forms to prefill Adaptive Forms at a client. It improves rendering speed of prefilled forms.
-
Caching secured content features is disabled, by default. To enable the feature, you can perform the instructions provided in the Caching Secured Content article
-
The Dispatcher can fail to invalidate some Adaptive Forms and related Adaptive Forms. To resolve such issues, see AEM Forms Caching in troubleshooting section.
-
Caching localized Adaptive Forms:
- Use URL format
http://host:port/content/forms/af/<afName>.<locale>.html
to request a localized version of an Adaptive Form instead ofhttp://host:port/content/forms/af/afName.html?afAcceptLang=<locale>
- Browser Locale option is disabled, by default. To change browser locale setting,
- Use URL format
-
When you use URL Format
http://host:port/content/forms/af/<adaptivefName>.html
, and Use Browser Locale in configuration manager is disabled, the non-localized version of the Adaptive Form is served. The non-localized language is the language used while developing the Adaptive Form. The locale configured for your browser (browser locale) is not considered and a non-localized version of the Adaptive Form is served. -
When you use URL Format
http://host:port/content/forms/af/<adaptivefName>.html
, and Use Browser Locale in configuration manager is enabled, a localized version of the Adaptive Form is served, if available. The language of the localized Adaptive Form is based on the locale configured for your browser (browser locale). It can lead to [caching only first instance of an Adaptive Form]. To prevent the issue from happening on your instance, see only first instance of an Adaptive Form is cached in troubleshooting section.
Your local development environment is ready.
Enable Adaptive Forms Core Components on AEM Forms as a Cloud Service and local development environment
Enabling Adaptive Forms Core Components on AEM Forms as a Cloud Service, lets you start creating, publishing, and delivering Core Components based Adaptive Forms and Headless Forms using your AEM Forms Cloud Service instances to multiple channels. You require Adaptive Forms Core Components enabled environment to use Headless Adaptive Forms.
For instructions, see Enable Adaptive Forms Core Components on AEM Forms as a Cloud Service and local development environment
Upgrade your local development environment upgrade-your-local-development-environment
Upgrading the SDK to a new version requires replacing the entire local development environment, resulting in a loss of all code, configuration, and content in the local repositories. Ensure that any code, config, or content that should not be destroyed is safely committed to Git, or exported from the local Experience Manager instances as CRX-Packages.
How to avoid content loss when upgrading the SDK avoid-content-loss-when-upgrading--SDK
Upgrading the SDK is effectively creating a brand new Author and Publish instances, including a new repository (Set up AEM project), meaning any changes made to a prior SDK’s repository are lost. For viable strategies for aiding in persisting content between SDK upgrades, see How to avoid content loss when upgrading the AEM SDK
Back up and import Forms-specific content to a new SDK environment backup-and-import-Forms-specific-content-to-new-SDK-environment
To back up and move assets from existing SDK to a new SDK environment:
-
Create a backup of your existing content.
-
Set up a fresh SDK environment.
-
Import the backup to your new SDK environment.
Create a backup of your existing content create-backup-of-your-existing-content
Back up your Adaptive Forms, templates, form data model, theme, configurations, and custom code. You can perform the following action to create backup:
-
Download Adaptive Forms, themes, and PDF forms.
-
Export Adaptive Form templates.
-
Download Form Data Models
-
Export editable templates, cloud configurations, and workflow model. To export all the previously mentioned items from your existing SDK, create an CRX-Package with the following filters:
- /conf/ReferenceEditableTemplates
- /conf/global/settings/cloudconfigs
- /conf/global/settings/wcm
- /var/workflow/models
- /conf/global/settings/workflow
-
Export email configurations, submit, and prefill actions code from your local development environment. To export these settings and configuration, create a copy of the following folders and files on your local development environment:
[Archetype Project in Cloud Service Git]/core/src/main/java/com/<program name>/core/service
[Archetype Project in Cloud Service Git] /core/src/main/java/com/<program name>/core/servlets/FileAttachmentServlet.java
[Archetype Project in Cloud Service Git]/ui.apps/src/main/content/jcr_root/apps/<program name>/config
Import the backup to your new SDK environment import-the-backup-to-your-new-SDK-environment
Import Adaptive Forms, templates, form data model, theme, configurations, and custom code to your fresh environment. You can perform the following action to import backup:
-
Import Adaptive Forms, themes, and PDF forms to new SDK environments.
-
Import Adaptive Form templates to new SDK environment.
-
Upload Form Data Models to new SDK environment.
-
Import editable templates, cloud configurations, and workflow model. To import all the previously mentioned items yo your new SDK environment, import the CRX-Package containing these items to your new SDK environment.
-
Import email configurations, submit, and prefill actions code from your local development environment. To import these settings and configuration, place the following files from your old Archetype project to your new Archetype project:
[Archetype Project in Cloud Service Git]/core/src/main/java/com/<program name>/core/service
[Archetype Project in Cloud Service Git] /core/src/main/java/com/<program name>/core/servlets/FileAttachmentServlet.java
[Archetype Project in Cloud Service Git]/ui.apps/src/main/content/jcr_root/apps/<program name>/config
Your new environment now has forms and related assets of old environment.