SlideShare a Scribd company logo
Alfresco Process Services
Extension Project
Dennis Koch
Learn. Connect. Collaborate.
Questions to be (hopefully) answered in 5 minutes
• Why would you need an APS extension project?
• How to setup an APS extension project?
• How to work with my favorite IDE?
• How to build the actual extension?
• How to install the extension?
• Anything else worth to mention?
Learn. Connect. Collaborate.
Questions to be (hopefully) answered in 5 minutes
• Why would you need an APS extension project?
• How to setup an APS extension project?
• How to work with my favorite IDE?
• How to build the actual extension?
• How to install the extension?
• Anything else worth to mention?
Learn. Connect. Collaborate.
Why would you need an APS extension project?
• Executing custom logic as part of a process:
– Example 1: A process contains a service task, referencing a bean and that
bean executes some custom logic.
– Example 2: A process is making use of store entity tasks, using a custom data
model, that is using an implementation of AlfrescoCustomDataModelService
– APS scans for those beans in the com.activti.extension.bean package
Learn. Connect. Collaborate.
Why would you need an APS extension project?
• Executing custom logic as part of a process
• Extending the APS REST API:
– Example: Add custom endpoints to either the public or the internal APS REST
API
– Depending on which API shall be extended, one has to implement a new class
in the package com.activiti.extension.rest or com.activiti.extension.api
– I recommend my lightning talk „APS REST API“ tomorrow for more details
1
Learn. Connect. Collaborate.
Why would you need an APS extension project?
• Executing custom logic as part of a process
• Extending the APS REST API
• Implementing different offered APS interfaces
– APS offers several interfaces that can be implemented for certain scenarios
– Example: In order to tweak the Activiti process engine configuration, one can
implement the ProcessEngineConfigurationConfigurer interface in the
package com.activiti.extension.conf
Learn. Connect. Collaborate.
Why would you need an APS extension project?
• Executing custom logic as part of a process
• Extending the APS REST API
• Implementing different offered APS interfaces
• Implementing a custom Identity Synchronization/Authentication
– Example: Instead of syncing with an external Identity Management system like
LDAP/AD, one wants to sync users from another IDM source
– One has to extend the AbstractExternalIdmSourceSyncService in the
package com.activiti.extension.bean
– NOTE: Not only synchronization needs to be extended, but also a new
AuthenticationProvider has to be implemented
Learn. Connect. Collaborate.
How to setup an APS extension project?
• Make sure prerequisites are fulfilled:
– Have Oracle JDK 1.8 installed
– Have JAVA_HOME environment variable set accordingly
– Have Apache Maven 3.2.5 or above installed
– Have M2_HOME environment variable set accordingly
– Have MAVEN_OPTS="-Xms1024m -Xmx1G“ set
Learn. Connect. Collaborate.
How to setup an APS extension project?
• APS extension project uses APS Maven dependencies
• APS dependencies are pulled from Alfresco’s Nexus repository accessible
at https://artifacts.alfresco.com
• Raise a case with Alfresco Support to get credentials for Nexus and the
contained APS repository
2
Learn. Connect. Collaborate.
How to setup an APS extension project?
• Create a project directory, e.g aps-extension
• Create a pom.xml file in this directory with the following content:
Learn. Connect. Collaborate.
How to setup an APS extension project?
• Create a project directory, e.g aps-extension
• Create a pom.xml file in this directory with the following content:
Learn. Connect. Collaborate.
How to setup an APS extension project?
• Create a project directory, e.g aps-extension
• Create a pom.xml file in this directory with the following content:
Learn. Connect. Collaborate.
How to setup an APS extension project?
• Create a project directory, e.g aps-extension
• Create a pom.xml file in this directory with the following content:
3
Learn. Connect. Collaborate.
How to setup an APS extension project?
• Create the following Maven project base folder structure following the
Maven standard directory layout
Learn. Connect. Collaborate.
How to setup an APS extension project?
• Add package folders, based on what you actually plan to
implement/extend
– e.g. add com/activiti/extension/bean to implement Service Task beans
– e.g. add com/activiti/extension/api to extend the public REST API
– e.g. add com/activiti/extension/conf to implement configuration interfaces
– etc.
Learn. Connect. Collaborate.
How to work with my favorite IDE?
• Modern IDEs support Maven projects, so you could have done previous
steps directly in your IDE
• If you started on the file system, you can simply import the project as
existing Maven project into your IDE
• Create new packages for new extensions and the related classes directly
in your development environment
Learn. Connect. Collaborate.
How to build the actual extension?
• Run “mvn clean install” on the Maven project
• Build process is starting with the following output:
• Required dependendencies are downloaded from Nexus:
• The build completes:
• Project folder has a target folder created containing the built extension jar
4
Learn. Connect. Collaborate.
How to build the actual extension?
• Run “mvn clean install” on the Maven project
• Build process is starting with the following output:
• Required dependendencies are downloaded from Nexus:
• The build completes:
• Project folder has a target folder created containing the built extension jar
Learn. Connect. Collaborate.
How to build the actual extension?
• In case of failure, inspect the thrown Error
• Identify the issue, correct it and then re-run build with “mvn –install”
Learn. Connect. Collaborate.
How to install the extension?
• Copy the jar from your project to activiti-app/WEB-INF/lib
• Restart the APS deployment
Learn. Connect. Collaborate.
Anything else worth to mention?
• The extension project is really thought to quickly develop something and
drop the extension library into an existing APS deployment
• One cannot run APS from within the extension project and there is
currently no SDK for APS like we offer it for ACS
• Alfresco SDK has an experimental feature to run APS via “–P run” but this
is not officially supported nor documented yet.
• Follow the SDK channels closely for future updates 
Alfresco Process Services
Extension Project
Thank you!

