APS SDK is an Open Source project that is currently released on my GitHub profile at the following URL:
- Support for any APS version released
- No hidden parent POM (i.e., it works with any IDE)
- Complete support of a Maven lifecycle (i.e., no bash scripts)
- APS Java API classpath settings
- Packaging of the extensions JAR, WARs, Apps, and Docker containers
- Swagger modules that provide for generating APS Rest API client
- Persistent Docker volumes that are useful for testing and migration purposes
- Ability to build, run, and test the entire platform with unit and integration tests
- The inclusion of basic extensions and testing samples
The entire software lifecycle can be run easily with the following Maven command:
mvn clean install docker:build docker:start docker:stop
The execution of the command above builds and packages everything running unit and integration tests against an APS instance on Docker. This includes any extensions.
The current state of the project allows one to manage and build all the current versions of APS, including:
- APS SDK 2.x supports APS 2.1.0 and APS 2.0.1
- APS SDK 1.x supports APS 1.11.4, 1.11.0, 1.10.1 and 18.104.22.168
The latest development sprint was done during the last Alfresco hackathon held on January 20, 2022. We are honored that the project was awarded Best Project by Alfresco. Below is a detailed description of the most important improvements that took place during the event.
Added Support for APS 2.x
Before the Alfresco hackathon, the APS SDK only supported the APS 1.x version. For three years prior, this included 22.214.171.124, 1.10.0, 1.11.0 or 1.11.4 from the first version of this SDK.
We introduced a new development branch that was totally dedicated to APS 2.x. This version supported changes in dependencies, such as a major change in the upgrade to Spring Boot 2. This change impacted the unit and integration test suite of the SDK.
This was addressed by introducing two new Maven modules:
- Module one generated the Swagger client to interact with the APS Rest API
- Module two integrated tests using the Swagger generated client to interact with the APS Docker image that was built using the SDK.
Help with Migrating from APS 1.x
Both new Maven modules were part of the APS SDK 1.x due to the backport activity done after the Alfresco hackathon. The backport also made it easier to migrate and test all the current extensions. More importantly, it allowed anyone to test the upgrade path when working on a migration project from APS 1.x to APS 2.x. Notice that this meant upgrading from Activiti 5.x to Activiti 7.x. These enhancements require testing the process definitions and extensions. Below is the execution output of the SDK related to the upgrade from APS 1.11.4 to APS 2:
Finally, the project supported the latest version of the Alfresco Process Services platform. The first release of APS 2.x occurred in October 2021. With the support of Alfresco, many customers are now able to upgrade from APS 1.x to APS 2.x.
APS 1 is scheduled to be deprecated in March 2022, meaning maintenance will no longer be available by March 2023. Customers currently have one year to arrange for an upgrade project, including the new infrastructure and the related migration / porting activity needed for all extensions and integrations.
Added Support for Arm64 CPUs: Speed Up Your Continuous Integration (CI) and Continuous Development (CD) Platforms
Prior to the hackathon, Alfresco did not provide Docker images for Arm64 architecture. During the hackathon, I worked on this enhancement with Angel Borroy, Developer Evangelist at Hyland. Together, we recreated the Docker image of APS, starting from scratch and considering a different Dockerfile for each version released.
This improvement helps developers choose the final target version of the Docker container. Specifically, this includes considering the APS version, as well as the Docker base image version according to the JDK and servlet container version for production. Eventually, anyone can tweak a part of the Dockerfile included in the SDK to adjust for any reason the final build of the APS container.
The APS SDK now supports both the architectures amd64/x86 and arm64/aarch/M1. This was implemented in a transparent way thanks to the Maven activation settings included in the Maven profile. Now, your APS instance is ready to use in just 20 seconds!