Björn Scheppler, 16.8.2019
Dieses Maven-Projekt kann genutzt werden als Startpunkt für Spring Boot-Projekte, bei welchen Tasks, die von einer Camunda Process Engine "veröffentlicht" werden, abzuarbeiten. Als Basis wird dafür einerseits eine klassische Spring Boot-Applikation genutzt und als primäre weitere Abhängigkeit der Java External Task Client von Camunda, welcher im Prinzip nichts anderes tut, als die REST API-Calls für External Tasks zu kapseln. Im konkreten Beispiel wird das Senden eines Tweets durchgeführt, wofür die Twitter4J- Library zur Verfügung steht.
Entsprechend enthält das Projekt folgende Komponenten
- Abhängigkeiten:
- Spring Boot Starter
- Twitter4J
- Camunda External Task Client
- Properties:
- application.properties: URL der Process Engine REST-Schnittstelle
- twitter4j(-template).properties: Zugangsdaten zu Twitter, welche nicht auf Github versioniert werden. Das Template-File kann als Vorlage genutzt werden.
- Source-Code:
- ExternalTaskClientSpringBootTemplateApplication: Enthält die Main-Methode, um die Spring Boot-Applikation zu starten
- TwitterService: Stellt eine Verbindung zu Twitter her über Twitter4J und exponiert die zwei Methoden der Twitter API (Tweeting und Ausgeben einer Liste der letzten Tweets)
- TweetSendingExternalTaskClient: Baut Verbindung zu Camunda Process Engine auf, abonniert das Topic "SendTweet" und verweist auf SendTweetHandler, um gefetchte Tasks auch tatsächlich abzuarbeiten
- SendTweetHandler: Wird von TweetSendingExternalTaskClient genutzt. Kommuniziert mit TwitterService, um den Tweet-Content zu posten und den Task als erledigt zu kommunizieren an Camunda
Siehe auch https://github.com/zhaw-gpi/external-task-client-mocking-template für das Pendant zu diesem Projekt-Template, welches eine minimalistische Version des External Task Clients für das gleiche Topic hat, welche aber das Senden von Tweets nur mockt.
- Erstmalig oder bei Problemen
mvn clean install
durchführen. Zudem ein twitter4j.properties-File anlegen und mit den Credentials von Twitter ausfüllen. Als Template die Datei twitter4j-template.properties verwenden. - Bei Änderungen am POM-File oder bei (Neu)kompilierungsbedarf genügt ein
mvn install
- Vor dem Start muss zunächst die Process Engine laufen, bei welcher man sich registrieren will, das heisst z.B. das Camunda Projekttemplate (https://github.com/zhaw-gpi/project-template)
- Für den Start ist ein
java -jar .\target\NAME DES JAR-FILES.jar
(Cmd) erforderlich. Dabei wird die Main-Methode in ExternalTaskClientSpringBootTemplateApplication.java ausgeführt. - Das Beenden geschieht mit CTRL+C
- Damit man den Client in Aktion sieht, muss mindestens eine Aufgabe vom Topic "SendTweet" zu erledigen sein.
- Hierzu steht im Camunda Projekttemplate ein Prozess für das Verarbeiten von Tweet-Anfragen zur Verfügung.
- Damit es wirklich etwas zu posten gibt, muss beim Schritt "Tweet-Anfrage prüfen" der Status auf "Genehmigt" gesetzt werden.
- Nach einiger Verzögerung sollte nun in der Output-Konsole die letzten 20 Tweets, zuoberst der neuste, ausgegeben werden.
Siehe hierzu den Text im gleich lautenden Abschnitt unter https://github.com/zhaw-gpi/project-template