More Related Content

What's hot

Alfresco Process Services (APS) and the Internet of Things
Alfresco Process Services (APS) and the Internet of ThingsAlfresco Process Services (APS) and the Internet of Things
Alfresco Process Services (APS) and the Internet of Things
Nathan McMinn
 
Node.js to the rescue
Node.js to the rescueNode.js to the rescue
Node.js to the rescue
Marko Heijnen
 
Serverless Delivery
Serverless DeliveryServerless Delivery
Serverless Delivery
Casey Lee
 
Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019
J V
 
Alfresco Digital Business Platform - Why, How, What
Alfresco Digital Business Platform - Why, How, WhatAlfresco Digital Business Platform - Why, How, What
Alfresco Digital Business Platform - Why, How, What
Mario Romano
 
DevOps and AWS - Code PaLOUsa 2017
DevOps and AWS  - Code PaLOUsa 2017DevOps and AWS  - Code PaLOUsa 2017
DevOps and AWS - Code PaLOUsa 2017
James Strong
 
Serverless meetup - OpenWhisk overview and architecture
Serverless meetup - OpenWhisk overview and architectureServerless meetup - OpenWhisk overview and architecture
Serverless meetup - OpenWhisk overview and architecture
Sandeep Paliwal
 
Extending Alfresco Digital Workspace with Docusign
Extending Alfresco Digital Workspace with DocusignExtending Alfresco Digital Workspace with Docusign
Extending Alfresco Digital Workspace with Docusign
Luis Colorado
 
Building Search for Bitbucket Cloud
Building Search for Bitbucket CloudBuilding Search for Bitbucket Cloud
Building Search for Bitbucket Cloud
Atlassian
 
