Operaton External Task Client as Spring Boot Starter

Good day to all!
I’m trying to test the implementation of Operaton External Task Client, but nothing works.
How I did it. Took the original Camunda example and replaced the dependencies. The application does not start.
pom-file:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.camunda.bpm.example</groupId>
  <artifactId>order-handling-spring-boot</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <packaging>jar</packaging>

  <properties>
    <camunda.platform.version>7.18.0</camunda.platform.version>
    <spring.boot.version>2.7.3</spring.boot.version>
    <operaton.platform.version>1.0.0-beta-3</operaton.platform.version>
    <glassfish.jaxb.version>2.3.3</glassfish.jaxb.version>
    <maven.compiler.plugin.version>3.8.1</maven.compiler.plugin.version>
    <java.version>8</java.version>
  </properties>

  <dependencyManagement>
    <dependencies>
<!--      <dependency>-->
<!--        <groupId>org.camunda.bpm</groupId>-->
<!--        <artifactId>camunda-bom</artifactId>-->
<!--        <version>${camunda.platform.version}</version>-->
<!--        <type>pom</type>-->
<!--        <scope>import</scope>-->
<!--      </dependency>-->
      <dependency>
        <groupId>org.operaton.commons</groupId>
        <artifactId>operaton-commons-bom</artifactId>
        <version>${operaton.platform.version}</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
<!--    <dependency>-->
<!--      <groupId>org.camunda.bpm.springboot</groupId>-->
<!--      <artifactId>camunda-bpm-spring-boot-starter-external-task-client</artifactId>-->
<!--    </dependency>-->

    <dependency>
      <groupId>org.operaton.bpm.springboot</groupId>
      <artifactId>operaton-bpm-spring-boot-starter-external-task-client</artifactId>
      <version>${operaton.platform.version}</version>
    </dependency>

    <dependency>
      <groupId>org.glassfish.jaxb</groupId>
      <artifactId>jaxb-runtime</artifactId>
      <version>${glassfish.jaxb.version}</version>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>2.0.17</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-simple</artifactId>
      <version>2.0.17</version>
    </dependency>

  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>${spring.boot.version}</version>
        <executions>
          <execution>
            <goals>
              <goal>repackage</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${maven.compiler.plugin.version}</version>
        <configuration>
          <source>${java.version}</source>
          <target>${java.version}</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>

Message:


If there is an example of a working project, please provide a link.

Thanks in advance!

I have raised an issue for this: Fail to start external task client · Issue #756 · operaton/operaton · GitHub

I managed to solve my problem.

Code here: GitHub - pawga/sb-order-handling-java

I haven’t checked everything yet. In this example I disabled serialization of objects. I’ll check this a bit later.

Thank you.

Great, thank you for the response and glad to hear that you are able to proceed.

Great to hear you got it up and running!

Just curious: what ended up being the root cause of the cyclic dependencies? We’ve been working on cleaning up the module structure and dependency tree in our fork, so it’s super important for us to know whether our changes might have introduced any issues.

Thanks a lot for sharing your insights, it really helps us keep things stable for everyone! :raising_hands: