Ein Überblick über die Integration von Spring in Activiti

Dreamteam für BPM-Projekte


Mit der BPMN-2.0-Spezifikation und der Option, fachlich modellierte Geschäftsprozesse direkt auch in einer Prozess-Engine auszuführen, rückte eine bereits seit Jahren propagierte Vision in den Bereich des Möglichen: Round Trip Engineering zwischen Fach- und IT-Abteilungen in BPM-Projekten. Dass der in diesem Zusammenhang häufig genutzte Begriff „Zero Code“ jedoch nur ein Marketingversprechen ist, dürfte für erfahrene Entwickler nichts Neues gewesen sein. Dies wurde auch bereits in verschiedenen Artikeln [1], [2] aufgezeigt. Trotzdem lassen sich heutzutage auch große und komplexe Prozesse mit überraschend wenig Code implementieren, vor allem dann, wenn die mächtigen Integrationswerkzeuge des Spring Frameworks auf einfache Art und Weise innerhalb einer Prozess-Engine wie Activiti genutzt werden können.

In diesem Artikel soll gezeigt werden, an welchen Stellen Spring in Activiti integriert wurde und welche Features bei der Implementierung von BPMN-2.0-Prozessen helfen. Dabei werden die einzelnen Punkte jeweils durch einfache Codebeispiele beschrieben. Das vollständige Beispielprojekt ist über GitHub [3] als Maven-Projekt abrufbar.

Als das Activiti-Projekt im Jahr 2010 von Alfresco gestartet wurde, war direkt auch SpringSource als Partner mit im Boot. So verwundert es wenig, dass das Spring Framework sehr gut in Activiti integriert ist und umgekehrt auch Activiti selbst sehr einfach in bestehenden Spring-Projekten eingesetzt werden kann. Der offizielle Activiti User Guide [4] gibt dabei bereits einen guten Überblick über die Spring-Integration. Außerdem enthält das Activiti Download Package das Beispielprojekt „activiti-spring-examples“, das verschiedene Features der Spring-Integration exemplarisch vorstellt. Nachfolgend sollen bestimmte Eigenheiten dieser Spring-Integration genauer vorgestellt und auch auf Best Practices aus dem Projektalltag hingewiesen werden.

ProcessEngineFactoryBean als Startpunkt

Um Activiti in ein bestehendes Spring-Projekt zu integrieren, reicht es zunächst, die beiden Bibliotheken activiti-engine.jar und activiti-spring.jar zum Classpath der Anwendung (z. B. WEB-INF/lib einer WAR) hinzuzufügen. Der eigentliche Einstiegspunkt für die Spring-Integration ist jedoch die Klasse ProcessEngineFactoryBean, die als normale Spring Bean definiert wird und die ProcessEngine als Herz von Activiti erstellt. Deren Konfiguration erfolgt über die Bean SpringProcessEngineConfiguration, über die alle Einstellungen der Engine – wie z. B. die Data Sourc...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang