zeebe-parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-parent</artifactId> <version>8.8.0-alpha5</version> </dependency>
<?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> <parent> <groupId>io.camunda</groupId> <artifactId>zeebe-bom</artifactId> <version>8.8.0-alpha5</version> <relativePath>../bom/pom.xml</relativePath> </parent> <artifactId>zeebe-parent</artifactId> <packaging>pom</packaging> <name>Zeebe Parent</name> <url>http://zeebe.io/</url> <inceptionYear>2017</inceptionYear> <licenses> <license> <name>Camunda License v1.0</name> </license> </licenses> <properties> <version.java>21</version.java> <project.build.sourceEncoding>utf-8</project.build.sourceEncoding> <!-- disable jdk8 javadoc checks on release build --> <additionalparam>-Xdoclint:none</additionalparam> <checkstyle.config.location>.checkstyle.xml</checkstyle.config.location> <spotbugs.include>spotbugs/spotbugs-include.xml</spotbugs.include> <spotbugs.exclude>spotbugs/spotbugs-exclude.xml</spotbugs.exclude> <maven-profiler-report-directory>${project.build.directory}/profiler</maven-profiler-report-directory> <!-- EXTERNAL LIBS --> <version.agrona>1.23.1</version.agrona> <version.assertj>3.27.3</version.assertj> <version.awaitility>4.3.0</version.awaitility> <version.bouncycastle>1.80</version.bouncycastle> <version.camunda>7.22.0</version.camunda> <version.camunda-license-check>2.10.0</version.camunda-license-check> <version.checkstyle>10.21.4</version.checkstyle> <version.commons-beanutils>1.10.1</version.commons-beanutils> <version.commons-lang>3.17.0</version.commons-lang> <version.commons-logging>1.3.5</version.commons-logging> <version.commons-math>3.6.1</version.commons-math> <version.commons-codec>1.18.0</version.commons-codec> <version.commons-compress>1.27.1</version.commons-compress> <version.commons-validator>1.9.0</version.commons-validator> <version.zstd-jni>1.5.7-2</version.zstd-jni> <version.commons-text>1.13.0</version.commons-text> <version.cron-utils>9.2.1</version.cron-utils> <version.docker-java-api>3.4.2</version.docker-java-api> <version.elasticsearch>8.16.4</version.elasticsearch> <version.error-prone>2.36.0</version.error-prone> <version.grpc>1.71.0</version.grpc> <version.gson>2.13.1</version.gson> <version.guava>33.4.0-jre</version.guava> <version.hamcrest>3.0</version.hamcrest> <version.httpasyncclient>4.1.5</version.httpasyncclient> <version.httpclient>4.5.14</version.httpclient> <version.httpclient5>5.4.3</version.httpclient5> <version.httpcore5>5.3.4</version.httpcore5> <version.httpcomponents>4.4.16</version.httpcomponents> <version.identity>8.8.0-alpha5</version.identity> <version.surefire>3.5.2</version.surefire> <version.jackson>2.18.3</version.jackson> <version.junit>5.12.2</version.junit> <version.junit4>4.13.2</version.junit4> <version.log4j>2.24.3</version.log4j> <version.minlog>1.3.1</version.minlog> <version.mockito>5.17.0</version.mockito> <version.model>7.7.0</version.model> <version.msgpack>0.9.9</version.msgpack> <version.netty>4.1.119.Final</version.netty> <version.objenesis>3.4</version.objenesis> <version.opensearch>2.14.0</version.opensearch> <version.opensearch-java>2.19.0</version.opensearch-java> <version.opensearch.testcontainers>2.1.3</version.opensearch.testcontainers> <version.prometheus>0.16.0</version.prometheus> <version.protobuf>4.30.1</version.protobuf> <version.protobuf-common>2.54.1</version.protobuf-common> <version.micrometer>1.14.5</version.micrometer> <version.rocksdbjni>9.10.0</version.rocksdbjni> <version.sbe>1.34.1</version.sbe> <version.scala>2.13.16</version.scala> <version.slf4j>2.0.17</version.slf4j> <version.snakeyaml>2.4</version.snakeyaml> <version.javax>1.3.2</version.javax> <version.wiremock>3.12.1</version.wiremock> <version.conscrypt>2.5.2</version.conscrypt> <version.asm>9.3</version.asm> <version.testcontainers>1.20.6</version.testcontainers> <version.mariadb-java-client>3.4.1</version.mariadb-java-client> <version.testcontainer-mariadb>1.20.0</version.testcontainer-mariadb> <version.postgressql-testcontainer>1.20.1</version.postgressql-testcontainer> <version.netflix.concurrency>0.5.3</version.netflix.concurrency> <version.zeebe-test-container>3.6.5</version.zeebe-test-container> <version.feel-scala>1.19.3</version.feel-scala> <version.dmn-scala>1.10.1</version.dmn-scala> <version.rest-assured>5.5.1</version.rest-assured> <version.spring>6.2.6</version.spring> <version.spring-security>6.4.6</version.spring-security> <version.spring-boot>3.4.5</version.spring-boot> <version.concurrentunit>0.4.6</version.concurrentunit> <version.kryo>5.6.2</version.kryo> <version.failsafe>2.4.4</version.failsafe> <version.jetbrains-annotations>26.0.2</version.jetbrains-annotations> <version.jqwik>1.9.2</version.jqwik> <version.jmock>2.13.1</version.jmock> <version.jmh>1.37</version.jmh> <version.json-smart>2.5.2</version.json-smart> <version.byte-buddy>1.17.2</version.byte-buddy> <version.revapi>0.28.1</version.revapi> <version.resilience4j>2.3.0</version.resilience4j> <version.immutables>2.10.1</version.immutables> <version.jsr305>3.0.2</version.jsr305> <version.classgraph>4.8.179</version.classgraph> <version.servlet-api>2.5</version.servlet-api> <version.osgi>6.0.0</version.osgi> <version.findbugs-annotations>3.0.1u2</version.findbugs-annotations> <version.spotbugs>4.9.3</version.spotbugs> <version.archunit>1.4.0</version.archunit> <version.easy-random>5.0.0</version.easy-random> <version.jcip>1.0</version.jcip> <version.jnr-posix>3.1.20</version.jnr-posix> <version.zpt>8.6.11</version.zpt> <version.feign>13.5</version.feign> <version.google-sdk>26.59.0</version.google-sdk> <version.azure-sdk>1.2.32</version.azure-sdk> <version.awssdk>2.31.38</version.awssdk> <version.toxiproxy>2.1.7</version.toxiproxy> <version.validation-api>3.1.1</version.validation-api> <version.jackson-databind-nullable>0.2.6</version.jackson-databind-nullable> <version.findbugs.jsr305>3.0.2</version.findbugs.jsr305> <version.jackson-annotations>2.18.3</version.jackson-annotations> <version.swagger-annotations>2.2.29</version.swagger-annotations> <version.checker-qual>3.49.1</version.checker-qual> <version.java-jwt>4.5.0</version.java-jwt> <version.reactive-streams>1.0.4</version.reactive-streams> <version.postgresql>42.7.5</version.postgresql> <version.h2>2.3.232</version.h2> <version.aws-signing>3.0.0</version.aws-signing> <version.tc-keycloak>3.6.0</version.tc-keycloak> <version.jakarta-activation>2.1.3</version.jakarta-activation> <version.jakarta.json-api>2.1.3</version.jakarta.json-api> <version.jakarta-annotation>3.0.0</version.jakarta-annotation> <version.jna-platform>5.16.0</version.jna-platform> <version.liquibase>4.31.1</version.liquibase> <version.sqlformatter>2.0.5</version.sqlformatter> <version.caffeine>3.2.0</version.caffeine> <version.commons-collections>20040616</version.commons-collections> <version.commons-io>2.19.0</version.commons-io> <version.thymeleaf>3.1.3.RELEASE</version.thymeleaf> <version.unboundid-ldapsdk>7.0.2</version.unboundid-ldapsdk> <version.parsson>1.1.7</version.parsson> <version.springdoc>2.8.5</version.springdoc> <version.jakarta.json>2.0.1</version.jakarta.json> <version.node>v20.12.2</version.node> <version.yarn>v1.22.21</version.yarn> <version.aws-java-sdk>1.12.782</version.aws-java-sdk> <version.elasticsearch-test-container>1.20.6</version.elasticsearch-test-container> <version.postgres-test-container>1.20.6</version.postgres-test-container> <version.elasticsearch7>7.17.28</version.elasticsearch7> <!-- the lucene version must be coupled with version.elasticsearch7 --> <version.lucene>8.11.3</version.lucene> <version.hdr-histogram>2.2.2</version.hdr-histogram> <version.joda-time>2.13.1</version.joda-time> <version.commons-collections4>4.4</version.commons-collections4> <version.xmlunit-core>2.10.0</version.xmlunit-core> <!-- Auth0 Dependencies --> <!-- If any of the following version changes, --> <!-- please check if they are compatible with "mvc-auth-commons" --> <version.auth0>1.45.1</version.auth0> <version.auth0.commons>1.11.0</version.auth0.commons> <version.auth0.jwt>4.4.0</version.auth0.jwt> <version.okio-jvm>3.10.2</version.okio-jvm> <version.jwks-rsa>0.22.1</version.jwks-rsa> <version.guava.annotations>r03</version.guava.annotations> <version.nimbus-jose-jwt>10.0.2</version.nimbus-jose-jwt> <version.nimbus-sdk>11.23.1</version.nimbus-sdk> <version.keycloak>26.1.4</version.keycloak> <version.keycloak-client>26.0.4</version.keycloak-client> <version.jna>5.16.0</version.jna> <version.jopt-simple>5.0.4</version.jopt-simple> <version.mybatis-spring>3.0.4</version.mybatis-spring> <version.mybatis>3.5.19</version.mybatis> <version.mybatis-spring-boot-starter>3.0.4</version.mybatis-spring-boot-starter> <version.javassist>3.30.2-GA</version.javassist> <!-- VERIFY WHETHER OPERATE WORKS WITH MOCKITO 5.11 --> <!-- <mockito.version>5.5.0</mockito.version>--> <!-- maven plugins --> <plugin.version.antrun>3.1.0</plugin.version.antrun> <plugin.version.appassembler>2.1.0</plugin.version.appassembler> <plugin.version.assembly>3.7.1</plugin.version.assembly> <plugin.version.build-helper>3.6.0</plugin.version.build-helper> <plugin.version.checkstyle>3.6.0</plugin.version.checkstyle> <plugin.version.compiler>3.14.0</plugin.version.compiler> <plugin.version.dependency-analyzer>1.15.1</plugin.version.dependency-analyzer> <plugin.version.dependency>3.8.1</plugin.version.dependency> <plugin.version.enforcer>3.5.0</plugin.version.enforcer> <plugin.version.exec>3.5.0</plugin.version.exec> <plugin.version.failsafe>3.5.2</plugin.version.failsafe> <plugin.version.flaky-tests>2.1.1</plugin.version.flaky-tests> <plugin.version.jacoco>0.8.12</plugin.version.jacoco> <plugin.version.maven-jar>3.4.2</plugin.version.maven-jar> <plugin.version.protobuf-maven-plugin>0.6.1</plugin.version.protobuf-maven-plugin> <plugin.version.replacer>1.5.3</plugin.version.replacer> <plugin.version.resources>3.3.1</plugin.version.resources> <plugin.version.revapi>0.15.0</plugin.version.revapi> <plugin.version.shade>3.6.0</plugin.version.shade> <plugin.version.sonar>3.9.1.2184</plugin.version.sonar> <plugin.version.spotbugs>4.8.6.6</plugin.version.spotbugs> <plugin.version.surefire>3.5.2</plugin.version.surefire> <plugin.version.versions>2.18.0</plugin.version.versions> <plugin.version.frontend-maven>1.15.1</plugin.version.frontend-maven> <plugin.version.maven-source>3.3.1</plugin.version.maven-source> <!-- when updating this version, also change it in .idea/externalDependencies.xml --> <plugin.version.google-java-format>1.25.2</plugin.version.google-java-format> <!-- maven extensions --> <extension.version.os-maven-plugin>1.7.1</extension.version.os-maven-plugin> <!-- version against which backwards compatibility is checked --> <backwards.compat.version>8.7.0-SNAPSHOT</backwards.compat.version> <ignored.changes.file>ignored-changes.json</ignored.changes.file> <!-- you can use the following to disable some or all goals: - quickly will skip all non-essential goals, like checks, tests, and assembly - skipTests will skip all tests - skipITs will skip integration tests - skipUTs will skip unit tests - skipChecks will non-test checks, such as licensing, checkstyle, backwards compat, etc. --> <quickly>false</quickly> <skipTests>${quickly}</skipTests> <skipUTs>${skipTests}</skipUTs> <skipITs>${skipTests}</skipITs> <jacoco.skip>${skipUTs}</jacoco.skip> <!-- you can use the following to disable specific check plugins. this can also be used to skip the formatting goals of these plugins. the approach taken is to use a single new property, skipChecks, which is the default value for pre-defined properties such as checkstyle.skip. that way, you can use skipChecks, but you can also still use checkstyle.skip if you only want to disable checkstyle --> <skipChecks>${quickly}</skipChecks> <checkstyle.skip>${skipChecks}</checkstyle.skip> <revapi.skip>${skipChecks}</revapi.skip> <license.skip>${skipChecks}</license.skip> <enforcer.skip>${skipChecks}</enforcer.skip> <mdep.analyze.skip>${skipChecks}</mdep.analyze.skip> <sort.skip>${skipChecks}</sort.skip> <spotless.apply.skip>${skipChecks}</spotless.apply.skip> <spotless.checks.skip>${skipChecks}</spotless.checks.skip> <!-- disable other non-essential goals --> <flatten.skip>${quickly}</flatten.skip> <assembly.skipAssembly>${quickly}</assembly.skipAssembly> <!-- disable frontend yarn builds --> <skip.fe.build>${quickly}</skip.fe.build> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-zeebe</artifactId> <version>${project.version}</version> </dependency> <!-- Internal Zeebe modules --> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-broker</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-protocol-test-util</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-stream-platform</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-logstreams</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-workflow-engine</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-msgpack-core</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-msgpack-value</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-protocol-impl</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-protocol-jackson</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-broker-client</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-transport</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-test-util</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-qa-util</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-qa-util</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-util</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-auth</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-scheduler</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-db</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-build-tools</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-gateway-protocol</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-gateway</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-gateway</artifactId> <version>${project.version}</version> <classifier>tests</classifier> <type>test-jar</type> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-gateway-grpc</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-exporter</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-elasticsearch-exporter</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-opensearch-exporter</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>rdbms-exporter</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-exporter-test</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-protocol-asserts</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-expression-language</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-feel-integration</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-snapshots</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-journal</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-dmn</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-atomix-cluster</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-atomix-utils</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-backup</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-backup-store-s3</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-backup-store-gcs</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-backup-store-azure</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-backup-store-filesystem</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-backup-store-common</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-backup-testkit</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-restore</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-gateway-rest</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-cluster-config</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-search-client-plugin</artifactId> <version>${project.version}</version> </dependency> <!-- Webapps Common --> <dependency> <groupId>io.camunda</groupId> <artifactId>webapps-common</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>webapps-schema</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>webapps-backup</artifactId> <version>${project.version}</version> </dependency> <!-- Operate Modules --> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-webapp</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-webjar</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-importer</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-importer-common</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-importer-8_7</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-data-generator</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-common</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-schema</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-mvc-auth-commons</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-qa-util</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-qa-migration-tests-test-fixture-110</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-qa-migration-tests-test-fixture-120</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-qa-migration-tests-test-fixture-130</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-qa-migration-tests-test-fixture-800</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-qa-migration-tests-test-fixture-810</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-qa-migration-tests-test-fixture-820</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-qa-migration-tests-test-fixture-830</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-qa-migration-tests-test-fixture-840</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>operate-qa-migration-tests-test-fixture-850</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <!-- Tasklist Modules --> <dependency> <groupId>io.camunda</groupId> <artifactId>tasklist-webapp</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>tasklist-webjar</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>tasklist-importer</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>tasklist-importer-common</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>tasklist-importer-870</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>tasklist-data-generator</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>tasklist-common</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>tasklist-els-schema</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>tasklist-mvc-auth-commons</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>tasklist-qa-util</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>tasklist-it-tests</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>tasklist-qa-migration-tests-test-fixture-810</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>tasklist-qa-migration-tests-test-fixture-820</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>tasklist-qa-migration-tests-test-fixture-830</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>tasklist-qa-migration-tests-test-fixture-840</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>tasklist-qa-migration-tests-test-fixture-850</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>document-api</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>document-store</artifactId> <version>${project.version}</version> </dependency> <!-- camunda secondary db --> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-db</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-db-rdbms</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-db-rdbms-schema</artifactId> <version>${project.version}</version> </dependency> <!-- camunda search client --> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-search-domain</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-service</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-search-client</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-search-client-query-transformer</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-search-client-elasticsearch</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-search-client-opensearch</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-search-client-rdbms</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-search-client-connect</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-schema-manager</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-search-test-utils</artifactId> <version>${project.version}</version> </dependency> <!-- camunda java client --> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-client-java</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>spring-boot-starter-camunda-sdk</artifactId> <version>${project.version}</version> </dependency> <!-- Camunda security modules --> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-security-core</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-security-services</artifactId> <version>${project.version}</version> </dependency> <!-- Camunda Process Testing modules --> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-process-test-java</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-process-test-spring</artifactId> <version>${project.version}</version> </dependency> <!-- sibling projects --> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-process-test-assertions</artifactId> <version>${version.zpt}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-process-test-filters</artifactId> <version>${version.zpt}</version> </dependency> <!-- Third party dependencies --> <dependency> <groupId>org.junit</groupId> <artifactId>junit-bom</artifactId> <version>${version.junit}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.fasterxml.jackson</groupId> <artifactId>jackson-bom</artifactId> <version>${version.jackson}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-framework-bom</artifactId> <version>${version.spring}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-bom</artifactId> <version>${version.spring-security}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.nimbusds</groupId> <artifactId>oauth2-oidc-sdk</artifactId> <version>${version.nimbus-sdk}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot</artifactId> <version>${version.spring-boot}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-actuator</artifactId> <version>${version.spring-boot}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifactId> <version>${version.spring-boot}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-actuator-autoconfigure</artifactId> <version>${version.spring-boot}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test</artifactId> <version>${version.spring-boot}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <version>${version.spring-boot}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <version>${version.spring-boot}</version> </dependency> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>${version.awssdk}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.azure</groupId> <artifactId>azure-sdk-bom</artifactId> <version>${version.azure-sdk}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-bom</artifactId> <version>${version.mockito}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-bom</artifactId> <version>${version.log4j}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-bom</artifactId> <version>${version.feign}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-bom</artifactId> <version>${version.grpc}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-bom</artifactId> <version>${version.protobuf}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-bom</artifactId> <version>${version.netty}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-bom</artifactId> <version>${version.micrometer}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- As this includes so-called "first party" dependencies" which may be of different versions, this must also be after most library-specific BOMs (but above Spring's) --> <dependency> <groupId>com.google.cloud</groupId> <artifactId>libraries-bom</artifactId> <version>${version.google-sdk}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- This should be the last dependency management import of type POM and scope IMPORT; if you put any below, and there is some overlap in the library versions, then Spring's will win every time. Typically, if we want to add a POM/IMPORT for a specific library (e.g. Netty), then we want to version. If we do want Spring's version to win, then we should just rely on that instead and do not need to specify a version ourselves. --> <dependency> <!-- Import dependency management from Spring Boot --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${version.spring-boot}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>camunda-authentication</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>identity-webjar</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>identity-migration</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>identity-spring-boot-starter</artifactId> <version>${version.identity}</version> </dependency> <dependency> <groupId>org.apache.maven.surefire</groupId> <artifactId>surefire-shared-utils</artifactId> <version>${version.surefire}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <version>${version.spring-boot}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-broker</artifactId> <version>${project.version}</version> <classifier>tests</classifier> <type>test-jar</type> </dependency> <dependency> <groupId>io.github.resilience4j</groupId> <artifactId>resilience4j-retry</artifactId> <version>${version.resilience4j}</version> </dependency> <dependency> <groupId>io.github.resilience4j</groupId> <artifactId>resilience4j-core</artifactId> <version>${version.resilience4j}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-workflow-engine</artifactId> <version>${project.version}</version> <classifier>tests</classifier> <type>test-jar</type> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-logstreams</artifactId> <version>${project.version}</version> <classifier>tests</classifier> <type>test-jar</type> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-scheduler</artifactId> <version>${project.version}</version> <classifier>tests</classifier> <type>test-jar</type> </dependency> <dependency> <groupId>org.liquibase</groupId> <artifactId>liquibase-core</artifactId> <version>${version.liquibase}</version> </dependency> <dependency> <groupId>com.github.vertical-blank</groupId> <artifactId>sql-formatter</artifactId> <version>${version.sqlformatter}</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>${version.mybatis-spring-boot-starter}</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>${version.mybatis-spring}</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${version.mybatis}</version> </dependency> <dependency> <groupId>org.agrona</groupId> <artifactId>agrona</artifactId> <version>${version.agrona}</version> </dependency> <dependency> <groupId>org.msgpack</groupId> <artifactId>msgpack-core</artifactId> <version>${version.msgpack}</version> </dependency> <dependency> <groupId>org.msgpack</groupId> <artifactId>jackson-dataformat-msgpack</artifactId> <version>${version.msgpack}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${version.junit4}</version> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest</artifactId> <version>${version.hamcrest}</version> </dependency> <dependency> <groupId>com.tngtech.archunit</groupId> <artifactId>archunit</artifactId> <version>${version.archunit}</version> </dependency> <dependency> <groupId>com.tngtech.archunit</groupId> <artifactId>archunit-junit5-engine</artifactId> <version>${version.archunit}</version> </dependency> <dependency> <groupId>com.tngtech.archunit</groupId> <artifactId>archunit-junit5-api</artifactId> <version>${version.archunit}</version> </dependency> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> <version>${version.assertj}</version> </dependency> <dependency> <groupId>org.awaitility</groupId> <artifactId>awaitility</artifactId> <version>${version.awaitility}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.rest-assured</groupId> <artifactId>rest-assured</artifactId> <version>${version.rest-assured}</version> </dependency> <dependency> <groupId>uk.co.real-logic</groupId> <artifactId>sbe-tool</artifactId> <version>${version.sbe}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${version.slf4j}</version> </dependency> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>${version.scala}</version> </dependency> <dependency> <groupId>org.camunda.bpm.model</groupId> <artifactId>camunda-xml-model</artifactId> <version>${version.camunda}</version> </dependency> <dependency> <groupId>org.camunda.bpm</groupId> <artifactId>camunda-license-check</artifactId> <version>${version.camunda-license-check}</version> </dependency> <dependency> <groupId>org.rocksdb</groupId> <artifactId>rocksdbjni</artifactId> <version>${version.rocksdbjni}</version> </dependency> <dependency> <groupId>com.google.api.grpc</groupId> <artifactId>proto-google-common-protos</artifactId> <version>${version.protobuf-common}</version> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-client</artifactId> <version>${version.elasticsearch}</version> </dependency> <dependency> <groupId>co.elastic.clients</groupId> <artifactId>elasticsearch-java</artifactId> <version>${version.elasticsearch}</version> </dependency> <dependency> <groupId>org.opensearch.client</groupId> <artifactId>opensearch-rest-client</artifactId> <version>${version.opensearch}</version> </dependency> <dependency> <groupId>org.opensearch.client</groupId> <artifactId>opensearch-java</artifactId> <version>${version.opensearch-java}</version> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>${version.guava}</version> </dependency> <dependency> <groupId>io.zeebe</groupId> <artifactId>zeebe-test-container</artifactId> <version>${version.zeebe-test-container}</version> </dependency> <dependency> <groupId>io.zeebe</groupId> <artifactId>zeebe-test-container-engine</artifactId> <version>${version.zeebe-test-container}</version> </dependency> <dependency> <groupId>com.google.errorprone</groupId> <artifactId>error_prone_annotations</artifactId> <version>${version.error-prone}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.objenesis</groupId> <artifactId>objenesis</artifactId> <version>${version.objenesis}</version> </dependency> <dependency> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> <version>${version.snakeyaml}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>${version.commons-lang}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-math3</artifactId> <version>${version.commons-math}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-text</artifactId> <version>${version.commons-text}</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>${version.commons-collections}</version> </dependency> <dependency> <groupId>commons-validator</groupId> <artifactId>commons-validator</artifactId> <version>${version.commons-validator}</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>${version.commons-beanutils}</version> <exclusions> <exclusion> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-annotations</artifactId> <version>${version.spotbugs}</version> <scope>provided</scope> </dependency> <dependency> <groupId>net.jcip</groupId> <artifactId>jcip-annotations</artifactId> <version>${version.jcip}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>${version.httpcomponents}</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore-nio</artifactId> <version>${version.httpcomponents}</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpasyncclient</artifactId> <version>${version.httpasyncclient}</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>${version.httpclient}</version> </dependency> <dependency> <groupId>org.apache.httpcomponents.client5</groupId> <artifactId>httpclient5</artifactId> <version>${version.httpclient5}</version> </dependency> <dependency> <groupId>org.apache.httpcomponents.core5</groupId> <artifactId>httpcore5</artifactId> <version>${version.httpcore5}</version> </dependency> <dependency> <groupId>org.apache.httpcomponents.core5</groupId> <artifactId>httpcore5-h2</artifactId> <version>${version.httpcore5}</version> </dependency> <!-- Interface based code generation --> <dependency> <groupId>org.immutables</groupId> <artifactId>value</artifactId> <version>${version.immutables}</version> </dependency> <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>${version.javax}</version> </dependency> <dependency> <groupId>org.wiremock</groupId> <artifactId>wiremock-standalone</artifactId> <version>${version.wiremock}</version> </dependency> <!-- Testcontainers & Docker for container based integration tests --> <dependency> <groupId>org.testcontainers</groupId> <artifactId>testcontainers-bom</artifactId> <version>${version.testcontainers}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.opensearch</groupId> <artifactId>opensearch-testcontainers</artifactId> <version>${version.opensearch.testcontainers}</version> </dependency> <dependency> <groupId>com.github.dasniko</groupId> <artifactId>testcontainers-keycloak</artifactId> <version>${version.tc-keycloak}</version> <exclusions> <exclusion> <groupId>io.quarkus</groupId> <artifactId>quarkus-junit4-mock</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.github.docker-java</groupId> <artifactId>docker-java-api</artifactId> <version>${version.docker-java-api}</version> </dependency> <dependency> <groupId>eu.rekawek.toxiproxy</groupId> <artifactId>toxiproxy-java</artifactId> <version>${version.toxiproxy}</version> </dependency> <dependency> <groupId>net.jqwik</groupId> <artifactId>jqwik</artifactId> <version>${version.jqwik}</version> </dependency> <dependency> <groupId>net.jqwik</groupId> <artifactId>jqwik-api</artifactId> <version>${version.jqwik}</version> </dependency> <dependency> <groupId>org.jmock</groupId> <artifactId>jmock</artifactId> <version>${version.jmock}</version> <exclusions> <exclusion> <groupId>org.jmock</groupId> <artifactId>jmock-testjar</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>${version.postgresql}</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>${version.h2}</version> </dependency> <dependency> <groupId>com.netflix.concurrency-limits</groupId> <artifactId>concurrency-limits-core</artifactId> <version>${version.netflix.concurrency}</version> </dependency> <dependency> <groupId>org.camunda.feel</groupId> <artifactId>feel-engine</artifactId> <version>${version.feel-scala}</version> </dependency> <dependency> <groupId>org.camunda.bpm.extension.dmn.scala</groupId> <artifactId>dmn-engine</artifactId> <version>${version.dmn-scala}</version> </dependency> <dependency> <groupId>org.camunda.bpm.model</groupId> <artifactId>camunda-dmn-model</artifactId> <version>${version.camunda}</version> </dependency> <dependency> <groupId>net.jodah</groupId> <artifactId>concurrentunit</artifactId> <version>${version.concurrentunit}</version> </dependency> <dependency> <groupId>com.esotericsoftware</groupId> <artifactId>kryo</artifactId> <version>${version.kryo}</version> </dependency> <dependency> <groupId>org.jeasy</groupId> <artifactId>easy-random-core</artifactId> <version>${version.easy-random}</version> </dependency> <dependency> <groupId>net.jodah</groupId> <artifactId>failsafe</artifactId> <version>${version.failsafe}</version> </dependency> <dependency> <groupId>net.bytebuddy</groupId> <artifactId>byte-buddy</artifactId> <version>${version.byte-buddy}</version> </dependency> <dependency> <groupId>net.bytebuddy</groupId> <artifactId>byte-buddy-agent</artifactId> <version>${version.byte-buddy}</version> </dependency> <dependency> <groupId>io.github.classgraph</groupId> <artifactId>classgraph</artifactId> <version>${version.classgraph}</version> </dependency> <dependency> <groupId>com.esotericsoftware</groupId> <artifactId>minlog</artifactId> <version>${version.minlog}</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcpkix-jdk18on</artifactId> <version>${version.bouncycastle}</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk18on</artifactId> <version>${version.bouncycastle}</version> </dependency> <dependency> <groupId>com.github.jnr</groupId> <artifactId>jnr-posix</artifactId> <version>${version.jnr-posix}</version> </dependency> <dependency> <groupId>com.cronutils</groupId> <artifactId>cron-utils</artifactId> <version>${version.cron-utils}</version> </dependency> <dependency> <groupId>jakarta.validation</groupId> <artifactId>jakarta.validation-api</artifactId> <version>${version.validation-api}</version> </dependency> <dependency> <groupId>org.openapitools</groupId> <artifactId>jackson-databind-nullable</artifactId> <version>${version.jackson-databind-nullable}</version> </dependency> <dependency> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> <version>${version.findbugs.jsr305}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${version.jackson-annotations}</version> </dependency> <dependency> <groupId>jakarta.annotation</groupId> <artifactId>jakarta.annotation-api</artifactId> <version>${version.jakarta-annotation}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>${version.commons-compress}</version> </dependency> <dependency> <groupId>com.github.luben</groupId> <artifactId>zstd-jni</artifactId> <version>${version.zstd-jni}</version> </dependency> <dependency> <groupId>org.reactivestreams</groupId> <artifactId>reactive-streams</artifactId> <version>${version.reactive-streams}</version> </dependency> <dependency> <groupId>io.github.acm19</groupId> <artifactId>aws-request-signing-apache-interceptor</artifactId> <version>${version.aws-signing}</version> </dependency> <dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>${version.java-jwt}</version> </dependency> <dependency> <groupId>org.jetbrains</groupId> <artifactId>annotations</artifactId> <version>${version.jetbrains-annotations}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>identity-sdk</artifactId> <version>${version.identity}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>identity-spring-boot-autoconfigure</artifactId> <version>${version.identity}</version> </dependency> <!-- JMH Tests --> <dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-core</artifactId> <version>${version.jmh}</version> </dependency> <dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-generator-annprocess</artifactId> <version>${version.jmh}</version> </dependency> <!-- Dependencies present for convergence only --> <!-- between commons-compress and testcontainers-keycloak --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>${version.commons-io}</version> </dependency> <!-- between log4j2 and commons-compress (from testcontainers) --> <dependency> <groupId>org.osgi</groupId> <artifactId>org.osgi.core</artifactId> <version>${version.osgi}</version> </dependency> <!-- testcontainers and docker: see https://github.com/testcontainers/testcontainers-java/issues/3308 --> <dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna</artifactId> <version>${version.jna}</version> </dependency> <!-- between wiremock's own transitive dependencies --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>${version.servlet-api}</version> </dependency> <!-- between httpasyncclient and elasticsearch-rest-client --> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>${version.commons-logging}</version> </dependency> <!-- between elasticsearch-rest-client and rest-assured --> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>${version.commons-codec}</version> </dependency> <!-- both hamcrest-core (deprecated in favor of hamcrest) and hamcrest are required for dependency convergence, mostly due to junit4's dependency on hamcrest-core --> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> <version>${version.hamcrest}</version> </dependency> <!-- grpc-core & protobuf-java-util require different versions of gson --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>${version.gson}</version> </dependency> <dependency> <groupId>org.checkerframework</groupId> <artifactId>checker-qual</artifactId> <version>${version.checker-qual}</version> </dependency> <!-- between Guava 32 and multiple Google dependencies, e.g. gRPC --> <dependency> <groupId>com.google.j2objc</groupId> <artifactId>j2objc-annotations</artifactId> <version>3.0.0</version> </dependency> <!-- between com.github.dasniko:testcontainers-keycloak and its own dependencies --> <dependency> <groupId>jakarta.activation</groupId> <artifactId>jakarta.activation-api</artifactId> <version>${version.jakarta-activation}</version> </dependency> <!-- required between me.dinowernli:java-grpc-prometheus and com.google.guava:guava --> <dependency> <groupId>com.google.guava</groupId> <artifactId>failureaccess</artifactId> <version>1.0.2</version> </dependency> <!-- required to converge between com.microsoft.azure:msal4j and com.nimbusds:oauth2-oidc-sdk --> <dependency> <groupId>net.minidev</groupId> <artifactId>json-smart</artifactId> <version>${version.json-smart}</version> </dependency> <!-- needed for tests in elasticsearch-exporter --> <dependency> <groupId>jakarta.json</groupId> <artifactId>jakarta.json-api</artifactId> <version>${version.jakarta.json-api}</version> </dependency> <dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna-platform</artifactId> <version>${version.jna-platform}</version> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>${version.elasticsearch7}</version> </dependency> <!-- START have to define this to override wrong version coming from spring-boot-dependencies BOM --> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch-x-content</artifactId> <version>${version.elasticsearch7}</version> </dependency> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>${version.elasticsearch7}</version> </dependency> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch-core</artifactId> <version>${version.elasticsearch7}</version> </dependency> <dependency> <groupId>org.elasticsearch.plugin</groupId> <artifactId>parent-join-client</artifactId> <version>${version.elasticsearch7}</version> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId> <version>${version.lucene}</version> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-join</artifactId> <version>${version.lucene}</version> </dependency> <dependency> <groupId>org.eclipse.parsson</groupId> <artifactId>parsson</artifactId> <version>${version.parsson}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>${version.commons-collections4}</version> </dependency> <dependency> <groupId>org.glassfish</groupId> <artifactId>jakarta.json</artifactId> <version>${version.jakarta.json}</version> </dependency> <dependency> <groupId>io.swagger.core.v3</groupId> <artifactId>swagger-models-jakarta</artifactId> <version>${version.swagger-annotations}</version> </dependency> <dependency> <groupId>io.swagger.core.v3</groupId> <artifactId>swagger-annotations-jakarta</artifactId> <version>${version.swagger-annotations}</version> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>${version.javassist}</version> </dependency> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>${version.joda-time}</version> </dependency> <dependency> <groupId>org.hdrhistogram</groupId> <artifactId>HdrHistogram</artifactId> <version>${version.hdr-histogram}</version> </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-common</artifactId> <version>${version.springdoc}</version> </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>${version.springdoc}</version> </dependency> <dependency> <groupId>org.testcontainers</groupId> <artifactId>elasticsearch</artifactId> <version>${version.elasticsearch-test-container}</version> </dependency> <dependency> <groupId>org.testcontainers</groupId> <artifactId>postgresql</artifactId> <version>${version.postgres-test-container}</version> </dependency> <dependency> <groupId>org.keycloak</groupId> <artifactId>keycloak-admin-client</artifactId> <version>${version.keycloak-client}</version> </dependency> <dependency> <groupId>org.keycloak</groupId> <artifactId>keycloak-core</artifactId> <version>${version.keycloak}</version> </dependency> <dependency> <groupId>org.keycloak</groupId> <artifactId>keycloak-client-common-synced</artifactId> <version>${version.keycloak-client}</version> </dependency> <!-- Auth0 and it's direct dependencies --> <dependency> <groupId>com.auth0</groupId> <artifactId>mvc-auth-commons</artifactId> <version>${version.auth0.commons}</version> </dependency> <dependency> <groupId>com.auth0</groupId> <artifactId>auth0</artifactId> <version>${version.auth0}</version> </dependency> <dependency> <groupId>com.auth0</groupId> <artifactId>jwks-rsa</artifactId> <version>${version.jwks-rsa}</version> </dependency> <dependency> <groupId>com.squareup.okio</groupId> <artifactId>okio-jvm</artifactId> <version>${version.okio-jvm}</version> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava-annotations</artifactId> <version>${version.guava.annotations}</version> </dependency> <dependency> <groupId>com.nimbusds</groupId> <artifactId>nimbus-jose-jwt</artifactId> <version>${version.nimbus-jose-jwt}</version> </dependency> <!-- Start AWS --> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-bom</artifactId> <version>${version.aws-java-sdk}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- testcontainers and docker: see https://github.com/testcontainers/testcontainers-java/issues/3308 --> <!-- Dependencies present for convergence only --> <!-- between commons-compress and testcontainers-keycloak --> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf</artifactId> <version>${version.thymeleaf}</version> </dependency> <dependency> <groupId>com.unboundid</groupId> <artifactId>unboundid-ldapsdk</artifactId> <version>${version.unboundid-ldapsdk}</version> </dependency> <!-- between org.elasticsearch:elasticsearch-cli and org.openjdk.jmh:jmh-core --> <dependency> <groupId>net.sf.jopt-simple</groupId> <artifactId>jopt-simple</artifactId> <version>${version.jopt-simple}</version> </dependency> <dependency> <groupId>org.xmlunit</groupId> <artifactId>xmlunit-core</artifactId> <version>${version.xmlunit-core}</version> <scope>test</scope> </dependency> <dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> <version>${version.caffeine}</version> </dependency> <!-- Migration Module --> <dependency> <groupId>io.camunda.migration</groupId> <artifactId>migration-api</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda.migration</groupId> <artifactId>process-migration</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.camunda.migration</groupId> <artifactId>identity-migration</artifactId> <version>${project.version}</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-build-tools</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j2-impl</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <pluginManagement> <plugins> <!-- MAVEN COMPILER --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${plugin.version.compiler}</version> <configuration> <parameters>true</parameters> <release>${version.java}</release> <compilerArgs> <!-- ensure we generate a class file for package-info.java files to avoid recompiling every time --> <arg>-Xpkginfo:always</arg> </compilerArgs> <useIncrementalCompilation>false</useIncrementalCompilation> </configuration> </plugin> <!-- compatibility checks/guard --> <plugin> <groupId>org.revapi</groupId> <artifactId>revapi-maven-plugin</artifactId> <version>${plugin.version.revapi}</version> <configuration> <!-- see the property's documentation as to why --> <checkDependencies>true</checkDependencies> <!-- expands maven properties in the configuration files --> <expandProperties>true</expandProperties> <!-- allows us to pre-defined ignored-changes, even when missing --> <failOnMissingConfigurationFiles>false</failOnMissingConfigurationFiles> <analysisConfigurationFiles> <!-- look for an optional relative configuration file --> <configurationFile> <path>revapi.json</path> </configurationFile> <!-- uses the default configuration file packaged in build-tools --> <configurationFile> <resource>revapi/revapi.json</resource> </configurationFile> <!-- will pick up a project relative ignored-changes file --> <configurationFile> <path>${ignored.changes.file}</path> </configurationFile> </analysisConfigurationFiles> <!-- unfortunately we cannot use the meta version LATEST since we want to run this on different branches which need to compare to different versions --> <oldVersion>${backwards.compat.version}</oldVersion> <pipelineConfiguration> <transformBlocks> <!-- always execute the various differences plugins first which can exclude some differences for the semantic version checker --> <block> <item>revapi.differences</item> <item>revapi.versions</item> </block> </transformBlocks> </pipelineConfiguration> </configuration> <dependencies> <dependency> <groupId>org.revapi</groupId> <artifactId>revapi-java</artifactId> <version>${version.revapi}</version> </dependency> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-build-tools</artifactId> <version>${project.version}</version> </dependency> </dependencies> <executions> <execution> <id>check</id> <goals> <goal>check</goal> </goals> <phase>verify</phase> </execution> </executions> </plugin> <!-- javadoc generation --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${plugin.version.javadoc}</version> <configuration> <source>${version.java}</source> <quiet>true</quiet> <additionalOptions>-Xdoclint:none</additionalOptions> <additionalDependencies> <additionalDependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.2</version> </additionalDependency> </additionalDependencies> </configuration> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <!-- CHECKSTYLE --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>${plugin.version.checkstyle}</version> <configuration> <configLocation>check/.checkstyle.xml</configLocation> <includeTestSourceDirectory>true</includeTestSourceDirectory> <failOnViolation>true</failOnViolation> <sourceDirectories> <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory> <sourceDirectory>${project.build.testSourceDirectory}</sourceDirectory> </sourceDirectories> </configuration> <!-- dependency on build tool to reference the checkstyle cfg --> <dependencies> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-build-tools</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>com.puppycrawl.tools</groupId> <artifactId>checkstyle</artifactId> <version>${version.checkstyle}</version> </dependency> </dependencies> <executions> <execution> <id>validate-java</id> <goals> <goal>check</goal> </goals> <phase>validate</phase> <configuration /> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${plugin.version.surefire}</version> <configuration> <!-- by default, exclude performance and strace tests --> <excludedGroups>performance, strace</excludedGroups> <failIfNoTests>false</failIfNoTests> <trimStackTrace>false</trimStackTrace> <redirectTestOutputToFile>true</redirectTestOutputToFile> <properties> <property> <name>listener</name> <value>io.camunda.zeebe.ZeebeTestListener</value> </property> </properties> <reportNameSuffix>${env.SUREFIRE_REPORT_NAME_SUFFIX}</reportNameSuffix> <statelessTestsetReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter"> <disable>false</disable> <version>3.0</version> <usePhrasedFileName>false</usePhrasedFileName> <usePhrasedTestSuiteClassName>true</usePhrasedTestSuiteClassName> <usePhrasedTestCaseClassName>true</usePhrasedTestCaseClassName> <usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName> </statelessTestsetReporter> <consoleOutputReporter implementation="io.camunda.zeebe.ZeebeConsoleOutputReporter" /> <skip>${skipUTs}</skip> </configuration> <dependencies> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-build-tools</artifactId> <version>${project.version}</version> </dependency> </dependencies> </plugin> <!-- Integration tests --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>${plugin.version.failsafe}</version> <configuration> <failIfNoTests>false</failIfNoTests> <trimStackTrace>false</trimStackTrace> <redirectTestOutputToFile>true</redirectTestOutputToFile> <properties> <property> <name>listener</name> <value>io.camunda.zeebe.ZeebeTestListener</value> </property> </properties> <reportNameSuffix>${env.SUREFIRE_REPORT_NAME_SUFFIX}</reportNameSuffix> <!-- ensure junit5 display names are properly reported; see the documentation for more https://maven.apache.org/surefire/maven-failsafe-plugin/examples/junit-platform.html --> <statelessTestsetReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter"> <disable>false</disable> <version>3.0</version> <usePhrasedFileName>false</usePhrasedFileName> <usePhrasedTestSuiteClassName>true</usePhrasedTestSuiteClassName> <usePhrasedTestCaseClassName>true</usePhrasedTestCaseClassName> <usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName> </statelessTestsetReporter> <consoleOutputReporter implementation="io.camunda.zeebe.ZeebeConsoleOutputReporter" /> <skip>${skipITs}</skip> </configuration> <dependencies> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-build-tools</artifactId> <version>${project.version}</version> </dependency> </dependencies> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> </plugin> <!-- Build Helper Plugin --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>${plugin.version.build-helper}</version> </plugin> <!-- Shade Plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>${plugin.version.shade}</version> </plugin> <!-- App Assembler Plugin --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>appassembler-maven-plugin</artifactId> <version>${plugin.version.appassembler}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>${plugin.version.assembly}</version> </plugin> <!-- Exec Plugin --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>${plugin.version.exec}</version> <dependencies> <dependency> <groupId>uk.co.real-logic</groupId> <artifactId>sbe-tool</artifactId> <version>${version.sbe}</version> </dependency> </dependencies> <executions> <!-- Use exec:exec to generate SBE instead of exec:java, as exec:java does not fork the process, and the SBE tool is not thread safe, i.e. could not be used with a parallel multi-module maven build. See: https://github.com/camunda/camunda/issues/16029 --> <execution> <id>generate-sbe</id> <goals> <goal>exec</goal> </goals> <!-- not bound by default since it would execute in places where we don't want SBE generation --> <phase>none</phase> <configuration> <!-- we have to use the goal exec with the java executable as otherwise the process will not fork, and this can cause thread safety issues in a parallel multi-module build --> <executable>java</executable> <includePluginDependencies>true</includePluginDependencies> <longClasspath>true</longClasspath> <arguments combine.children="append"> <argument>-Dsbe.output.dir=${project.build.directory}/generated-sources/sbe</argument> <argument>-Dsbe.java.generate.interfaces=true</argument> <argument>-Dsbe.decode.unknown.enum.values=true</argument> <argument>-Dsbe.xinclude.aware=true</argument> <argument>-classpath</argument> <!-- automatically creates the classpath using all project dependencies, also adding the project build directory --> <classpath /> <argument>uk.co.real_logic.sbe.SbeTool</argument> </arguments> <workingDirectory>${project.build.directory}/generated-sources</workingDirectory> </configuration> </execution> </executions> </plugin> <!-- Resources Plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>${plugin.version.resources}</version> </plugin> <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. --> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <versionRange>[1.3.2,)</versionRange> <goals> <goal>java</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> <!-- Ant run plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>${plugin.version.antrun}</version> </plugin> <!-- Versions plugin to update versions in pom files --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> <version>${plugin.version.versions}</version> </plugin> <!-- protobuf generation --> <plugin> <groupId>org.xolstice.maven.plugins</groupId> <artifactId>protobuf-maven-plugin</artifactId> <version>${plugin.version.protobuf-maven-plugin}</version> <configuration> <checkStaleness>true</checkStaleness> <protocArtifact>com.google.protobuf:protoc:${version.protobuf}:exe:${os.detected.classifier}</protocArtifact> <pluginId>grpc-java</pluginId> <pluginArtifact>io.grpc:protoc-gen-grpc-java:${version.grpc}:exe:${os.detected.classifier}</pluginArtifact> </configuration> <executions> <execution> <goals> <goal>compile</goal> <goal>compile-custom</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>com.google.code.maven-replacer-plugin</groupId> <artifactId>replacer</artifactId> <version>${plugin.version.replacer}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>${plugin.version.enforcer}</version> <executions> <execution> <id>enforce-dependency-convergence</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <dependencyConvergence> <excludes> <!-- To be removed once these conflicts are resolved by identity. --> <!-- See https://github.com/camunda-cloud/identity/issues/1696 --> <exclude>com.auth0:java-jwt</exclude> <exclude>org.jetbrains.kotlin:kotlin-stdlib-common</exclude> <exclude>org.jetbrains.kotlin:kotlin-stdlib-jdk8</exclude> <exclude>com.squareup.okio:okio</exclude> <!-- azure-sdk makes some calls at runtime to msal4j which may fail if we pin it to the wrong version, but azure-sdk also, transitively, causes dependency convergence issues --> <exclude>com.microsoft.azure:msal4j</exclude> </excludes> </dependencyConvergence> </rules> </configuration> </execution> <execution> <id>enforce-unique-dependencies</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <banDuplicatePomDependencyVersions /> </rules> </configuration> </execution> <execution> <id>forbid-banned-dependencies</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <!-- ban the direct usage of the zeebe-client-java dependency --> <bannedDependencies> <excludes> <exclude>io.camunda:zeebe-client-java</exclude> </excludes> <searchTransitive>false</searchTransitive> </bannedDependencies> </rules> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>${plugin.version.dependency}</version> <!-- To run with Java 11 - https://issues.apache.org/jira/browse/MDEP-613--> <dependencies> <dependency> <groupId>org.apache.maven.shared</groupId> <artifactId>maven-dependency-analyzer</artifactId> <version>${plugin.version.dependency-analyzer}</version> </dependency> </dependencies> <executions> <execution> <id>analyze-dependencies</id> <goals> <goal>analyze-only</goal> </goals> <!-- The analyze-only goal assumes that the test-compile phase has been executed --> <phase>verify</phase> <configuration> <failOnWarning>true</failOnWarning> <outputXML>true</outputXML> <!-- dependencies not directly used in all projects during tests --> <ignoredUnusedDeclaredDependencies combine.children="append"> <dep>org.apache.logging.log4j:log4j-slf4j2-impl</dep> <dep>org.apache.logging.log4j:log4j-core</dep> <dep>io.camunda:zeebe-build-tools</dep> <dep>io.camunda:zeebe-cluster-config</dep> <dep>io.camunda:zeebe-gateway-protocol</dep> <dep>org.ow2.asm:asm</dep> <dep>org.bouncycastle:bcpkix-jdk18on</dep> <dep>org.bouncycastle:bcprov-jdk18on</dep> <dep>org.junit.jupiter:junit-jupiter-engine</dep> <dep>org.junit.vintage:junit-vintage-engine</dep> <dep>com.tngtech.archunit:archunit-junit5-engine</dep> <dep>org.openjdk.jmh:jmh-generator-annprocess</dep> <dep>com.h2database:h2</dep> <dep>org.postgresql:postgresql</dep> <dep>org.mariadb.jdbc:mariadb-java-client</dep> <dep>com.oracle.database.jdbc:ojdbc8</dep> <dep>io.camunda:camunda-authentication</dep> <dep>org.skyscreamer:jsonassert</dep> <dep>org.springframework:spring-webflux</dep> <dep>org.springframework:spring-tx</dep> <dep>org.springframework.boot:spring-boot-starter-data-jdbc</dep> <dep>org.mockito:mockito-core</dep> <dep>org.assertj:assertj-core</dep> <dep>io.camunda:rdbms-exporter</dep> </ignoredUnusedDeclaredDependencies> <ignoredNonTestScopedDependencies> <dep>io.camunda:zeebe-cluster-config</dep> <dep>io.camunda:zeebe-scheduler</dep> <dep>org.springframework:spring-core</dep> <dep>org.springframework:spring-beans</dep> </ignoredNonTestScopedDependencies> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>${plugin.version.maven-jar}</version> <configuration> <useDefaultManifestFile>false</useDefaultManifestFile> </configuration> </plugin> <!-- JaCoCo Plugin --> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>${plugin.version.jacoco}</version> <executions> <execution> <id>coverage-initialize</id> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>coverage-report</id> <goals> <goal>report</goal> </goals> <phase>post-integration-test</phase> </execution> <!-- Threshold --> </executions> </plugin> <!-- extracts flaky test results into separate test cases; meant to be use in CI --> <plugin> <groupId>io.zeebe</groupId> <artifactId>flaky-test-extractor-maven-plugin</artifactId> <version>${plugin.version.flaky-tests}</version> </plugin> <plugin> <groupId>org.openapitools</groupId> <artifactId>openapi-generator-maven-plugin</artifactId> <version>7.12.0</version> <configuration> <!-- https://github.com/OpenAPITools/openapi-generator/tree/master/modules/openapi-generator-maven-plugin --> <!-- https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/spring.md --> <generatorName>spring</generatorName> <modelPackage>io.camunda.zeebe.shared.management.openapi.models</modelPackage> <!-- Do no generate full server stub. Generate only classes for request and response types. --> <generateApis>false</generateApis> <generateApiTests>false</generateApiTests> <generateSupportingFiles>false</generateSupportingFiles> <generateModels>true</generateModels> <configOptions> <sourceFolder>src/main</sourceFolder> <additionalModelTypeAnnotations>@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)</additionalModelTypeAnnotations> <useSpringBoot3>true</useSpringBoot3> </configOptions> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${version.spring-boot}</version> <configuration> <wait>40000</wait> </configuration> </plugin> <plugin> <groupId>com.github.eirslett</groupId> <artifactId>frontend-maven-plugin</artifactId> <version>${plugin.version.frontend-maven}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>${plugin.version.maven-source}</version> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> </plugin> <plugin> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>flatten-maven-plugin</artifactId> <configuration> <flattenMode>ossrh</flattenMode> </configuration> </plugin> <!-- Google code format plugin --> <plugin> <groupId>com.diffplug.spotless</groupId> <artifactId>spotless-maven-plugin</artifactId> <configuration> <java> <googleJavaFormat> <version>${plugin.version.google-java-format}</version> <style>GOOGLE</style> </googleJavaFormat> </java> </configuration> <dependencies> <dependency> <groupId>com.google.googlejavaformat</groupId> <artifactId>google-java-format</artifactId> <version>${plugin.version.google-java-format}</version> </dependency> </dependencies> </plugin> </plugins> <extensions> <extension> <groupId>kr.motd.maven</groupId> <artifactId>os-maven-plugin</artifactId> <version>${extension.version.os-maven-plugin}</version> </extension> </extensions> </build> <profiles> <profile> <id>skip-random-tests</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <excludes> <exclude>**/*RandomizedPropertyTest.java</exclude> <exclude>**/*RandomizedRaftTest.java</exclude> <!-- Re-add the default exclude for inner classes, see https://github.com/camunda/camunda/issues/8637 --> <exclude>**/*$*.java</exclude> </excludes> </configuration> </plugin> </plugins> </build> </profile> <profile> <!-- Dedicated profile to run ONLY random tests. The include config overwrites the default pattern--> <id>include-random-tests</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <includes> <include>**/*RandomizedPropertyTest.java</include> <include>**/*RandomizedRaftTest.java</include> </includes> <systemPropertyVariables> <processCount>10</processCount> <executionCount>100</executionCount> <replayExecutionCount>5</replayExecutionCount> </systemPropertyVariables> </configuration> </plugin> </plugins> </build> </profile> <profile> <!-- Dedicated profile to run ONLY tests requiring strace. --> <id>include-strace-tests</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <groups>strace</groups> <!-- Reset <excludedGroups> as it take precedence over <groups> --> <excludedGroups combine.self="override" /> </configuration> </plugin> </plugins> </build> </profile> <profile> <!-- Dedicated profile to run ONLY performance tests. The include config overwrites the default pattern--> <id>include-performance-tests</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <groups>performance</groups> <!-- Reset <excludedGroups> as it take precedence over <groups> --> <excludedGroups combine.self="override" /> <excludes> <exclude>**/LargeStateControllerPerformanceTest.java</exclude> </excludes> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>parallel-tests</id> <properties> <forkCount>0.5C</forkCount> <junitThreadCount>2</junitThreadCount> <junitConfigurationParameters> <!-- allow junit5 parallel execution, configured on the number of cores note that this does not make tests parallel, this is still controlled in the tests themselves via the @Execution annotation. furthermore, child modules can define their own parallel configuration --> junit.jupiter.execution.parallel.enabled = true junit.jupiter.execution.parallel.config.strategy = fixed junit.jupiter.execution.parallel.config.fixed.parallelism = ${junitThreadCount} </junitConfigurationParameters> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <forkCount>${forkCount}</forkCount> <reuseForks>true</reuseForks> <systemPropertyVariables> <!-- use two dollar signs to prevent maven properties resolution, surefire will resolve the property later. If only ${surefire.forkNumber} is used maven will fail to resolve it and don't set the system property --> <testForkNumber>$${surefire.forkNumber}</testForkNumber> </systemPropertyVariables> <properties> <configurationParameters>${junitConfigurationParameters}</configurationParameters> </properties> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <configuration> <forkCount>${forkCount}</forkCount> <reuseForks>true</reuseForks> <systemPropertyVariables> <!-- use two dollar signs to prevent maven properties resolution, surefire will resolve the property later. If only ${surefire.forkNumber} is used maven will fail to resolve it and don't set the system property --> <testForkNumber>$${surefire.forkNumber}</testForkNumber> </systemPropertyVariables> <properties> <configurationParameters>${junitConfigurationParameters}</configurationParameters> </properties> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>spotbugs</id> <build> <plugins> <plugin> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-maven-plugin</artifactId> <version>${plugin.version.spotbugs}</version> <configuration> <effort>Max</effort> <threshold>Low</threshold> <xmlOutput>true</xmlOutput> <includeFilterFile>${spotbugs.include}</includeFilterFile> <excludeFilterFile>${spotbugs.exclude}</excludeFilterFile> </configuration> <!-- dependency on build tool to reference the spotbugs filter--> <dependencies> <dependency> <groupId>io.camunda</groupId> <artifactId>zeebe-build-tools</artifactId> <version>${project.version}</version> </dependency> </dependencies> <executions> <execution> <goals> <goal>check</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <!-- This profile is used to add an explicit dependency to surefire-junit. To fix the race condition of https://github.com/zeebe-io/zeebe/issues/2379 we download all dependencies at the beginning with mvn dependency:go-offline and then run the tests in offline mode. But the plugin misses to download the surefire-junit dependency, therefore define an explicit dependency while downloading. NOTE: make sure to specify the scope as test for all dependencies, otherwise they will get added to the distribution! Usage: mvn install -Pprepare-offline --> <profile> <id>prepare-offline</id> <dependencies> <dependency> <groupId>org.apache.maven.surefire</groupId> <artifactId>surefire-junit4</artifactId> <version>${plugin.version.surefire}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.maven.surefire</groupId> <artifactId>surefire-junit47</artifactId> <version>${plugin.version.surefire}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.maven.surefire</groupId> <artifactId>surefire-junit-platform</artifactId> <version>${plugin.version.surefire}</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <configuration> <ignoredUnusedDeclaredDependencies combine.children="append"> <dep>org.apache.maven.surefire:surefire-junit4</dep> <dep>org.apache.maven.surefire:surefire-junit47</dep> <dep>org.apache.maven.surefire:surefire-junit-platform</dep> <dep>org.codehaus.plexus:plexus-utils</dep> <dep>io.camunda:camunda-client-java</dep> </ignoredUnusedDeclaredDependencies> </configuration> <executions> <execution> <id>go-offline</id> <goals> <goal>resolve-plugins</goal> <goal>go-offline</goal> </goals> <phase>initialize</phase> <configuration> <silent>true</silent> </configuration> </execution> <execution> <id>analyze-dependencies</id> <goals> <goal>analyze-only</goal> </goals> <phase>verify</phase> </execution> </executions> </plugin> </plugins> </build> </profile> <!-- profile to enable flaky test analysis/extraction; running this module will extract flaky runs from your failed test cases as their own test case, such that the failed results can be viewed in Jenkins --> <profile> <id>extract-flaky-tests</id> <properties> <flaky.test.reportDir>surefire-reports</flaky.test.reportDir> </properties> <build> <plugins> <plugin> <groupId>io.zeebe</groupId> <artifactId>flaky-test-extractor-maven-plugin</artifactId> <configuration> <reportDir>${project.build.directory}/${flaky.test.reportDir}</reportDir> <failBuild>false</failBuild> </configuration> <executions> <execution> <goals> <goal>extract-flaky-tests</goal> </goals> <phase>post-integration-test</phase> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> </project>