The FluentForms API project is a set of Java libraries that allow remote access to Adobe Experience Manager Forms (a.k.a. AEM Forms) functionality.
In addition to providing remote access to AEM Forms functionality, it also provides a modern, typesafe, and fluent facade over the existing AEM Forms APIs.
It has a layered architecture with four layers. Each layer targets a different type of client application. Each layer is built upon the previous layers and requires less client code to use than the layers below it. The top layer is the Spring Boot Starter.
This is the easiest way to use the FluentForms integration with AEM. The Spring Boot starter publishes Spring beans into the Spring context that can be utilized easily by any Spring Boot application.
There is a sample web application that uses the Spring Boot starter library. There are also documents outlining the Spring Beans provided by the starter library and the configuration properties that is uses.
This is the targeted at customers with Java applications that are not based on Spring Boot.
This is targeted at customers with non-Java applications.
This is used internally by the AEM Server REST Services but could be utilized by customers writing OSGi bundles in Java that will run directly on the AEM server.
The bundles can either be built from source or retrieved from this project's GitHub Packages Repository.
There are a couple of ways to retrieve files from this project's GitHub Packages Repository.
The GitHub Packages Repository is a maven repository that requires authentication,
so both approaches require that you have a GitHub account and that you set up your
GitHub credentials in your local maven settings.xml
file (i.e. ~/.m2/settings.xml
).
To set up your maven credentials, create a settings.xml
file within a .m2
directory
underneath your home directory. The settings.xml file should look like this:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>github</id>
<username>your GitHub user name goes here</username>
<password>your personal access token goes here</password>
</server>
</servers>
</settings>
Both methods outlined below assume that the server's id is set to github
as in the sample above.
The two common methods for retrieving the bundles are:
Use JBang and run the GrabBundles.java
script located under the jbang_scripts directory.
Use Maven to retrieve the artifacts using the Maven Dependency Plugin.
This is a sample maven pom.xml that accompilishes this task:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com._4point.aem</groupId>
<artifactId>fluentforms-get</artifactId>
<packaging>pom</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>Retreive FluentForms bundles</name>
<description>Retreive FluentForms bundles from GitHub Package Repository</description>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.6.0</version>
<executions>
<execution>
<id>get_fluentforms_core</id>
<phase>package</phase>
<goals>
<goal>get</goal>
</goals>
<configuration>
<artifact>com._4point.aem:fluentforms.core:0.0.3-SNAPSHOT</artifact>
<remoteRepositories>
github::::https://maven.pkg.github.com/4PointSolutions/FluentFormsAPI
</remoteRepositories>
<packaging>jar</packaging>
</configuration>
</execution>
<execution>
<id>get_restservices_server</id>
<phase>package</phase>
<goals>
<goal>get</goal>
</goals>
<configuration>
<artifact>com._4point.aem.docservices:rest-services.server:0.0.3-SNAPSHOT</artifact>
<remoteRepositories>
github::::https://maven.pkg.github.com/4PointSolutions/FluentFormsAPI
</remoteRepositories>
<packaging>jar</packaging>
</configuration>
</execution>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com._4point.aem</groupId>
<artifactId>fluentforms.core</artifactId>
<version>0.0.3-SNAPSHOT</version>
<type>jar</type>
<overWrite>true</overWrite>
</artifactItem>
<artifactItem>
<groupId>com._4point.aem.docservices</groupId>
<artifactId>rest-services.server</artifactId>
<version>0.0.3-SNAPSHOT</version>
<type>jar</type>
<overWrite>true</overWrite>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
After executing mnv package
the files should be available in the target\dependency
dependency under
the directory where the pom.xml resides.
The easiest way to install the Fluent Forms OSGi bundles is to copy them to AEM's
crx-quickstart/install
directory (this directory is not created by default, so
you may have to create the directory before copying the bundles into it). AEM
monitors this directory and when the bundle .jar files are copied there, it will detect
and install them.
You can verify that the bundles are installed and running by locating them in the OSGi
bundles console (located under http://<machine>:<port>/system/console/bundles
). Both bundles
should be present with a status of Active
: