Process applications basically consist of process model(s) and Java code which both exist side by side and are edited in different tools. For the process models you will most likely use the Camunda Modeler, for the Java code the IDE of your choice. However, no one checks whether model and code are aligned beforehand, e.g. if a bean referenced in a delegate expression actually exists in the code. With the viadee Process Application Validator (vPAV, Open-Source), you can validate your process application regarding these inconsistencies with a simple JUnit test. You can also ensure that specific best-practices are met (e.g. naming conventions).

If you feel addressed by now, we might give it a try. It is as easy as adding a maven dependency (see below). Integrated in your CD/CI pipeline you’ll be able to find inconsistencies in the early stages.

Error highlighting of critical elements

Features/Checkers

Checker

Summary

Java Delegate Checker

Is the implementation (Java class or Spring bean reference) available and usable?

Dmn Task Checker

Is the referenced DMN table available?

Embedded Groovy Script Checker

Is the script available and is its syntax correct?

Process Variables Name Convention Checker

Do variables in the process context adhere to desired naming conventions?

Task Naming Convention Checker

Do task names in the model adhere to desired naming conventions?

Versioning Checker

Do java classes implementing tasks fit a versioning scheme?

Xor Naming Convention Checker

Are XOR gateways ending with e.g. “?”. Conventions are configurable.

No Script Checker

Is there any script in the model?

Element Id Convention Checker

Do task ids in the model adhere to desired naming conventions?

Timer Expression Checker

Are time events following the ISO 8601 scheme?

No Expression Checker

Are expressions used as referenced task implementation? Expressions should only be the last resort.

Process Variables Model Checker (Experimental)

Are process variables in the model provided in the code for all paths?

Get Started

In order to provide ease of use, the viadeeProcessApplicationValidator can be integrated as a Maven dependency and executed as JUnit test. For demonstration purposes we forked the Camunda BPM examples to demonstrate the easy integration of vPAV.

Maven

You can start the validation by adding the dependency to your local projects POM.xml.

Note, that the Validator receives the Spring context. Thereby, the validation can
check referenced beans and their names.

Configuration

The viadeeProcessApplicationValidator provides a file called ruleSetDefault.xml, which is a basic configuration. By creating and storing a ruleSet.xml in your local project, you are able to use your very own set of rules. This allows you to de-/activate certain checkers or specify naming conventions, etc.

One set of rules to rule them all

If you want to manage more than one project at a time, it might be of use to have a parent set of rules. All projects inheriting from your parent project will use the same set of rules. But beware, local rules will override and therefore allow maximum customization.

Exclusion of false positives

With the creation of a file called .ignoreIssues you can whitelist known issues by listing their respective IDs, so they don’t break your build.

Example

# Comment
8d04f2e77a7d282c521098ab947ac060

Output

The result of the check is first of all a direct one: if at least one inconsistency is found on the ERROR level, it will break your build or count as a failed unit test which will break your build too.

Further, the consistency check will provide an XML version, a JSON version and a visual version based on BPMN.io (see above) for all errors and warnings that have been found.

Visual Output

With the visual output you will be able to identify errors and warnings at a glance. Highlighting all elements that contain at least a warning and providing a comprehensive list that will let you find and eradicate errors in less than no time and get your build back up and running.

List of critical elements with respective message

Contributing to the community version of the viadeeProcessApplicationValidator

The viadeeProcessApplicationValidator has been developed as open-source software by employees of the viadee Unternehmensberatung GmbH, a German IT consulting company located in Cologne and Münster, who support their customers in Camunda and software development projects.

If you want to extend our software, check out our Git repository and feel free to contribute your own ideas.
For further questions, remarks or feedback do not hesitate to contact us: