Skip to content
This repository has been archived by the owner on Jan 8, 2025. It is now read-only.

Latest commit

 

History

History
57 lines (42 loc) · 2.31 KB

File metadata and controls

57 lines (42 loc) · 2.31 KB

Quarkus Camunda External Task Client

ℹ️ Description

This project provides a Quarkus Extension that allows you to implement an External Task Worker for Camunda. It is based on the official java-client provided by Camunda BPM.

⭐ Features

  • Automatic topic subscription for all implementations of ExternalTaskHanlder annotated with @ExternalTaskSubscription
  • Provision of a configurable ExternalTaskClient bean

🚀 How to use

  1. To use the external task client Quarkus extension, the following dependency has to be added to your pom.xml.
<dependency>
    <groupId>de.viadee</groupId>
    <artifactId>quarkus-camunda-external-task-client</artifactId>
    <version>0.0.1</version>
</dependency>
  1. Configure the ExternalTaskClient bean which handles the overhead of external task subscriptions by extending your application.properties:
de.viadee.camunda.client.base-url=http://localhost:8080/engine-rest
de.viadee.camunda.client.worker-id=my-worker

For a full list of properties check out the ClientConfiguration class.

  1. Annotate your ExternalTaskHandler implementations with ExternalTaskSubscription to have them be automatically subscribed with the engine.
@ApplicationScoped
@ExternalTaskSubscription(topicName = "LogOnConsole")
public class LogOnConsoleHandler implements ExternalTaskHandler {

    private static final Logger LOG = Logger.getLogger(LogOnConsoleHandler.class.getName());

    @Override
    public void execute(ExternalTask externalTask, ExternalTaskService externalTaskService) {
        LOG.info("This is an ExternalTaskHandler build with Quarkus");
        externalTaskService.complete(externalTask);
    }
}

🤹 Collaboration

This tool was build by viadee Unternehmensberatung AG. If you are interested to find out what else we are doing, check out our website viadee.de. If you have any feedback, ideas or extensions feel free to contact or create a GitHub issue.