{"id":15009122,"url":"https://github.com/openpj/alfresco-process-services-project-sdk","last_synced_at":"2025-10-10T16:41:52.617Z","repository":{"id":36665322,"uuid":"167973146","full_name":"OpenPj/alfresco-process-services-project-sdk","owner":"OpenPj","description":"The Alfresco Process Services SDK based on Apache Maven and Docker, includes support for rapid and standard development, testing, packaging, versioning and release of your APS integration and extension projects","archived":false,"fork":false,"pushed_at":"2025-08-04T22:18:23.000Z","size":453,"stargazers_count":30,"open_issues_count":5,"forks_count":17,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-08-05T00:37:16.169Z","etag":null,"topics":["alfresco","alfresco-activiti-enterprise","alfresco-development","alfresco-module","alfresco-process-services","alfresco-sdk","apache-maven","aps","bpm","docker","java","maven","process","ziaconsulting"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenPj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-28T14:11:04.000Z","updated_at":"2025-08-04T22:18:26.000Z","dependencies_parsed_at":"2023-01-17T04:00:50.842Z","dependency_job_id":"e6a6eb5e-d2db-46fd-bd27-2845e12db4d7","html_url":"https://github.com/OpenPj/alfresco-process-services-project-sdk","commit_stats":null,"previous_names":[],"tags_count":61,"template":false,"template_full_name":null,"purl":"pkg:github/OpenPj/alfresco-process-services-project-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenPj%2Falfresco-process-services-project-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenPj%2Falfresco-process-services-project-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenPj%2Falfresco-process-services-project-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenPj%2Falfresco-process-services-project-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenPj","download_url":"https://codeload.github.com/OpenPj/alfresco-process-services-project-sdk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenPj%2Falfresco-process-services-project-sdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279004702,"owners_count":26083751,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alfresco","alfresco-activiti-enterprise","alfresco-development","alfresco-module","alfresco-process-services","alfresco-sdk","apache-maven","aps","bpm","docker","java","maven","process","ziaconsulting"],"created_at":"2024-09-24T19:23:08.123Z","updated_at":"2025-10-10T16:41:52.610Z","avatar_url":"https://github.com/OpenPj.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Alfresco Process Services SDK Project\n\n| APS SDK Version  | Supported APS versions | Artifact | Upgrade steps | License Management |\n| ------------- | ------------- | ------------- | ------------- | ------------- |\n| [APS SDK 3.x (3.x branch)](https://github.com/OpenPj/alfresco-process-services-project-sdk/tree/3.x)  | 25.2.0, 25.1.1, 25.1.0, 24.5.0, 24.4.4, 24.4.3, 24.4.2, 24.4.1, 24.4.0, 24.3.1, 24.3.0, 24.2.1, 24.2, 24.1 | [Download APS SDK v3.0.7](https://github.com/OpenPj/alfresco-process-services-project-sdk/releases/tag/v3.0.7) | Recreate the APS SDK project from scratch and import your extensions from APS SDK 2.x (or 1.x) | Native support |\n| [APS SDK 2.x (2.x branch)](https://github.com/OpenPj/alfresco-process-services-project-sdk/tree/2.x)  | 2.4.5, 2.4.4, 2.4.3, 2.4.2.15, 2.4.2.14, 2.4.2.13, 2.4.2.12, 2.4.2.11, 2.4.2.10, 2.4.2.9, 2.4.2.8, 2.4.2.7, 2.4.2.6, 2.4.2.5, 2.4.2.4, 2.4.2.3, 2.4.2.2, 2.4.2.1, 2.4.2, 2.4.1.2, 2.4.1.1, 2.4.1, 2.4.0, 2.3.10, 2.3.9, 2.3.8.7, 2.3.8.6, 2.3.8.5, 2.3.8.4, 2.3.8.3, 2.3.8.2, 2.3.8.1, 2.3.8, 2.3.7.2, 2.3.7.1, 2.3.7, 2.3.6.2, 2.3.6.1, 2.3.6, 2.3.5.1, 2.3.5, 2.3.4, 2.3.3, 2.3.2, 2.3.1, 2.3.0, 2.2.0.1, 2.2.0, 2.1.0, 2.0.1, 2.0.0  | [Download APS SDK v2.6.2](https://github.com/OpenPj/alfresco-process-services-project-sdk/releases/tag/v2.6.2) | [Upgrading APS SDK 2.x project to support APS 2.2.0 (only for APS SDK versions earlier than 2.0.8 and until to APS 2.2.0)](https://github.com/OpenPj/alfresco-process-services-project-sdk/wiki/Upgrading-APS-SDK-2.x-project-to-support-APS-2.2.0-(only-for-APS-SDK-versions-earlier-than-2.0.8)) | [Adding the License Management to your current project (only for APS SDK versions earlier than 2.0.9)](https://github.com/OpenPj/alfresco-process-services-project-sdk/wiki/Adding-the-License-Management-to-your-current-project-(only-for-APS-SDK-versions-earlier-than-2.0.9-or-1.7.4)) | \n| [APS SDK 1.x (master branch)](https://github.com/OpenPj/alfresco-process-services-project-sdk)  | 1.11.5, 1.11.4.3, 1.11.4.2, 1.11.4.1, 1.11.4, 1.11.3, 1.11.2, 1.11.1.1, 1.11.1, 1.11.0, 1.10.0.1, 1.10.0, 1.9.0.5 | [Download APS SDK v1.8.0](https://github.com/OpenPj/alfresco-process-services-project-sdk/releases/tag/v.1.8.0) | | [Adding the License Management to your current project (only for APS SDK versions earlier than 1.7.4)](https://github.com/OpenPj/alfresco-process-services-project-sdk/wiki/Adding-the-License-Management-to-your-current-project-(only-for-APS-SDK-versions-earlier-than-2.0.9-or-1.7.4))|\n\n# Alfresco Process Services SDK Project 1.8.0\n\nThe project consists of the following Maven submodules:\n\n * APS extensions JAR (`aps-extensions-jar`): put here your Java extensions\n * Activiti App Overlay WAR (`activiti-app-overlay-war`): it will generate activiti-app WAR overlay with APS Extensions JAR embedded\n * Activiti App Swagger Client (`activiti-app-swagger-client`): generate the APS Java Swagger client\n * Activiti App Overlay Docker (`activiti-app-overlay-docker`): it will put your overlayed WAR into the APS Docker container\n * Activiti App Integration Tests (`activiti-app-integration-tests`): integration tests based on the Java Swagger client\n\n## Capabilities\n * Full support of Arm64 CPUs (Apple Silicon M1) with native Docker containers and a transparent Maven profile \n * Running Docker will also create persistent volumes for each storage component (contentstore, db and ElasticSearch) for making the development approach in APS consistent and reliable\n\n# Prerequisites\n * OpenJDK 11\n * Apache Maven 3.9.0\n * Docker (optional)\n * Put valid  _activiti.lic_  and  _Aspose.Total.Java.lic_  in the `/license` folder for running unit / integration tests and for building containers\n * Access to the Alfresco Nexus Repositories (credentials provided by Alfresco)\n * Configure your Maven servers settings.xml with credentials for these repositories:\n \n ``` \n    \u003cserver\u003e\n\t  \u003cid\u003eactiviti-enterprise-releases\u003c/id\u003e\n\t  \u003cusername\u003eyourAlfrescoUsername\u003c/username\u003e\n\t  \u003cpassword\u003eyourAlfrescoPassword\u003c/password\u003e\n\t\u003c/server\u003e\n\t\u003cserver\u003e\n\t  \u003cid\u003eenterprise-releases\u003c/id\u003e\n\t  \u003cusername\u003eyourAlfrescoUsername\u003c/username\u003e\n\t  \u003cpassword\u003eyourAlfrescoPassword\u003c/password\u003e\n\t\u003c/server\u003e\n\t\u003cserver\u003e\n\t  \u003cid\u003einternal-thirdparty\u003c/id\u003e\n\t  \u003cusername\u003eyourAlfrescoUsername\u003c/username\u003e\n\t  \u003cpassword\u003eyourAlfrescoPassword\u003c/password\u003e\n\t\u003c/server\u003e\n\t\u003cserver\u003e\n\t  \u003cid\u003ealfresco-artifacts-repository\u003c/id\u003e\n\t  \u003cusername\u003eyourAlfrescoUsername\u003c/username\u003e\n\t  \u003cpassword\u003eyourAlfrescoPassword\u003c/password\u003e\n\t\u003c/server\u003e\n  ```\n  \n# Quickstart\n\nFull Maven lifecycle command:\n\n * `mvn clean install docker:build docker:start`\n \nStop all the Docker containers with:\n \n * `mvn docker:stop`\n\nFull Maven lifecycle command deploying also Activiti Admin:\n\n * `mvn clean install docker:build docker:start -Pactiviti-admin`\n \nStop all the Docker containers with:\n\n * `mvn docker:stop -Pactiviti-admin`\n \n## Remote Debugging\n\nA debug port is available on port `5005` from the `aps-sdk/alfresco-process-services` container including the custom `activiti-app.war`.\n\nRemember to eventually disable remote debugging for your production release commenting `CATALINA_OPTS` and `port` elements in the `/activiti-app-overlay-docker/pom.xml` as shown in the following snippets:\n\n```xml\n\u003crun\u003e\n\t\u003cenv\u003e\n\t\t\u003c!-- \u003cCATALINA_OPTS\u003e${catalina.opts.debug}\u003c/CATALINA_OPTS\u003e --\u003e\n\t\u003c/env\u003e\n\t....\n\t\u003cports\u003e\n\t\t\u003cport\u003e${docker.tomcat.port.external}:${docker.tomcat.port.internal}\u003c/port\u003e\n\t\t\u003c!-- \u003cport\u003e${aps.debug.port}:${aps.debug.port}\u003c/port\u003e --\u003e\n\t\u003c/ports\u003e\t\t\t\t\t\n```\n\nAnother good practice could be creating a separated Maven module with a `pom.xml` totally dedicatd to build your container for production release.\n\n## Changing the default extensions deployment method\n By default the APS SDK is deploying extensions as a unique JAR embedded in the `activiti-app.war`.\n If you want to deploy your extensions in the `tomcat/lib` folder check out the following steps:\n \n * Remove or comment the `aps-extensions-jar` dependency in the `/activiti-app-overlay-war/pom.xml`\n * Uncomment the `COPY` command of the related Dockerfile from the folder: `/activiti-app-overlay-docker/src/main/docker`\n\n# APS Extensions JAR Module\n\nFolder structure is based on the same APS project classpath:\n * `/aps-extensions-jar/src/main/resources/activiti`: APS configuration files\n * `/aps-extensions-jar/src/main/resources/apps`: contains your own APS applications extracted\n * `/aps-extensions-jar/src/test/java`: put here your unit and integration tests\n \nTo run use `mvn clean install`\n\n * Runs the embedded container + H2 DB \n * Runs unit tests with `mvn clean test`\n * Runs integration tests with `mvn clean integration-test`\n * Packaging of App ZIP, JAR and WAR with extensions\n \n# SDK Packages - Runtime - Cross platform\n * `com.activiti.extension.api`: put here your enterprise custom REST endpoint (authentication required)\n * `com.activiti.extension.rest`: put here your internal API (with no authentication)\n * `com.activiti.extension.bean`: put here your Spring beans (services and components)\n \n*Suggested naming conventions for implementations dedicated to a specific app*\n\n * `com.activiti.extension.*your_app*.listeners`: put here your listeners\n * `com.acitivit.extension.*your_app*.service.tasks`: put here your service tasks\n\n# SDK Packages - Test Runtime\n\n * `org.alfresco.activiti.unit.tests`: put here your unit test (with suffix *Test.java)\n * `org.alfresco.activiti.integration.tests`: put here your integration tests (with suffix *IT.java)\n\n# Activiti App WAR Overlay Module\n\nThis module is responsible for generating the final WAR artifact including all the extensions implemented in the APS extensions JAR Module.\n\n# Activiti App Overlay Docker Module\n\nFor building the Docker container with your custom Activiti App WAR:\n\n`mvn docker:build`\n\n * Packaging of Activiti App and Activiti Admin Docker containers with extensions\n \n`mvn docker:start`\n\nBuild and deploy with Docker the Activiti Admin App with the activiti-admin Maven profile:\n\n`mvn docker:build -Pactiviti-admin`\n\nStart your Activiti App Docker container with the following architecture:\n\n  * Activiti Admin (with H2 embedded)\n  * PostgreSQL 10.9\n  * ElasticSearch\n  * aps-db-volume: Docker volume for PostgreSQL\n  * aps-es-volume: Docker volume for ElasticSearch\n  * aps-contentstore-volume: Docker volume for attachments\n  \n  * Stop your Docker container:\n\n`mvn docker:stop`\n\n  * Purge all the Docker volumes:\n  \n`mvn clean -Ppurge-volumes`\n\n# Activiti App Integration Tests Module\nThis module includes tests for interacting with the APS Docker using the generated Swagger client.\n\nPut your Java test classes in the following package:\n`/activiti-app-integration-tests/src/test/java`\n\n# Supported Maven Profiles for dependencies management and packaging (JAR and WAR)\n\nIn order to build you have to define a Maven profile for choosing the version of APS:\n * `aps1.11.5` (APS 1.11.5 - default)\n * `aps1.11.4.3` (APS 1.11.4.3)\n * `aps1.11.4.2` (APS 1.11.4.2)\n * `aps1.11.4.1` (APS 1.11.4.1)\n * `aps1.11.4` (APS 1.11.4)\n * `aps1.11.3` (APS 1.11.3)\n * `aps1.11.2` (APS 1.11.2)\n * `aps1.11.1.1` (APS 1.11.1.1)\n * `aps1.11.1` (APS 1.11.1)\n * `aps1.11.0` (APS 1.11.0)\n * `aps1.10.0.1` (APS 1.10.0.1)\n * `aps1.10.0` (APS 1.10.0)\n * `aps1.9.0.5`  (APS 1.9.0.5)\n \nBuild and test with unit tests execution for APS 1.11.5 with:\n`mvn clean test`\n\nBuild and test with unit tests execution for APS 1.11.0 with:\n`mvn clean test -Paps.1.11.0`\n\nBuild and test with unit tests execution for APS 1.10.0 with:\n`mvn clean test -Paps1.10.0`\n\nBuild and test with unit tests execution for APS 1.9.0.5 with:\n`mvn clean test -Paps1.9.0.5`\n\nBuild and package with integration tests execution for APS 1.11.5 with:\n`mvn clean install`\n\nBuild and package with integration tests execution for APS 1.11 with:\n`mvn clean install -Paps1.11.0`\n\nBuild and package with integration tests execution for APS 1.10 with:\n`mvn clean install -Paps1.10.0`\n\nBuild and package with integration tests execution for APS 1.9.0.5 with:\n`mvn clean install -Paps1.9.0.5`\n\nBuild your Docker container with:\n`mvn docker:build`\n\nStart your APS Docker containers with:\n`mvn docker:start`\n\nStop all the APS Docker containers with:\n`mvn docker:stop`\n\nBuild, test, create and start all the APS containers with:\n`mvn clean install docker:build docker:start`\n\n# Building your Docker container (optional)\n * Update if you need  _logback.xml_  in `/activiti-app-overlay-war/src/main/webapp/WEB-INF/classes`\n * Update if you need your  _activiti-app.properties_  in `/activiti-app-overlay-docker/src/main/docker/properties`\n\n# Few things to notice\n\n * You can use all the APS services such as: UserService, GroupService, TenantService and so on...\n * No parent pom\n * Standard JAR, WAR packaging with also Docker container generation\n * Works seamlessly with any IDE\n * Test your extensions with a consistent APS architecture running with Docker volumes\n\n# Contributors\nThanks to Luca Stancapiano, Carlo Cavallieri and Jessica Foroni for giving help on isolating the embedded integration tests suite. \n\n# Enterprise support\nOfficial maintenance and support of this project is delivered by Zia Consulting\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenpj%2Falfresco-process-services-project-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenpj%2Falfresco-process-services-project-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenpj%2Falfresco-process-services-project-sdk/lists"}