Add Workflow Process Management to a Project
Introduction
Goal
Add the Workflow Process Management feature to a BloomReach Experience implementation project.
Background
Workflow Process Management is an optional BloomReach Experience feature. This page explains how to add Workflow Process Management to an implementation project and configure its data stores in a local Cargo-based development environment. After the steps explained below, the CMS application will contain an additional perspective called 'Projects'.
Installation through Essentials
As of Bloomreach Experience Manager v12.1, the Projects feature can be installed into your project through Essentials (v4.1). If you start developing a new project, ensure that you "Make use of Enterprise features", navigate to the Library tab in Essentials, locate the Projects feature and click "Install feature". Essentials then applies the steps documented for manual installation below to your project. Rebuild and restart your project, and continue to create an admin user for your /bpm application as described at the bottom of this page.
Manual Installation Instructions
Start with a BloomReach Experience project created using the Maven archetype, as explained in Set Up a BloomReach Experience Project.
Add Maven Dependencies
Add the following Maven dependencies:
cms/pom.xml:
<dependency> <groupId>com.onehippo.cms7</groupId> <artifactId>hippo-addon-wpm-dependencies-cms</artifactId> <type>pom</type> </dependency>
site/pom.xml:
<dependency> <groupId>com.onehippo.cms7</groupId> <artifactId>hippo-addon-wpm-dependencies-site</artifactId> <type>pom</type> </dependency>
Configure an H2 Database JNDI Data Source
In your local Cargo-based development environment, configure a JNDI data source to store project data in the embedded H2 SQL Database.
Add the following JNDI environment variable to conf/context.xml:
<Resource name="jdbc/wpmDS" auth="Container" type="javax.sql.DataSource" maxTotal="100" maxIdle="10" initialSize="10" maxWaitMillis="10000" testWhileIdle="true" testOnBorrow="false" validationQuery="SELECT 1" timeBetweenEvictionRunsMillis="10000" minEvictableIdleTimeMillis="60000" username="sa" password="" driverClassName="org.h2.Driver" url="jdbc:h2:./wpm/wpm;AUTO_SERVER=TRUE"/>
Add the BPM Webapp to Cargo
In your local Cargo-based development environment, add the BPM webapp.
In your projects top-level pom.xml, locate the cargo.run profile.
Directly inside the <profile> element (e.g. after the line <id>cargo.run</id>), add the following dependencies:
<dependencies> <dependency> <groupId>com.onehippo.cms7</groupId> <artifactId>hippo-enterprise-services</artifactId> </dependency> <dependency> <groupId>com.onehippo.cms7</groupId> <artifactId>hippo-addon-wpm-camunda</artifactId> <type>war</type> </dependency> </dependencies>
Inside the <deployables> element, add the following deployable:
<deployable> <groupId>com.onehippo.cms7</groupId> <artifactId>hippo-addon-wpm-camunda</artifactId> <type>war</type> <properties> <context>/bpm</context> </properties> </deployable>
Inside the <container> element, add the following dependency:
<dependencies> <dependency> <groupId>com.onehippo.cms7</groupId> <artifactId>hippo-enterprise-services</artifactId> <classpath>shared</classpath> </dependency> </dependencies>
Add Dependencies to the Distribution Profiles
Add the Workflow Process Management dependencies to the distribution profiles in your project.
In your projects top-level pom.xml, locate the dist and dist-with-content profiles.
Add the following dependencies to the <dependencies> element inside the dist profile as well as to the <dependencies> element inside the dist-with-content profile:
<dependency> <groupId>com.onehippo.cms7</groupId> <artifactId>hippo-addon-wpm-camunda</artifactId> <type>war</type> </dependency> <dependency> <groupId>com.onehippo.cms7</groupId> <artifactId>hippo-enterprise-services</artifactId> </dependency>
In the file src/main/assembly/webapps-component.xml, add the following directly inside the <component> element:
<dependencySets> <dependencySet> <outputDirectory>webapps</outputDirectory> <outputFileNameMapping>bpm.war</outputFileNameMapping> <includes> <include>com.onehippo.cms7:hippo-addon-wpm-camunda:war</include> </includes> </dependencySet> </dependencySets>
In the file src/main/assembly/shared-lib-component.xml, add the following directly inside the <includes> element:
<include>com.onehippo.cms7:hippo-enterprise-services</include>
Add Loggers to Log4j2 Configuration
Add the following loggers to conf/log4j2-dev.xml and conf/log4j2-dist.xml:
<Logger name="com.onehippo.cms7.hst.configuration.branch" level="warn"/> <Logger name="com.onehippo.cms7.services.wpm.project" level="warn"/>
Rebuild and Restart
Stop the application (if it was running), and rebuild and (re)start it as explained in the Getting Started Trail.
Verify that the CMS application now has a Projects perspective.
Create Admin User for BPM
Point your browser to http://localhost:8080/bpm/.
Create an administrative user for the BPM webapp using the form on this page.
Roles and Permissions
Log in to the CMS as admin and add all users that should be able to create, update, and delete projects to the group "webmaster".