(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
Amazon Web Services
 
Deploying systems using AWS DevOps tools
Deploying systems using AWS DevOps toolsDeploying systems using AWS DevOps tools
Deploying systems using AWS DevOps tools
MassTLC
 
Extensibility for ADF applications
Extensibility for ADF applicationsExtensibility for ADF applications
Extensibility for ADF applications
Denys Vuika
 
Chef Cookbook Workflow
Chef Cookbook WorkflowChef Cookbook Workflow
Chef Cookbook Workflow
Amazon Web Services
 
Salesforce winter 16 release
Salesforce winter 16 releaseSalesforce winter 16 release
Salesforce winter 16 release
Jitendra Zaa
 
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISEDEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
European Collaboration Summit
 
Modern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaModern websites in 2020 and Joomla
Modern websites in 2020 and Joomla
George Wilson
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
All Things Open
 
Twelve Factor Serverless Applications
Twelve Factor Serverless ApplicationsTwelve Factor Serverless Applications
Twelve Factor Serverless Applications
Amazon Web Services
 
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalkContinuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Thomas Shaw
 
Managing the Continuous Delivery of Code to AWS Lambda
Managing the Continuous Delivery of Code to AWS LambdaManaging the Continuous Delivery of Code to AWS Lambda
Managing the Continuous Delivery of Code to AWS Lambda
Amazon Web Services
 

What's hot (20)

Alfresco Process Services (APS) and the Internet of Things
Alfresco Process Services (APS) and the Internet of ThingsAlfresco Process Services (APS) and the Internet of Things
Alfresco Process Services (APS) and the Internet of Things
 
Node.js to the rescue
Node.js to the rescueNode.js to the rescue
Node.js to the rescue
 
Serverless Delivery
Serverless DeliveryServerless Delivery
Serverless Delivery
 
Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019
 
Alfresco Digital Business Platform - Why, How, What
Alfresco Digital Business Platform - Why, How, WhatAlfresco Digital Business Platform - Why, How, What
Alfresco Digital Business Platform - Why, How, What
 
DevOps and AWS - Code PaLOUsa 2017
DevOps and AWS  - Code PaLOUsa 2017DevOps and AWS  - Code PaLOUsa 2017
DevOps and AWS - Code PaLOUsa 2017
 
Serverless meetup - OpenWhisk overview and architecture
Serverless meetup - OpenWhisk overview and architectureServerless meetup - OpenWhisk overview and architecture
Serverless meetup - OpenWhisk overview and architecture
 
Extending Alfresco Digital Workspace with Docusign
Extending Alfresco Digital Workspace with DocusignExtending Alfresco Digital Workspace with Docusign
Extending Alfresco Digital Workspace with Docusign
 
Building Search for Bitbucket Cloud
Building Search for Bitbucket CloudBuilding Search for Bitbucket Cloud
Building Search for Bitbucket Cloud
 
(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
 
Deploying systems using AWS DevOps tools
Deploying systems using AWS DevOps toolsDeploying systems using AWS DevOps tools
Deploying systems using AWS DevOps tools
 
Extensibility for ADF applications
Extensibility for ADF applicationsExtensibility for ADF applications
Extensibility for ADF applications
 
Chef Cookbook Workflow
Chef Cookbook WorkflowChef Cookbook Workflow
Chef Cookbook Workflow
 
Salesforce winter 16 release
Salesforce winter 16 releaseSalesforce winter 16 release
Salesforce winter 16 release
 
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISEDEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
 
Modern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaModern websites in 2020 and Joomla
Modern websites in 2020 and Joomla
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
 
Twelve Factor Serverless Applications
Twelve Factor Serverless ApplicationsTwelve Factor Serverless Applications
Twelve Factor Serverless Applications
 
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalkContinuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
 
Managing the Continuous Delivery of Code to AWS Lambda
Managing the Continuous Delivery of Code to AWS LambdaManaging the Continuous Delivery of Code to AWS Lambda
Managing the Continuous Delivery of Code to AWS Lambda
 

Similar to Alfresco Process Services extension project - Alfresco DevCon 2018

Using and extending Alfresco Content Application
Using and extending Alfresco Content ApplicationUsing and extending Alfresco Content Application
Using and extending Alfresco Content Application
Denys Vuika
 
Getting started with CFEngine - Webinar
Getting started with CFEngine - WebinarGetting started with CFEngine - Webinar
Getting started with CFEngine - Webinar
CFEngine
 
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
Paul Withers
 
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
European Collaboration Summit
 
Eclipse IDE, 2019.09, Java Development
Eclipse IDE, 2019.09, Java Development Eclipse IDE, 2019.09, Java Development
Eclipse IDE, 2019.09, Java Development
Pei-Hsuan Hsieh
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFx
Thomas Daly
 
Ember addons, served three ways
Ember addons, served three waysEmber addons, served three ways
Ember addons, served three ways
Mike North
 
Intelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest IstanbulIntelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest Istanbul
Mert Çalışkan
 
GTU Asp.net Project Training Guidelines
GTU Asp.net Project Training GuidelinesGTU Asp.net Project Training Guidelines
GTU Asp.net Project Training Guidelines
TOPS Technologies
 
Devops
DevopsDevops
Devops
JyothirmaiG4
 
Deploy, Manage, and Scale Your Apps with OpsWorks and Elastic Beanstalk
Deploy, Manage, and Scale Your Apps with OpsWorks and Elastic BeanstalkDeploy, Manage, and Scale Your Apps with OpsWorks and Elastic Beanstalk
Deploy, Manage, and Scale Your Apps with OpsWorks and Elastic Beanstalk
Amazon Web Services
 
MongoDB Ops Manager and Kubernetes - James Broadhead
MongoDB Ops Manager and Kubernetes - James BroadheadMongoDB Ops Manager and Kubernetes - James Broadhead
MongoDB Ops Manager and Kubernetes - James Broadhead
MongoDB
 
Office 365 Developer Bootcamp: Microsoft Teams
Office 365 Developer Bootcamp: Microsoft TeamsOffice 365 Developer Bootcamp: Microsoft Teams
Office 365 Developer Bootcamp: Microsoft Teams
David Schneider
 
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris O'Brien
 
Build tool
Build toolBuild tool
Build tool
Mallikarjuna G D
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
edm00se
 
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment ToolsBP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
Alfresco Software
 
Rapidly prototyping web applications using BackPress
Rapidly prototyping web applications using BackPressRapidly prototyping web applications using BackPress
Rapidly prototyping web applications using BackPress
Nathaniel Taintor
 
software technology benchmarking
software  technology benchmarkingsoftware  technology benchmarking
software technology benchmarking
Mallikarjuna G D
 
Building a mobile app connected to WordPress with WP-AppKit
Building a mobile app connected to WordPress with WP-AppKitBuilding a mobile app connected to WordPress with WP-AppKit
Building a mobile app connected to WordPress with WP-AppKit
Benjamin LUPU
 

Similar to Alfresco Process Services extension project - Alfresco DevCon 2018 (20)

Using and extending Alfresco Content Application
Using and extending Alfresco Content ApplicationUsing and extending Alfresco Content Application
Using and extending Alfresco Content Application
 
Getting started with CFEngine - Webinar
Getting started with CFEngine - WebinarGetting started with CFEngine - Webinar
Getting started with CFEngine - Webinar
 
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
 
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
 
Eclipse IDE, 2019.09, Java Development
Eclipse IDE, 2019.09, Java Development Eclipse IDE, 2019.09, Java Development
Eclipse IDE, 2019.09, Java Development
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFx
 
Ember addons, served three ways
Ember addons, served three waysEmber addons, served three ways
Ember addons, served three ways
 
Intelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest IstanbulIntelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest Istanbul
 
GTU Asp.net Project Training Guidelines
GTU Asp.net Project Training GuidelinesGTU Asp.net Project Training Guidelines
GTU Asp.net Project Training Guidelines
 
Devops
DevopsDevops
Devops
 
Deploy, Manage, and Scale Your Apps with OpsWorks and Elastic Beanstalk
Deploy, Manage, and Scale Your Apps with OpsWorks and Elastic BeanstalkDeploy, Manage, and Scale Your Apps with OpsWorks and Elastic Beanstalk
Deploy, Manage, and Scale Your Apps with OpsWorks and Elastic Beanstalk
 
MongoDB Ops Manager and Kubernetes - James Broadhead
MongoDB Ops Manager and Kubernetes - James BroadheadMongoDB Ops Manager and Kubernetes - James Broadhead
MongoDB Ops Manager and Kubernetes - James Broadhead
 
Office 365 Developer Bootcamp: Microsoft Teams
Office 365 Developer Bootcamp: Microsoft TeamsOffice 365 Developer Bootcamp: Microsoft Teams
Office 365 Developer Bootcamp: Microsoft Teams
 
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
 
Build tool
Build toolBuild tool
Build tool
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
 
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment ToolsBP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
 
Rapidly prototyping web applications using BackPress
Rapidly prototyping web applications using BackPressRapidly prototyping web applications using BackPress
Rapidly prototyping web applications using BackPress
 
software technology benchmarking
software  technology benchmarkingsoftware  technology benchmarking
software technology benchmarking
 
Building a mobile app connected to WordPress with WP-AppKit
Building a mobile app connected to WordPress with WP-AppKitBuilding a mobile app connected to WordPress with WP-AppKit
Building a mobile app connected to WordPress with WP-AppKit
 

Recently uploaded

Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 

Recently uploaded (20)

Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 

Alfresco Process Services extension project - Alfresco DevCon 2018

  • 2. Learn. Connect. Collaborate. Questions to be (hopefully) answered in 5 minutes • Why would you need an APS extension project? • How to setup an APS extension project? • How to work with my favorite IDE? • How to build the actual extension? • How to install the extension? • Anything else worth to mention?
  • 3. Learn. Connect. Collaborate. Questions to be (hopefully) answered in 5 minutes • Why would you need an APS extension project? • How to setup an APS extension project? • How to work with my favorite IDE? • How to build the actual extension? • How to install the extension? • Anything else worth to mention?
  • 4. Learn. Connect. Collaborate. Why would you need an APS extension project? • Executing custom logic as part of a process: – Example 1: A process contains a service task, referencing a bean and that bean executes some custom logic. – Example 2: A process is making use of store entity tasks, using a custom data model, that is using an implementation of AlfrescoCustomDataModelService – APS scans for those beans in the com.activti.extension.bean package
  • 5. Learn. Connect. Collaborate. Why would you need an APS extension project? • Executing custom logic as part of a process • Extending the APS REST API: – Example: Add custom endpoints to either the public or the internal APS REST API – Depending on which API shall be extended, one has to implement a new class in the package com.activiti.extension.rest or com.activiti.extension.api – I recommend my lightning talk „APS REST API“ tomorrow for more details 1
  • 6. Learn. Connect. Collaborate. Why would you need an APS extension project? • Executing custom logic as part of a process • Extending the APS REST API • Implementing different offered APS interfaces – APS offers several interfaces that can be implemented for certain scenarios – Example: In order to tweak the Activiti process engine configuration, one can implement the ProcessEngineConfigurationConfigurer interface in the package com.activiti.extension.conf
  • 7. Learn. Connect. Collaborate. Why would you need an APS extension project? • Executing custom logic as part of a process • Extending the APS REST API • Implementing different offered APS interfaces • Implementing a custom Identity Synchronization/Authentication – Example: Instead of syncing with an external Identity Management system like LDAP/AD, one wants to sync users from another IDM source – One has to extend the AbstractExternalIdmSourceSyncService in the package com.activiti.extension.bean – NOTE: Not only synchronization needs to be extended, but also a new AuthenticationProvider has to be implemented
  • 8. Learn. Connect. Collaborate. How to setup an APS extension project? • Make sure prerequisites are fulfilled: – Have Oracle JDK 1.8 installed – Have JAVA_HOME environment variable set accordingly – Have Apache Maven 3.2.5 or above installed – Have M2_HOME environment variable set accordingly – Have MAVEN_OPTS="-Xms1024m -Xmx1G“ set
  • 9. Learn. Connect. Collaborate. How to setup an APS extension project? • APS extension project uses APS Maven dependencies • APS dependencies are pulled from Alfresco’s Nexus repository accessible at https://artifacts.alfresco.com • Raise a case with Alfresco Support to get credentials for Nexus and the contained APS repository 2
  • 10. Learn. Connect. Collaborate. How to setup an APS extension project? • Create a project directory, e.g aps-extension • Create a pom.xml file in this directory with the following content:
  • 11. Learn. Connect. Collaborate. How to setup an APS extension project? • Create a project directory, e.g aps-extension • Create a pom.xml file in this directory with the following content:
  • 12. Learn. Connect. Collaborate. How to setup an APS extension project? • Create a project directory, e.g aps-extension • Create a pom.xml file in this directory with the following content:
  • 13. Learn. Connect. Collaborate. How to setup an APS extension project? • Create a project directory, e.g aps-extension • Create a pom.xml file in this directory with the following content: 3
  • 14. Learn. Connect. Collaborate. How to setup an APS extension project? • Create the following Maven project base folder structure following the Maven standard directory layout
  • 15. Learn. Connect. Collaborate. How to setup an APS extension project? • Add package folders, based on what you actually plan to implement/extend – e.g. add com/activiti/extension/bean to implement Service Task beans – e.g. add com/activiti/extension/api to extend the public REST API – e.g. add com/activiti/extension/conf to implement configuration interfaces – etc.
  • 16. Learn. Connect. Collaborate. How to work with my favorite IDE? • Modern IDEs support Maven projects, so you could have done previous steps directly in your IDE • If you started on the file system, you can simply import the project as existing Maven project into your IDE • Create new packages for new extensions and the related classes directly in your development environment
  • 17. Learn. Connect. Collaborate. How to build the actual extension? • Run “mvn clean install” on the Maven project • Build process is starting with the following output: • Required dependendencies are downloaded from Nexus: • The build completes: • Project folder has a target folder created containing the built extension jar 4
  • 18. Learn. Connect. Collaborate. How to build the actual extension? • Run “mvn clean install” on the Maven project • Build process is starting with the following output: • Required dependendencies are downloaded from Nexus: • The build completes: • Project folder has a target folder created containing the built extension jar
  • 19. Learn. Connect. Collaborate. How to build the actual extension? • In case of failure, inspect the thrown Error • Identify the issue, correct it and then re-run build with “mvn –install”
  • 20. Learn. Connect. Collaborate. How to install the extension? • Copy the jar from your project to activiti-app/WEB-INF/lib • Restart the APS deployment
  • 21. Learn. Connect. Collaborate. Anything else worth to mention? • The extension project is really thought to quickly develop something and drop the extension library into an existing APS deployment • One cannot run APS from within the extension project and there is currently no SDK for APS like we offer it for ACS • Alfresco SDK has an experimental feature to run APS via “–P run” but this is not officially supported nor documented yet. • Follow the SDK channels closely for future updates 