-
Language:
English
-
Language:
English
Chapter 2. Creating work item handler projects
Create the software project to contain all configurations, mappings, and executable code for the custom task.
You can create a work item handler from scratch or use a Maven archetype to create an example project. Red Hat Process Automation Manager provides the jbpm-workitems-archetype
from the Red Hat Maven repository for this purpose.
Procedure
Open the command line and create a directory where you will build your work item handler such as
workitem-home
:$ mkdir workitem-home
Check the Maven
settings.xml
file and ensure that the Red Hat Maven repository is included in the repository list.NoteSetting up Maven is outside the scope of this guide.
For example, to add the online Red Hat Maven repository to your Maven
settings.xml
file:<settings> <profiles> <profile> <id>my-profile</id> <activation> <activeByDefault>true</activeByDefault> </activation> <repositories> <repository> <id>redhat-ga</id> <url>http://maven.repository.redhat.com/ga/</url> <snapshots> <enabled>false</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </repository> ... </repositories> </profile> </profiles> ... </settings>
Find the Red Hat library version and perform one of the following tasks:
- To find the library version online, see What is the mapping between Red Hat Process Automation Manager and the Maven library version?.
-
To find the library version offline, check
Implementation-Version
inbusiness-central.war/META-INF/MANIFEST.MF
orImplementation-Version
inkie-server.war/META-INF/MANIFEST.MF
.
In the
workitem-home
directory, execute the following command:$ mvn archetype:generate \ -DarchetypeGroupId=org.jbpm \ -DarchetypeArtifactId=jbpm-workitems-archetype \ -DarchetypeVersion=<redhat-library-version> \ -Dversion=1.0.0-SNAPSHOT \ -DgroupId=com.redhat \ -DartifactId=myworkitem \ -DclassPrefix=MyWorkItem
Table 2.1. Parameter descriptions
Parameter Description -DarchetypeGroupId
Specific to the archetype and must remain unchanged.
-DarchetypeArtifactId
Specific to the archetype and must remain unchanged.
-DarchetypeVersion
Red Hat library version that is searched for when Maven attempts to download the
jbpm-workitems-archetype
artifact.-Dversion
Version of your specific project. For example,
1.0.0-SNAPSHOT
.-DgroupId
Maven group of your specific project. For example,
com.redhat
.-DartifactId
Maven ID of your specific project. For example,
myworkitem
.-DclassPrefix
String added to the beginning of Java classes when Maven generates the classes for easier identification. For example,
MyWorkItem
.A
myworkitem
folder is created in theworkitem-home
directory. For example:assembly/ assembly.xml src/ main/ java/ com/ redhat/ MyWorkItemWorkItemHandler.java repository/ resources/ test/ java/ com/ redhat/ MyWorkItemWorkItemHandlerTest.java MyWorkItemWorkItemIntegrationTest.java resources/ com/ redhat/ pom.xml
Perform the following two items as a workaround for an active bug in the archetype when building artifacts from the generated project:
Edit the
pom.xml
file to remove or comment out the following dependency:<dependency> <groupId>org.jbpm</groupId> <artifactId>jbpm-workitems-core</artifactId> <type>test-jar</type> <scope>test</scope> </dependency>
Include the
-Dmaven.test.skip=true
variable when executing Maven builds. For example,$ mvn clean package -Dmaven.test.skip=true
.NoteThis is generally not recommended but is necessary to workaround the bug. For more information about the bug, see Generating Maven jbpm-workitems-archetype fails due to missing "tests" jar.
-
Add any Maven dependencies required by the work item handler class to the
pom.xml
file. To create a deployable JAR for this project, in the parent project folder where the pom.xml file is located, execute the following command:
$ mvn clean package -Dmaven.test.skip=true
Several files are created in the
target/
directory which include the following two main files:Table 2.2. File descriptions
Parameter Description myworkitems-<version>.jar
Used for direct deployment to Red Hat Process Automation Manager.
myworkitems-<version>.zip
Used for deployment using a service repository.