zeebe-parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>io.zeebe</groupId>
<artifactId>zeebe-parent</artifactId>
<version>1.0.0-alpha7</version>
</dependency><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>
<name>Zeebe Parent</name>
<artifactId>zeebe-parent</artifactId>
<version>1.0.0-alpha7</version>
<packaging>pom</packaging>
<inceptionYear>2017</inceptionYear>
<url>http://zeebe.io/</url>
<parent>
<groupId>io.zeebe</groupId>
<artifactId>zeebe-bom</artifactId>
<version>1.0.0-alpha7</version>
<relativePath>../bom</relativePath>
</parent>
<licenses>
<license>
<name>Zeebe Community License v1.1</name>
<url>https://zeebe.io/legal/zeebe-community-license-1.1</url>
</license>
</licenses>
<properties>
<!-- Zeebe Community License v1.1 header -->
<license.header>${maven.multiModuleProjectDirectory}/parent/COPYING-HEADER.txt</license.header>
<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>
<!-- EXTERNAL LIBS -->
<version.agrona>1.10.0</version.agrona>
<version.animal-sniffer>1.20</version.animal-sniffer>
<version.assertj>3.19.0</version.assertj>
<version.awaitility>4.0.3</version.awaitility>
<version.camunda>7.15.0</version.camunda>
<version.commons-lang>3.12.0</version.commons-lang>
<version.commons-logging>1.2</version.commons-logging>
<version.commons-math>3.6.1</version.commons-math>
<version.commons-codec>1.15</version.commons-codec>
<version.docker-java-api>3.2.8</version.docker-java-api>
<version.elasticsearch>7.12.0</version.elasticsearch>
<version.error-prone>2.6.0</version.error-prone>
<version.grpc>1.37.0</version.grpc>
<version.gson>2.8.6</version.gson>
<version.guava>30.1.1-jre</version.guava>
<version.hamcrest>2.2</version.hamcrest>
<version.hppc>0.8.1</version.hppc>
<version.httpasyncclient>4.1.4</version.httpasyncclient>
<version.httpclient>4.5.13</version.httpclient>
<version.httpcomponents>4.4.14</version.httpcomponents>
<version.jackson>2.12.3</version.jackson>
<version.java-grpc-prometheus>0.3.0</version.java-grpc-prometheus>
<version.jna>5.8.0</version.jna>
<version.junit>5.7.1</version.junit>
<version.junit4>4.13.2</version.junit4>
<version.opentest4j>1.2.0</version.opentest4j>
<version.log4j>2.14.1</version.log4j>
<version.minlog>1.3.1</version.minlog>
<version.mockito>3.9.0</version.mockito>
<version.mockito-jupiter>3.9.0</version.mockito-jupiter>
<version.model>7.7.0</version.model>
<version.msgpack>0.8.22</version.msgpack>
<version.netty-tcnative>2.0.38.Final</version.netty-tcnative>
<version.objenesis>3.2</version.objenesis>
<version.prometheus>0.10.0</version.prometheus>
<version.protobuf>3.15.8</version.protobuf>
<version.protobuf-common>2.1.0</version.protobuf-common>
<version.micrometer>1.6.6</version.micrometer>
<version.rocksdbjni>6.19.3</version.rocksdbjni>
<version.sbe>1.22.0</version.sbe>
<version.scala-parser>1.1.2</version.scala-parser>
<version.scala>2.13.5</version.scala>
<version.slf4j>1.7.30</version.slf4j>
<version.snakeyaml>1.28</version.snakeyaml>
<version.javax>1.3.2</version.javax>
<version.wiremock>2.27.2</version.wiremock>
<version.conscrypt>2.5.2</version.conscrypt>
<version.asm>9.1</version.asm>
<version.testcontainers>1.15.3</version.testcontainers>
<version.netflix.concurrency>0.3.6</version.netflix.concurrency>
<version.zeebe-test-container>2.0.0</version.zeebe-test-container>
<version.feel-scala>1.13.1</version.feel-scala>
<version.rest-assured>4.3.3</version.rest-assured>
<version.spring>5.3.6</version.spring>
<version.spring-boot>2.4.5</version.spring-boot>
<version.concurrentunit>0.4.6</version.concurrentunit>
<version.config>1.4.1</version.config>
<version.kryo>5.1.0</version.kryo>
<version.awaitility>4.0.3</version.awaitility>
<version.failsafe>2.4.0</version.failsafe>
<version.jqwik>1.5.1</version.jqwik>
<version.jmock>2.12.0</version.jmock>
<!-- maven plugins -->
<plugin.version.antrun>3.0.0</plugin.version.antrun>
<plugin.version.appassembler>2.1.0</plugin.version.appassembler>
<plugin.version.build-helper>3.2.0</plugin.version.build-helper>
<plugin.version.checkstyle>3.1.2</plugin.version.checkstyle>
<plugin.version.compiler>3.8.1</plugin.version.compiler>
<plugin.version.exec>3.0.0</plugin.version.exec>
<plugin.version.failsafe>3.0.0-M5</plugin.version.failsafe>
<plugin.version.fmt>2.10</plugin.version.fmt>
<plugin.version.license>4.1</plugin.version.license>
<plugin.version.protobuf-maven-plugin>0.6.1</plugin.version.protobuf-maven-plugin>
<plugin.version.proto-backwards-compatibility>1.0.6
</plugin.version.proto-backwards-compatibility>
<plugin.version.replacer>1.5.3</plugin.version.replacer>
<plugin.version.resources>3.2.0</plugin.version.resources>
<plugin.version.scala>4.4.1</plugin.version.scala>
<plugin.version.shade>3.2.4</plugin.version.shade>
<plugin.version.surefire>3.0.0-M5</plugin.version.surefire>
<plugin.version.versions>2.8.1</plugin.version.versions>
<plugin.version.enforcer>3.0.0-M3</plugin.version.enforcer>
<plugin.version.dependency>3.1.2</plugin.version.dependency>
<plugin.version.spotbugs>4.2.3</plugin.version.spotbugs>
<plugin.version.sonar>3.8.0.2131</plugin.version.sonar>
<plugin.version.clirr>2.8</plugin.version.clirr>
<plugin.version.maven-jar>3.2.0</plugin.version.maven-jar>
<plugin.version.dependency-analyzer>1.11.1</plugin.version.dependency-analyzer>
<plugin.version.jacoco>0.8.6</plugin.version.jacoco>
<!-- maven extensions -->
<extension.version.os-maven-plugin>1.7.0</extension.version.os-maven-plugin>
<!-- version against which backwards compatibility is checked -->
<backwards.compat.version>0.26.0</backwards.compat.version>
<ignored.changes.file>ignored-changes.xml</ignored.changes.file>
</properties>
<dependencyManagement>
<dependencies>
<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.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-starter-web</artifactId>
<version>${version.spring-boot}</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.zeebe</groupId>
<artifactId>zeebe-broker</artifactId>
<version>${project.version}</version>
<classifier>tests</classifier>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>io.zeebe</groupId>
<artifactId>zeebe-workflow-engine</artifactId>
<version>${project.version}</version>
<classifier>tests</classifier>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>io.zeebe</groupId>
<artifactId>zeebe-logstreams</artifactId>
<version>${project.version}</version>
<classifier>tests</classifier>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>io.zeebe</groupId>
<artifactId>zeebe-client-java</artifactId>
<version>${project.version}</version>
<classifier>tests</classifier>
<type>test-jar</type>
</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>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${version.junit}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${version.junit4}</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${version.mockito}</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>${version.mockito-jupiter}</version>
</dependency>
<dependency>
<groupId>org.opentest4j</groupId>
<artifactId>opentest4j</artifactId>
<version>${version.opentest4j}</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.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${version.log4j}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${version.log4j}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${version.log4j}</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>${version.hamcrest}</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>${version.hamcrest}</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${version.scala}</version>
</dependency>
<dependency>
<groupId>org.scala-lang.modules</groupId>
<artifactId>scala-parser-combinators_2.13</artifactId>
<version>${version.scala-parser}</version>
</dependency>
<dependency>
<groupId>org.camunda.bpm.model</groupId>
<artifactId>camunda-xml-model</artifactId>
<version>${version.camunda}</version>
</dependency>
<dependency>
<groupId>org.rocksdb</groupId>
<artifactId>rocksdbjni</artifactId>
<version>${version.rocksdbjni}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-core</artifactId>
<version>${version.grpc}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-api</artifactId>
<version>${version.grpc}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>${version.grpc}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf-lite</artifactId>
<version>${version.grpc}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<version>${version.grpc}</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>${version.protobuf}</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
<version>${version.protobuf}</version>
</dependency>
<dependency>
<groupId>com.google.api.grpc</groupId>
<artifactId>proto-google-common-protos</artifactId>
<version>${version.protobuf-common}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
<version>${version.grpc}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-testing</artifactId>
<version>${version.grpc}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-tcnative-boringssl-static</artifactId>
<version>${version.netty-tcnative}</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch-x-content</artifactId>
<version>${version.elasticsearch}</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
<version>${version.elasticsearch}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${version.guava}</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${version.gson}</version>
</dependency>
<dependency>
<groupId>io.zeebe</groupId>
<artifactId>zeebe-test-container</artifactId>
<version>${version.zeebe-test-container}</version>
<!-- This version (1.1.1) conflict with junit's dependency (1.1.0) -->
<exclusions>
<exclusion>
<groupId>org.apiguardian</groupId>
<artifactId>apiguardian-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-annotations</artifactId>
<version>${version.animal-sniffer}</version>
</dependency>
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_annotations</artifactId>
<version>${version.error-prone}</version>
</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>
<!-- for dependency convergence -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>${version.commons-logging}</version>
</dependency>
<!-- for dependency convergence between elasticsearch-rest-client and rest-assured -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${version.commons-codec}</version>
</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>io.prometheus</groupId>
<artifactId>simpleclient</artifactId>
<version>${version.prometheus}</version>
</dependency>
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_httpserver</artifactId>
<version>${version.prometheus}</version>
</dependency>
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_hotspot</artifactId>
<version>${version.prometheus}</version>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
<version>${version.micrometer}</version>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>${version.micrometer}</version>
</dependency>
<dependency>
<groupId>me.dinowernli</groupId>
<artifactId>java-grpc-prometheus</artifactId>
<version>${version.java-grpc-prometheus}</version>
<exclusions>
<exclusion>
<groupId>io.grpc</groupId>
<artifactId>grpc-all</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>${version.javax}</version>
</dependency>
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock-jre8</artifactId>
<version>${version.wiremock}</version>
</dependency>
<dependency>
<!-- specified for dependency convergence -->
<groupId>org.conscrypt</groupId>
<artifactId>conscrypt-openjdk-uber</artifactId>
<version>${version.conscrypt}</version>
</dependency>
<dependency>
<!-- NOTE: required because of https://github.com/tomakehurst/wiremock/issues/1083-->
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>${version.asm}</version>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<version>${version.testcontainers}</version>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>elasticsearch</artifactId>
<version>${version.testcontainers}</version>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>toxiproxy</artifactId>
<version>${version.testcontainers}</version>
</dependency>
<dependency>
<groupId>com.github.docker-java</groupId>
<artifactId>docker-java-api</artifactId>
<version>${version.docker-java-api}</version>
</dependency>
<!--
primarily for dependency convergence with testcontainers
see https://github.com/testcontainers/testcontainers-java/issues/3308
-->
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>${version.jna}</version>
</dependency>
<dependency>
<groupId>net.jqwik</groupId>
<artifactId>jqwik</artifactId>
<version>${version.jqwik}</version>
<!-- This version (1.1.1) conflict with junit's dependency (1.1.0) -->
<exclusions>
<exclusion>
<groupId>org.apiguardian</groupId>
<artifactId>apiguardian-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>net.jqwik</groupId>
<artifactId>jqwik-api</artifactId>
<version>${version.jqwik}</version>
<exclusions>
<!-- This version (1.1.1) conflict with junit's dependency (1.1.0) -->
<exclusion>
<groupId>org.apiguardian</groupId>
<artifactId>apiguardian-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jmock</groupId>
<artifactId>jmock</artifactId>
<version>${version.jmock}</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>
<artifactId>guava-testlib</artifactId>
<groupId>com.google.guava</groupId>
<version>${version.guava}</version>
</dependency>
<dependency>
<artifactId>concurrentunit</artifactId>
<groupId>net.jodah</groupId>
<version>${version.concurrentunit}</version>
</dependency>
<dependency>
<artifactId>kryo</artifactId>
<groupId>com.esotericsoftware</groupId>
<version>${version.kryo}</version>
</dependency>
<dependency>
<artifactId>config</artifactId>
<groupId>com.typesafe</groupId>
<version>${version.config}</version>
</dependency>
<dependency>
<groupId>net.jodah</groupId>
<artifactId>failsafe</artifactId>
<version>${version.failsafe}</version>
</dependency>
<dependency>
<groupId>com.esotericsoftware</groupId>
<artifactId>minlog</artifactId>
<version>${version.minlog}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>io.zeebe</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-slf4j-impl</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>${extension.version.os-maven-plugin}</version>
</extension>
</extensions>
<pluginManagement>
<plugins>
<!-- MAVEN COMPILER -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${plugin.version.compiler}</version>
<configuration>
<release>${version.java}</release>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>clirr-maven-plugin</artifactId>
<version>${plugin.version.clirr}</version>
<configuration>
<comparisonVersion>${backwards.compat.version}</comparisonVersion>
<ignoredDifferencesFile>${ignored.changes.file}</ignoredDifferencesFile>
<!-- TODO(menski): Enable again after 1.0 release -->
<skip>true</skip>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
<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>
<!-- LICENSE PLUGIN -->
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>${plugin.version.license}</version>
<configuration>
<header>${license.header}</header>
<properties>
<owner>camunda services GmbH</owner>
<email>info@camunda.com</email>
</properties>
<includes>
<include>**/*.java</include>
<include>**/*.scala</include>
</includes>
<excludes>
<exclude>benchmarks/project/**/*</exclude>
</excludes>
<mapping>
<java>SLASHSTAR_STYLE</java>
</mapping>
</configuration>
<executions>
<execution>
<id>add-license</id>
<phase>compile</phase>
<goals>
<goal>format</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- CHECKSTYLE -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${plugin.version.checkstyle}</version>
<!-- dependency on build tool to reference the checkstyle cfg -->
<dependencies>
<dependency>
<groupId>io.zeebe</groupId>
<artifactId>zeebe-build-tools</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<configuration>
<configLocation>check/.checkstyle.xml</configLocation>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<encoding>UTF-8</encoding>
<failOnViolation>true</failOnViolation>
<sourceDirectories>
<sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
<sourceDirectory>${project.build.testSourceDirectory}</sourceDirectory>
</sourceDirectories>
</configuration>
<executions>
<execution>
<id>validate-java</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
<configuration>
</configuration>
</execution>
</executions>
</plugin>
<!-- MAVEN SUREFIRE -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${plugin.version.surefire}</version>
<configuration>
<failIfNoTests>false</failIfNoTests>
<trimStackTrace>false</trimStackTrace>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<properties>
<property>
<name>listener</name>
<value>io.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>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${plugin.version.failsafe}</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<failIfNoTests>false</failIfNoTests>
<trimStackTrace>false</trimStackTrace>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<properties>
<property>
<name>listener</name>
<value>io.zeebe.ZeebeTestListener</value>
</property>
</properties>
</configuration>
</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>
<!-- Exec Plugin -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>${plugin.version.exec}</version>
<configuration>
<!-- Define system properties in one place, see https://github.com/camunda-zeebe/zeebe/issues/377 -->
<systemProperties>
<systemProperty>
<key>sbe.output.dir</key>
<value>${project.build.directory}/generated-sources/sbe</value>
</systemProperty>
<systemProperty>
<key>sbe.java.generate.interfaces</key>
<value>true</value>
</systemProperty>
<systemProperty>
<key>sbe.decode.unknown.enum.values</key>
<value>true</value>
</systemProperty>
<systemProperty>
<key>sbe.xinclude.aware</key>
<value>true</value>
</systemProperty>
</systemProperties>
</configuration>
</plugin>
<!-- Resources Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${plugin.version.resources}</version>
</plugin>
<!-- Scala Plugin -->
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>${plugin.version.scala}</version>
<executions>
<execution>
<id>scala-compile-first</id>
<phase>process-resources</phase>
<goals>
<goal>add-source</goal>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>scala-test-compile</id>
<phase>process-test-resources</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<configuration>
<scalaVersion>${version.scala}</scalaVersion>
</configuration>
</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>
<!-- Google code format plugin -->
<plugin>
<groupId>com.coveo</groupId>
<artifactId>fmt-maven-plugin</artifactId>
<version>${plugin.version.fmt}</version>
<executions>
<execution>
<id>format</id>
<phase>process-sources</phase>
<goals>
<goal>format</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>${plugin.version.protobuf-maven-plugin}</version>
<configuration>
<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.salesforce.servicelibs</groupId>
<artifactId>proto-backwards-compatibility</artifactId>
<version>${plugin.version.proto-backwards-compatibility}</version>
<configuration>
<protoSourceRoot>${project.basedir}/src/main/proto</protoSourceRoot>
<allowBreakingChanges>true</allowBreakingChanges>
</configuration>
<executions>
<execution>
<goals>
<goal>backwards-compatibility-check</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 />
</rules>
</configuration>
</execution>
<execution>
<id>enforce-unique-dependencies</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<banDuplicatePomDependencyVersions />
</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>
<!-- The analyze-only goal assumes that the test-compile phase has been executed -->
<phase>verify</phase>
<goals>
<goal>analyze-only</goal>
</goals>
<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-slf4j-impl</dep>
<dep>org.apache.logging.log4j:log4j-core</dep>
<dep>io.zeebe:zeebe-build-tools</dep>
<dep>io.zeebe:zeebe-gateway-protocol</dep>
<dep>org.ow2.asm:asm</dep>
<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.junit.jupiter:junit-jupiter-engine</dep>
<dep>org.junit.vintage:junit-vintage-engine</dep>
<dep>org.codehaus.plexus:plexus-utils:jar:1.1</dep>
</ignoredUnusedDeclaredDependencies>
</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>
<phase>post-integration-test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<!-- Threshold -->
</executions>
</plugin>
<plugin>
<groupId>io.zeebe</groupId>
<artifactId>flaky-test-extractor-maven-plugin</artifactId>
<version>2.0.3</version>
<executions>
<execution>
<phase>post-integration-test</phase>
<goals>
<goal>extract-flaky-tests</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<parameters>true</parameters>
</configuration>
</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>com.coveo</groupId>
<artifactId>fmt-maven-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>io.zeebe</groupId>
<artifactId>flaky-test-extractor-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>skip-unstable-tests</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludedGroups>io.zeebe.UnstableTest</excludedGroups>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>skip-unstable-ci</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludedGroups>io.zeebe.UnstableCI</excludedGroups>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<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>
</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>
</includes>
</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>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<!-- dependency on build tool to reference the spotbugs filter-->
<dependencies>
<dependency>
<groupId>io.zeebe</groupId>
<artifactId>zeebe-build-tools</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</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.
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>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>1.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>go-offline</id>
<phase>initialize</phase>
<goals>
<goal>resolve-plugins</goal>
<goal>go-offline</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- profile to perform only static code analysis using sonar scanner -->
<profile>
<id>sonar</id>
<properties>
<!-- sonarscanner integration -->
<!-- sonar.login token must be passed at runtime to avoid sharing token -->
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
<sonar.organization>zeebe-io</sonar.organization>
<sonar.login>${env.SONARCLOUD_TOKEN}</sonar.login>
<sonar.links.issue>${project.scm.url}/issues</sonar.links.issue>
<sonar.cpd.exclusions>
broker/src/main/java/io/zeebe/broker/system/configuration/backpressure/Gradient2Cfg.java,broker/src/main/java/io/zeebe/broker/system/configuration/backpressure/GradientCfg.java
</sonar.cpd.exclusions>
<sonar.java.source>${version.java}</sonar.java.source>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>${plugin.version.sonar}</version>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>sonar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- profile to disable the fmt-plugin on unsupported jdks -->
<profile>
<id>fmt-plugin</id>
<activation>
<jdk>[,9)</jdk>
</activation>
<build>
<plugins>
<plugin>
<artifactId>fmt-maven-plugin</artifactId>
<groupId>com.coveo</groupId>
<executions>
<execution>
<id>format</id>
<phase>none</phase>
<goals>
<goal>check</goal>
<goal>format</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- profile to perform strict validation checks -->
<profile>
<id>checks</id>
<build>
<plugins>
<plugin>
<artifactId>license-maven-plugin</artifactId>
<groupId>com.mycila</groupId>
<executions>
<execution>
<id>check-license</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>fmt-maven-plugin</artifactId>
<groupId>com.coveo</groupId>
<executions>
<execution>
<id>format</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>