Skip to content

adobe/aem-core-forms-components

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

CircleCI codecov Maven Central GitHub Open in GitHub Codespaces

AEM Forms Core Components

The AEM Forms Core Components project serves as accelerator to get started with projects using AEM Forms. The project contains re-useable Forms core components which are server-side rendered AEM components for dynamic experiences / data.

This project is intended to be used in conjunction with the AEM Sites Core Components. AEM Forms Core Components use the AEM Sites Core Components as a foundation where possible and extending them.

Documentation

See AEM Sites Core Components for usage and configuration instructions of the AEM Forms Core Components.

JavaScript Documentation

https://opensource.adobe.com/aem-core-forms-components/

Available Components

Page Authoring Components

Forms And Communications Portal

Adaptive Form

System Requirements

The latest version of the AEM Forms Core Components, require the below minimum system requirements:

Forms Core Components WCM Core Components AEM Forms as a cloud service Java Maven
3.0.76 2.24.6 Continual 11 3.3.9+

For a list of requirements for previous versions, see Historical System Requirements.

AEM Sites Core Components

This project relies on the AEM Sites Core Components. They are typically installed as part of AEM. If you install AEM without sample content option you have to deploy them manually before using the AEM Forms Core Components. See the System Requirements above for version requirements.

Building

Compliling the Core Components

To compile your own version of the Core Components, you can build and install everything on your running AEM instance by issuing the following command in the top level folder of the project:

mvn clean install -PautoInstallPackage

You can also install individual packages/bundles by issuing the following command in the top-level folder of the project:

mvn clean install -PautoInstallPackage -pl <project_name(s)> -am

With AEM as a Cloud Service SDK, use the cloud profile as follows to deploy the components into /libs instead of /apps:

mvn clean install -PautoInstallPackage,cloud

Note that:

  • -pl/-projects option specifies the list of projects that you want to install
  • -am/-also-make options specifies that dependencies should also be built

For convenience, the following deployment profiles are provided when running the Maven install goal with mvn install:

  • autoInstallAll: Install everything to the AEM author instance.
  • autoInstallPackage: Install the ui.content and ui.apps content packages to the AEM author instance.
  • autoInstallPackagePublish: Install the ui.content and ui.apps content packages to the AEM publish instance.

The hostname and port of the instance can be changed with the following user defined properties:

  • aem.host and aem.port for the author instance.
  • aem.publish.host and aem.publish.port for the publish instance.

Building and Installing examples

We have a set of example proxy components to demonstrate how the existing components can be customized or new components can be added. The examples module contains the code for all the components

To build and install that, from the examples directory (or from the root directory), run the following command

mvn clean install -PautoInstallExamples,include-wcm-components-examples

AEM as a Cloud Service SDK

When compiling and deploying to AEM as a Cloud Service SDK, you can use the cloud profile (in conjunction with previously documented profiles) to generate cloud-ready artifacts (with components located in /libs instead of /apps). To allow recompilation of the HTL scripts, you should disable aem-precompiled-scripts bundle.

Due to FELIX-6365, please only use autoInstallPackage and autoInstallPackagePublish when working with the AEM as a Cloud Service SDK!

UberJar

This project relies on the AEM 6.4.4 cq-quickstart UberJar and AEM Forms SDK API. This is publicly available on https://repo.adobe.com

For more details about the UberJar please head over to the How to Build AEM Projects using Apache Maven documentation page.

Include core components as subpackage into your own project maven build

The released version of the AEM Forms Core Components are available on the maven central repository. To include the AEM Forms Core Components package into your own project maven build you can add the dependency

<dependency>
    <groupId>com.adobe.aem</groupId>
    <artifactId>core-forms-components-all</artifactId>
    <type>zip</type>
    <version>x.y.z</version>
</dependency>

and sub package section

 <subPackage>
     <groupId>com.adobe.aem</groupId>
     <artifactId>core-forms-components-all</artifactId>
     <filter>true</filter>
 </subPackage>

to the content-package-maven-plugin.

Using Pre-release versions

In order to use components under pre-release:

  1. Enable the pre-release channel. Instructions at https://experienceleague.adobe.com/docs/experience-manager-cloud-service/content/release-notes/prerelease.html?lang=en
    1. Replace core-forms-components-* version with the desired pre-release version (e.g 1.0.4-PRERELEASE-20211223) in your Cloud Manager / AEM Archetype project. This can be done by updating <core.forms.components.version>x.y.z</core.forms.components.version> in the top level pom.xml of archetype project.

Contents in the pre-release are contained in the pre-release branch.

Code Formatting

Java

You can find the code formatting rules in the eclipse-formatter.xml file. The code formatting is automatically checked for each build. To automatically format your code, please run:

mvn clean install -Pformat-code

Releases to Maven Central

Releases of this project are triggered by manually running mvn -Pcloud release:prepare release:clean on the master branch on the root folder of this repository. Once you choose the release and the next snapshot versions, this commits the change along with a release git tag like for example core-forms-components-reactor-x.y.z. Note that the commits are not automatically pushed to the git repository, so you have some time to check your changes and then manually push them. The push then triggers a dedicated CircleCI build that performs the deployment of the tagged artifact to Maven Central.

Important: this project does Maven reactor releases, do not trigger releases from sub modules!

Note: in case it is needed to update the version of a java bundle because of API changes and semantic versioning, one can easily update the parent POM version and all the POMs referencing the parent POM version by running the following command in the PARENT project folder: mvn versions:set -DnewVersion=x.y.z-SNAPSHOT. This will ensure all projects have the same version.

Contributing

Contributions are welcomed! Read the Contributing Guide for more information.

Licensing

This project is licensed under the Apache V2 License. See LICENSE for more information.