Friday, March 10, 2017

How-To write and document a Maven Plugin


"Maven is - at its heart - a plugin execution framework; all work is done by plugins."

This quote is the start of the Maven Plugins documentation. Thus, if you want to customize your Maven build project you should think about using a special plugin. If no plugin for your task is available you have the possibility to write your own.

Tuesday, March 7, 2017

Java 9 - Multi-Release Jar Example

Java 9 offers the possibility to build a JAR file with a format that "allows multiple, Java-release-specific versions of class files to coexist in a single archive" (JEP 238: Multi-Release JAR Files).

Content of my Multi-Release Jar example artifact


I build a sample project to show how Multi-Release Jars can be build with Maven. You can find it here on my GitHub page.

Sunday, February 26, 2017

First Steps With Degraph

A crucial part of implementing software components is to get your code free from unwanted package dependencies. But most of the time it is hard to get an overview of which code depends on each other. SonarQube is a great tool but unfortunately they dropped the Package Tangle Index analysis support (see 'Also worth noting' here). JDepend is another tool but I could not really get familiar with it (even not with the eclipse IDE integration). Thus I decided to try Degraph - a newer tool that I heard of some time ago.

Sunday, February 12, 2017

Camunda BPM User Task with Timer Boundary Event to react on follow-up / due dates

User tasks (in general) often work with follow-up or due dates. Camunda BPM does support this by providing corresponding properties / members on the User Task BPMN. The Camunda API allows to filter user tasks by these dates so that due or overdue tasks can be found easily.

Beside the query filter also Timer Boundary Events on user tasks can be used to "detect" the maturity of a user task and to trigger an automatic action.

I implemented a working example to show the usage of timer boundary events on user tasks. You can find it at this GitHub location.

Have fun!

Wednesday, December 7, 2016

Customizable Event Log inside Camunda BPM process


Example BPM Diagram


A BPM (Business Process Management) process exists of lots of flow objects (activities, events, gateways) and at some point of execution - for example when a user is prompted to perform a task - an information about "what happend so far" is helpful or even required.

This post discusses a approach to assemble a custom Event Log by using a decision table inside a BPM process that is executed with the Camunda BPM engine.

As the solution was put into code you will not find the post content here, but near the code. So have a look at my camunda-customizable-event-log GitHub project.

Feel free to add comments here.

Monday, June 20, 2016

Running SonarQube behind a proxy


I am a longtime user of the SonarQube quality management platform and was very pleased when SonarQube 5.6 LTS was released. I expected that the upgrade from the 4.5.7 LTS version would be as trouble-free as updates in the past. Unfortunately I noticed that the native https support was dropped. Thus the https support now has to be provided by a proxy as described in the "Securing the Server Behind a Proxy" documentation part.