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

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.kie.kogito</groupId>
    <artifactId>kogito-runtimes</artifactId>
    <version>1.1.0.Final</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <artifactId>kogito-build-parent</artifactId>
  <packaging>pom</packaging>

  <name>Kogito Runtimes Build BOM</name>
  <description>Kogito Runtimes Dependency Management Project BOM</description>

  <properties>
    <version.jdk>11</version.jdk>
    <maven.compiler.release>8</maven.compiler.release>
    <checkstyle.header.template>.*</checkstyle.header.template>
    <checkstyle.header.extensions>java</checkstyle.header.extensions>

    <jacoco.agent.argLine/>
    <!--
      JaCoCo coverage data file location. Using a single file for appending in the project's root directory makes it
      possible to measure cross-module test coverage -->
    <jacoco.exec.file>${project.root.dir}/target/jacoco.exec</jacoco.exec.file>
    <!--suppress UnresolvedMavenProperty -->
    <project.root.dir>${maven.multiModuleProjectDirectory}</project.root.dir>
    <tests.surefire.include>**/*Test.java</tests.surefire.include>
    <tests.failsafe.include>**/*IT.java</tests.failsafe.include>
    
    <!-- plugin versions -->
    <version.antapacheregexp>1.8.2</version.antapacheregexp>
    <version.antrun.plugin>1.8</version.antrun.plugin>
    <version.asciidoctor.plugin>1.5.2.1</version.asciidoctor.plugin>
    <version.build.helper.plugin>3.0.0</version.build.helper.plugin>
    <version.ch.qos.logback>1.1.3</version.ch.qos.logback>
    <version.clean.plugin>3.1.0</version.clean.plugin>
    <version.compiler.plugin>3.8.1</version.compiler.plugin>
    <version.copyrename.plugin>1.0</version.copyrename.plugin>
    <version.dependency.plugin>2.8</version.dependency.plugin>
    <version.deploy.plugin>2.8.2</version.deploy.plugin>
    <version.exec.plugin>1.6.0</version.exec.plugin>
    <version.findbugs.plugin>3.0.5</version.findbugs.plugin>
    <version.install.plugin>2.5.2</version.install.plugin>
    <version.invoker.plugin>3.2.1</version.invoker.plugin>
    <version.jacoco.plugin>0.8.5</version.jacoco.plugin>
    <version.jandex.plugin>1.0.6</version.jandex.plugin>
    <version.jar.plugin>3.1.0</version.jar.plugin>
    <version.javadoc.plugin>3.0.1</version.javadoc.plugin>
    <version.javancss.plugin>2.0</version.javancss.plugin>
    <version.jdocbook.plugin>2.3.9</version.jdocbook.plugin>
    <version.license.plugin>1.8.0</version.license.plugin>
    <version.archetype.plugin>3.0.1</version.archetype.plugin>
    <version.enforcer.plugin>3.0.0-M2</version.enforcer.plugin>
    <version.maven>3.6.2</version.maven>
    <version.maven.plugin>3.4</version.maven.plugin>
    <version.native2ascii.plugin>1.0-beta-1</version.native2ascii.plugin>
    <version.plexus>1.6</version.plexus>
    <version.plexus.classworld>2.5.2</version.plexus.classworld>
    <version.plugin.plugin>3.6.0</version.plugin.plugin>
    <version.project.sources.plugin>0.3</version.project.sources.plugin>
    <version.resources.plugin>3.1.0</version.resources.plugin>
    <version.site.plugin>3.7.1</version.site.plugin>
    <version.shade.plugin>3.0.0</version.shade.plugin>
    <version.sonar.plugin>3.6.1.1688</version.sonar.plugin>
    <version.source.plugin>3.0.1</version.source.plugin>
    <version.surefire.plugin>2.22.2</version.surefire.plugin> <!-- minimum required by JUnit 5 -->
    <version.surefire.report.plugin>2.6</version.surefire.report.plugin>
    <version.swagger.plugin>2.1.0</version.swagger.plugin>
    <version.taglist.plugin>2.4</version.taglist.plugin>
    <version.versions.plugin>2.1</version.versions.plugin>
    <version.jayway.jsonpath>2.4.0</version.jayway.jsonpath>

    <!-- this version property is used in plugins but also in dependencies too -->
    <version.io.quarkus>1.11.0.Final</version.io.quarkus>
    <quarkus.logging.manager>org.jboss.logmanager.LogManager</quarkus.logging.manager>

    <!-- dependencies versions -->
    <version.ch.obermuhlner>2.0.1</version.ch.obermuhlner>
    <version.com.fasterxml.jackson>2.11.3</version.com.fasterxml.jackson>
    <version.com.github.haifengl.smile>1.5.2</version.com.github.haifengl.smile>
    <version.com.github.javaparser>3.13.10</version.com.github.javaparser>
    <version.com.github.victools>4.12.1</version.com.github.victools>
    <version.com.google.protobuf>3.14.0</version.com.google.protobuf>
    <version.org.graalvm.nativeimage>20.2.0</version.org.graalvm.nativeimage>
    <version.com.squareup.okhttp3>3.14.6</version.com.squareup.okhttp3>
    <version.com.sun.xml.bind>2.3.0</version.com.sun.xml.bind>
    <version.com.thoughtworks.xstream>1.4.14</version.com.thoughtworks.xstream>
    <version.cz.xtf>0.14</version.cz.xtf>

    <version.javassist>3.20.0-GA</version.javassist>
    <version.javax.activation>1.2.0</version.javax.activation>
    <version.javax.annotation-api>1.3.2</version.javax.annotation-api>
    <version.javax.inject>1</version.javax.inject>
    <version.javax.json>1.1.4</version.javax.json>
    <version.javax.json.bind>1.0</version.javax.json.bind>
    <version.javax.xml.bind>2.3.0</version.javax.xml.bind>
    <version.javax.validation>2.0.1.Final</version.javax.validation>
    <version.json-unit-assertj>2.9.0</version.json-unit-assertj>

    <version.net.java.dev.glazedlists>1.8.0</version.net.java.dev.glazedlists>

    <version.io.cloudevents>2.0.0-milestone3</version.io.cloudevents>
    <version.io.fabric8.kubernetes-client>5.0.0</version.io.fabric8.kubernetes-client>
    <version.io.micrometer>1.6.1</version.io.micrometer>
    <version.io.restassured>4.3.0</version.io.restassured>
    <version.io.restassured.springboot>3.3.0</version.io.restassured.springboot>    <!-- Manually override to 3.3.0 because Spring boot uses rest-assured-common@3.3.0, otherwise error: The type io.restassured.common.mapper.TypeRef cannot be resolved. It is indirectly referenced from required .class files -->
    <version.io.smallrye.reactive>2.6.1</version.io.smallrye.reactive>
    <version.io.smallrye.reactive.mutiny-vertx-web-client>1.3.0</version.io.smallrye.reactive.mutiny-vertx-web-client>
    <version.io.swagger.core.v3>2.0.6</version.io.swagger.core.v3>

    <version.org.antlr>3.5.2</version.org.antlr>
    <version.org.antlr4>4.8</version.org.antlr4>
    <version.org.assertj>3.16.1</version.org.assertj>
    <version.org.eclipse.jdt>3.19.0</version.org.eclipse.jdt>
    <version.org.hamcrest>1.3</version.org.hamcrest> <!-- else old version coming from Mockito wins and breaks tests -->
    <version.org.infinispan>11.0.4.Final</version.org.infinispan>
    <version.org.infinispan.protostream>4.3.4.Final</version.org.infinispan.protostream>
    <version.org.infinispan.starter>2.3.3.Final</version.org.infinispan.starter>
    <version.org.jboss.spec.javax.ws.rs.jboss-jaxrs-api_2.1_spec>1.0.1.Final</version.org.jboss.spec.javax.ws.rs.jboss-jaxrs-api_2.1_spec>
    <version.org.jboss.resteasy.spi.test>4.5.8.Final</version.org.jboss.resteasy.spi.test> <!-- align codegen test to target platforms, which use Resteasy -->
    <version.org.junit.minor>7.0</version.org.junit.minor> <!-- so that org.junit.platform and org.junit can share the same minor version -->
    <version.org.junit>5.${version.org.junit.minor}</version.org.junit>
    <version.org.junit.jupiter>${version.org.junit}</version.org.junit.jupiter>
    <version.org.junit.vintage>${version.org.junit}</version.org.junit.vintage>
    <version.org.junit.platform>1.${version.org.junit.minor}</version.org.junit.platform> <!-- otherwise Quarkus brings its own, silently disabling some tests -->
    <version.org.junit.pioneer>1.0.0</version.org.junit.pioneer>
    <version.org.keycloak>11.0.3</version.org.keycloak>
    <version.org.mockito>3.6.0</version.org.mockito>
    <version.org.mvel>2.4.10.Final</version.org.mvel>
    <version.org.kie7>7.48.0.Final</version.org.kie7>
    <version.org.reactivestreams>1.0.3</version.org.reactivestreams>
    <version.org.reflections>0.9.11</version.org.reflections>
    <version.org.slf4j>1.7.30</version.org.slf4j>
    <version.wiremock>2.27.2</version.wiremock>
    <version.testcontainers>1.15.1</version.testcontainers>
    <version.resteasy.springboot>4.6.0.Final</version.resteasy.springboot>
    <version.springboot>2.3.1.RELEASE</version.springboot>
    <version.spring.kafka>2.5.2.RELEASE</version.spring.kafka>
    <version.spring.reactor>3.3.6.RELEASE</version.spring.reactor>
    <version.spring.reactor.kafka>1.2.2.RELEASE</version.spring.reactor.kafka>
    <version.spring.netty>4.1.50.Final</version.spring.netty>
    <version.spring.framework>5.2.7.RELEASE</version.spring.framework>
    <version.xmlunit>2.2.1</version.xmlunit>
    <version.jsonschema2pojo-maven-plugin>1.0.1</version.jsonschema2pojo-maven-plugin>
    <version.com.github.java-json-tools>2.2.10</version.com.github.java-json-tools>
    <version.json>20200518</version.json>
    <version.org.mongo>4.1.0</version.org.mongo>
    <version.org.apache.xmlgraphics.batik>1.13</version.org.apache.xmlgraphics.batik>
    <version.xerces>2.11.0</version.xerces>

    <!-- container images for testing -->
    <container.image.infinispan>infinispan/server:${version.org.infinispan}</container.image.infinispan>
    <container.image.keycloak>jboss/keycloak:${version.org.keycloak}</container.image.keycloak>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.kie.kogito</groupId>
        <artifactId>kogito-bom</artifactId>
        <version>${project.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-dmn-api</artifactId>
        <version>${version.org.kie7}</version>
      </dependency>
      <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-dmn-core</artifactId>
        <version>${version.org.kie7}</version>
      </dependency>
      <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-dmn-validation</artifactId>
        <version>${version.org.kie7}</version>
      </dependency>
      <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-dmn-openapi</artifactId>
        <version>${version.org.kie7}</version>
      </dependency>
      <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-dmn-jpmml</artifactId>
        <version>${version.org.kie7}</version>
      </dependency>
      <dependency>
        <groupId>org.kie.kogito</groupId>
        <artifactId>kogito-test-utils</artifactId>
        <version>${project.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-core-reflective</artifactId>
        <version>${version.org.kie7}</version>
      </dependency>
      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-core</artifactId>
        <version>${version.org.kie7}</version>
      </dependency>
      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-compiler</artifactId>
        <version>${version.org.kie7}</version>
      </dependency>
      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-decisiontables</artifactId>
        <version>${version.org.kie7}</version>
      </dependency>
      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-model-compiler</artifactId>
        <version>${version.org.kie7}</version>
      </dependency>
      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-mvel</artifactId>
        <version>${version.org.kie7}</version>
      </dependency>
      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-serialization-protobuf</artifactId>
        <version>${version.org.kie7}</version>
      </dependency>

      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-scenario-simulation-api</artifactId>
        <version>${version.org.kie7}</version>
      </dependency>
      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-scenario-simulation-backend</artifactId>
        <version>${version.org.kie7}</version>
      </dependency>

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${version.org.slf4j}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>${version.org.slf4j}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-nop</artifactId>
        <version>${version.org.slf4j}</version>
      </dependency>

      <dependency>
        <groupId>org.mvel</groupId>
        <artifactId>mvel2</artifactId>
        <version>${version.org.mvel}</version>
      </dependency>

      <dependency>
        <groupId>org.kie.soup</groupId>
        <artifactId>kie-soup-xstream</artifactId>
        <version>${version.org.kie7}</version>
      </dependency>
      <dependency>
        <groupId>com.thoughtworks.xstream</groupId>
        <artifactId>xstream</artifactId>
        <version>${version.com.thoughtworks.xstream}</version>
      </dependency>

      <dependency>
        <groupId>com.google.protobuf</groupId>
        <artifactId>protobuf-java</artifactId>
        <version>${version.com.google.protobuf}</version>
      </dependency>
      <dependency>
        <groupId>com.google.protobuf</groupId>
        <artifactId>protobuf-java-util</artifactId>
        <version>${version.com.google.protobuf}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.jdt</groupId>
        <artifactId>ecj</artifactId>
        <version>${version.org.eclipse.jdt}</version>
      </dependency>

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

      <dependency>
        <groupId>org.antlr</groupId>
        <artifactId>antlr4</artifactId>
        <version>${version.org.antlr4}</version>
      </dependency>
      <dependency>
        <groupId>org.antlr</groupId>
        <artifactId>antlr4-runtime</artifactId>
        <version>${version.org.antlr4}</version>
      </dependency>

      <dependency>
        <groupId>org.javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>${version.javassist}</version>
      </dependency>

      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${version.ch.qos.logback}</version>
      </dependency>

      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>${version.ch.qos.logback}</version>
      </dependency>

      <!-- used by DMN for BigDecimal arithmetics -->
      <dependency>
        <groupId>ch.obermuhlner</groupId>
        <artifactId>big-math</artifactId>
        <version>${version.ch.obermuhlner}</version>
      </dependency>

      <!-- code generation -->
      <dependency>
        <groupId>com.github.javaparser</groupId>
        <artifactId>javaparser-core</artifactId>
        <version>${version.com.github.javaparser}</version>
      </dependency>

      <!-- marshalling -->
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${version.com.fasterxml.jackson}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${version.com.fasterxml.jackson}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${version.com.fasterxml.jackson}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jsr310</artifactId>
        <version>${version.com.fasterxml.jackson}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-yaml</artifactId>
        <version>${version.com.fasterxml.jackson}</version>
      </dependency>
      <dependency>
        <groupId>com.jayway.jsonpath</groupId>
        <artifactId>json-path</artifactId>
        <version>${version.jayway.jsonpath}</version>
      </dependency>
      <dependency>
        <groupId>com.jayway.jsonpath</groupId>
        <artifactId>json-path-assert</artifactId>
        <version>${version.jayway.jsonpath}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye.reactive</groupId>
        <artifactId>smallrye-mutiny-vertx-web-client</artifactId>
        <version>${version.io.smallrye.reactive.mutiny-vertx-web-client}</version>
      </dependency>
      <!-- http communication -->
      <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>okhttp</artifactId>
        <version>${version.com.squareup.okhttp3}</version>
      </dependency>
      <!--  kubernetes and OpenShift clients -->
      <dependency>
        <groupId>io.fabric8</groupId>
        <artifactId>kubernetes-client</artifactId>
        <version>${version.io.fabric8.kubernetes-client}</version>
      </dependency>
      <dependency>
        <groupId>io.fabric8</groupId>
        <artifactId>openshift-client</artifactId>
        <version>${version.io.fabric8.kubernetes-client}</version>
      </dependency>
      <!-- metrics - monitoring -->
      <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-core</artifactId>
        <version>${version.io.micrometer}</version>
      </dependency>
      <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-registry-prometheus</artifactId>
        <version>${version.io.micrometer}</version>
      </dependency>

      <dependency>
        <groupId>org.jboss.spec.javax.ws.rs</groupId>
        <artifactId>jboss-jaxrs-api_2.1_spec</artifactId>
        <version>${version.org.jboss.spec.javax.ws.rs.jboss-jaxrs-api_2.1_spec}</version>
      </dependency>

      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>${version.org.junit.jupiter}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>${version.org.junit.jupiter}</version>
        <scope>test</scope>
      </dependency>

      <dependency> <!-- TODO move this dep into surefire-plugin when all modules are migrated to JUnit 5 -->
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${version.org.junit.jupiter}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-params</artifactId>
        <version>${version.org.junit.jupiter}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-engine</artifactId>
        <version>${version.org.junit.platform}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-commons</artifactId>
        <version>${version.org.junit.platform}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.junit.vintage</groupId>
        <artifactId>junit-vintage-engine</artifactId>
        <version>${version.org.junit.vintage}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>${version.org.assertj}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>${version.org.mockito}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-inline</artifactId>
        <version>${version.org.mockito}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-junit-jupiter</artifactId>
        <version>${version.org.mockito}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-library</artifactId>
        <version>${version.org.hamcrest}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-core</artifactId>
        <version>${version.org.hamcrest}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>net.java.dev.glazedlists</groupId>
        <artifactId>glazedlists_java15</artifactId>
        <version>${version.net.java.dev.glazedlists}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.xmlunit</groupId>
        <artifactId>xmlunit-core</artifactId>
        <version>${version.xmlunit}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>net.javacrumbs.json-unit</groupId>
        <artifactId>json-unit-assertj</artifactId>
        <version>${version.json-unit-assertj}</version>
        <scope>test</scope>
      </dependency>

     <dependency>
        <groupId>com.github.tomakehurst</groupId>
        <artifactId>wiremock-jre8</artifactId>
        <version>${version.wiremock}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-artifact</artifactId>
        <version>${version.maven}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-plugin-api</artifactId>
        <version>${version.maven}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-core</artifactId>
        <version>${version.maven}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.plugin-tools</groupId>
        <artifactId>maven-plugin-annotations</artifactId>
        <version>${version.maven.plugin}</version>
      </dependency>

      <dependency>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-component-annotations</artifactId>
        <version>${version.plexus}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-container-default</artifactId>
        <version>${version.plexus}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-classworlds</artifactId>
        <version>${version.plexus.classworld}</version>
      </dependency>

      <dependency>
        <groupId>javax.json.bind</groupId>
        <artifactId>javax.json.bind-api</artifactId>
        <version>${version.javax.json.bind}</version>
      </dependency>
      <dependency>
        <groupId>javax.json</groupId>
        <artifactId>javax.json-api</artifactId>
        <version>${version.javax.json}</version>
      </dependency>

      <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>${version.javax.xml.bind}</version>
      </dependency>
      <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-core</artifactId>
        <version>${version.com.sun.xml.bind}</version>
      </dependency>
      <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>${version.com.sun.xml.bind}</version>
      </dependency>
      <dependency>
        <groupId>com.sun.activation</groupId>
        <artifactId>javax.activation</artifactId>
        <version>${version.javax.activation}</version>
      </dependency>
      <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>${version.javax.validation}</version>
      </dependency>

      <dependency>
        <groupId>org.graalvm.nativeimage</groupId>
        <artifactId>svm</artifactId>
        <version>${version.org.graalvm.nativeimage}</version>
      </dependency>

      <dependency>
        <groupId>org.reactivestreams</groupId>
        <artifactId>reactive-streams</artifactId>
        <version>${version.org.reactivestreams}</version>
      </dependency>

      <dependency>
        <groupId>io.smallrye.reactive</groupId>
        <artifactId>smallrye-reactive-messaging-http</artifactId>
        <version>${version.io.smallrye.reactive}</version>
      </dependency>

      <dependency>
        <groupId>io.smallrye.reactive</groupId>
        <artifactId>smallrye-reactive-messaging-provider</artifactId>
        <version>${version.io.smallrye.reactive}</version>
      </dependency>
      
      <dependency>
        <groupId>io.swagger.core.v3</groupId>
        <artifactId>swagger-annotations</artifactId>
        <version>${version.io.swagger.core.v3}</version>
      </dependency>

      <dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>${version.javax.inject}</version>
      </dependency>
      <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>${version.javax.annotation-api}</version>
      </dependency>

      <!-- infinispan -->
      <dependency>
        <groupId>org.infinispan</groupId>
        <artifactId>infinispan-remote-query-client</artifactId>
        <version>${version.org.infinispan}</version>
      </dependency>
      <dependency>
        <groupId>org.infinispan</groupId>
        <artifactId>infinispan-client-hotrod</artifactId>
        <version>${version.org.infinispan}</version>
      </dependency>
      <dependency>
        <groupId>org.infinispan</groupId>
        <artifactId>infinispan-query-dsl</artifactId>
        <version>${version.org.infinispan}</version>
      </dependency>
      <dependency>
        <groupId>org.infinispan.protostream</groupId>
        <artifactId>protostream</artifactId>
        <version>${version.org.infinispan.protostream}</version>
      </dependency>

      <!-- spring related -->
      <dependency>
        <groupId>org.springframework.kafka</groupId>
        <artifactId>spring-kafka</artifactId>
        <version>${version.spring.kafka}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-spring-boot-starter</artifactId>
        <version>${version.resteasy.springboot}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${version.spring.framework}</version>
      </dependency>
      <dependency>
        <groupId>io.projectreactor</groupId>
        <artifactId>reactor-core</artifactId>
        <version>${version.spring.reactor}</version>
      </dependency>
      <dependency>
        <groupId>io.projectreactor.kafka</groupId>
        <artifactId>reactor-kafka</artifactId>
        <version>${version.spring.reactor.kafka}</version>
      </dependency>

      <!-- predictions/machine learning related -->
      <dependency>
        <groupId>com.github.haifengl</groupId>
        <artifactId>smile-core</artifactId>
        <version>${version.com.github.haifengl.smile}</version>
      </dependency>

      <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>rest-assured</artifactId>
        <version>${version.io.restassured}</version>
      </dependency>

      <dependency>
        <groupId>cz.xtf</groupId>
        <artifactId>core</artifactId>
        <version>${version.cz.xtf}</version>
      </dependency>
      <dependency>
        <groupId>cz.xtf</groupId>
        <artifactId>builder</artifactId>
        <version>${version.cz.xtf}</version>
      </dependency>

      <dependency>
        <groupId>org.reflections</groupId>
        <artifactId>reflections</artifactId>
        <version>${version.org.reflections}</version>
      </dependency>

      <dependency>
        <groupId>io.fabric8</groupId>
        <artifactId>kubernetes-server-mock</artifactId>
        <version>${version.io.fabric8.kubernetes-client}</version>
        <scope>test</scope>
      </dependency>

      <!-- CloudEvents -->
      <dependency>
        <groupId>io.cloudevents</groupId>
        <artifactId>cloudevents-api</artifactId>
        <version>${version.io.cloudevents}</version>
      </dependency>
      <dependency>
        <groupId>io.cloudevents</groupId>
        <artifactId>cloudevents-json-jackson</artifactId>
        <version>${version.io.cloudevents}</version>
      </dependency>
      <dependency>
        <groupId>io.cloudevents</groupId>
        <artifactId>cloudevents-http-restful-ws</artifactId>
        <version>${version.io.cloudevents}</version>
      </dependency>

      <!--  Json Schema -->
      <dependency>
        <groupId>com.github.victools</groupId>
        <artifactId>jsonschema-generator</artifactId>
        <version>${version.com.github.victools}</version>
      </dependency>
      <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>json-schema-validator</artifactId>
        <version>${version.io.restassured}</version>
      </dependency>
      <dependency>
        <groupId>com.github.java-json-tools</groupId>
        <artifactId>json-schema-validator</artifactId>
        <version>${version.com.github.java-json-tools}</version>
        <scope>test</scope>
      </dependency>

      <!-- mongoDB related -->
      <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongodb-driver-sync</artifactId>
        <version>${version.org.mongo}</version>
      </dependency>

      <!-- Workflow related -->
      <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>${version.json}</version>
      </dependency>

      <!-- Process SVG -->
      <dependency>
        <groupId>org.apache.xmlgraphics</groupId>
        <artifactId>batik-util</artifactId>
        <version>${version.org.apache.xmlgraphics.batik}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.xmlgraphics</groupId>
        <artifactId>batik-anim</artifactId>
        <version>${version.org.apache.xmlgraphics.batik}</version>
      </dependency>
      <dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <version>${version.xerces}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-archetype-plugin</artifactId>
          <version>${version.archetype.plugin}</version>
          <configuration>
            <skip>${skipTests}</skip>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${version.enforcer.plugin}</version>
          <executions>
            <execution>
              <id>enforce-versions</id>
              <goals>
                <goal>enforce</goal>
              </goals>
              <configuration>
                <rules>
                  <requireMavenVersion>
                    <version>${version.maven}</version>
                  </requireMavenVersion>
                  <requireJavaVersion>
                    <version>${version.jdk}</version>
                  </requireJavaVersion>
                </rules>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>${version.clean.plugin}</version>
          <executions>
            <execution>
              <id>default-clean</id>
              <phase>clean</phase>
              <goals>
                <goal>clean</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>${version.install.plugin}</version>
          <executions>
            <execution>
              <id>default-install</id>
              <phase>install</phase>
              <goals>
                <goal>install</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>${version.site.plugin}</version>
          <executions>
            <execution>
              <id>default-site</id>
              <phase>site</phase>
              <goals>
                <goal>site</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>${version.dependency.plugin}</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>${version.deploy.plugin}</version>
          <configuration>
            <retryFailedDeploymentCount>10</retryFailedDeploymentCount>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${version.compiler.plugin}</version>
          <configuration>
            <showDeprecation>true</showDeprecation>
            <showWarnings>true</showWarnings>
            <release>${maven.compiler.release}</release>
            <compilerArgs>
              <arg>-Xlint:unchecked</arg>
            </compilerArgs>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>${version.antrun.plugin}</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.ant</groupId>
              <artifactId>ant-apache-regexp</artifactId>
              <version>${version.antapacheregexp}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${version.resources.plugin}</version>
          <configuration>
            <encoding>UTF-8</encoding>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>${version.surefire.plugin}</version>
          <configuration>
            <includes>
              <include>${tests.failsafe.include}</include>
            </includes>
            <excludes>
              <exclude>${tests.surefire.include}</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${version.surefire.plugin}</version>
          <configuration>
            <includes>
              <include>${tests.surefire.include}</include>
            </includes>
            <excludes>
              <exclude>${tests.failsafe.include}</exclude>
            </excludes>
            <argLine>-Xmx1024m -Dfile.encoding=UTF-8</argLine>
            <systemPropertyVariables>
              <apple.awt.UIElement>true</apple.awt.UIElement>
              <org.uberfire.nio.git.daemon.enabled>false</org.uberfire.nio.git.daemon.enabled>
              <org.uberfire.nio.git.ssh.enabled>false</org.uberfire.nio.git.ssh.enabled>
              <org.uberfire.sys.repo.monitor.disabled>true</org.uberfire.sys.repo.monitor.disabled>
            </systemPropertyVariables>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>${version.exec.plugin}</version>
        </plugin>
        <!-- Packaging -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${version.jar.plugin}</version>
          <executions>
            <execution>
              <id>default-jar</id>
              <configuration>
                <archive>
                  <manifestEntries combine.children="append">
                    <Automatic-Module-Name>${java.module.name}</Automatic-Module-Name>
                  </manifestEntries>
                </archive>
              </configuration>
            </execution>
            <execution>
              <id>test-jar</id>
              <goals>
                <goal>test-jar</goal>
              </goals>
              <configuration>
                <skipIfEmpty>true</skipIfEmpty>
                <excludes>
                  <exclude>**/logback-test.xml</exclude>
                  <exclude>**/jndi.properties</exclude>
                </excludes>
              </configuration>
            </execution>
          </executions>
          <configuration>
            <archive>
              <manifest>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              </manifest>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>${version.source.plugin}</version>
          <executions>
            <execution>
              <id>attach-sources</id>
              <goals>
                <goal>jar-no-fork</goal>
              </goals>
            </execution>
            <execution>
              <id>attach-test-sources</id>
              <goals>
                <goal>test-jar-no-fork</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.commonjava.maven.plugins</groupId>
          <artifactId>project-sources-maven-plugin</artifactId>
          <version>${version.project.sources.plugin}</version>
          <executions>
            <execution>
              <id>project-sources-archive</id>
              <phase>initialize</phase>
              <goals>
                <goal>archive</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-invoker-plugin</artifactId>
          <version>${version.invoker.plugin}</version>
          <configuration>
            <skipInstallation>${skipTests}</skipInstallation>
            <skipInvocation>${skipTests}</skipInvocation>
            <failIfNoProjects>true</failIfNoProjects>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>${version.versions.plugin}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <configuration>
            <!-- Manually push changes (including git tags) after nexus staged repo is successfully closed -->
            <pushChanges>false</pushChanges>
            <autoVersionSubmodules>true</autoVersionSubmodules>
          </configuration>
        </plugin>
        <plugin>
          <groupId>com.mycila.maven-license-plugin</groupId>
          <artifactId>maven-license-plugin</artifactId>
          <version>${version.license.plugin}</version>
          <configuration>
            <!-- TODO this is buggy as it only works for first level modules -->
            <header>${basedir}/../LICENSE-ASL-2.0-HEADER.txt</header>
            <includes>
              <include>**/*.java</include>
              <include>**/*.drl</include>
            </includes>
            <mapping>
              <drl>JAVADOC_STYLE</drl>
            </mapping>
            <encoding>UTF-8</encoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${version.javadoc.plugin}</version>
          <configuration>
            <links>
              <link>http://docs.oracle.com/javase/8/docs/api</link>
            </links>
            <minmemory>128m</minmemory>
            <maxmemory>512m</maxmemory>
            <author>false</author>
            <breakiterator>true</breakiterator>
            <quiet>true</quiet>
            <additionalparam>${javadoc.additional.params}</additionalparam>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>${version.findbugs.plugin}</version>
          <configuration>
            <maxRank>6</maxRank>
            <effort>Max</effort>
            <xmlOutput>true</xmlOutput>
            <failOnError>${findbugs.failOnViolation}</failOnError>
            <excludeFilterFile>findbugs-excludes.xml</excludeFilterFile>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.kie</groupId>
          <artifactId>kie-maven-plugin</artifactId>
          <version>${version.org.kie}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-plugin-plugin</artifactId>
          <version>${version.plugin.plugin}</version>
        </plugin>
        <plugin>
          <groupId>io.openapitools.swagger</groupId>
          <artifactId>swagger-maven-plugin</artifactId>
          <version>${version.swagger.plugin}</version>
        </plugin>
        <plugin>
          <groupId>org.jboss.jandex</groupId>
          <artifactId>jandex-maven-plugin</artifactId>
          <version>${version.jandex.plugin}</version>
          <executions>
            <execution>
              <id>make-index</id>
              <goals>
                <goal>jandex</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>${version.jacoco.plugin}</version>
          <executions>
            <execution>
              <id>jacoco-prepare-agent</id>
              <goals>
                <goal>prepare-agent</goal>
              </goals>
              <configuration>
                <append>true</append>
                <destFile>${jacoco.exec.file}</destFile>
                <excludes>
                  <exclude>*Lexer</exclude>
                  <exclude>org.kie.kogito.codegen.data.*</exclude>
                </excludes>
                <propertyName>jacoco.agent.argLine</propertyName>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.sonarsource.scanner.maven</groupId>
          <artifactId>sonar-maven-plugin</artifactId>
          <version>${version.sonar.plugin}</version>
        </plugin>
        <plugin>
          <groupId>io.quarkus</groupId>
          <artifactId>quarkus-maven-plugin</artifactId>
          <version>${version.io.quarkus}</version>
        </plugin>
        <plugin>
          <groupId>io.quarkus</groupId>
          <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
          <version>${version.io.quarkus}</version>
        </plugin>
        <plugin>
          <groupId>org.jsonschema2pojo</groupId>
          <artifactId>jsonschema2pojo-maven-plugin</artifactId>
          <version>${version.jsonschema2pojo-maven-plugin}</version>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <!-- Entry needed to create test-jars even for packaging types war, bundle, ... -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
      </plugin>
      <plugin>
        <!-- Entry needed to create, install and deploy sources jars -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <!-- Note: It's not possible to configure reporting plugins in pluginManagement in m2.0.4 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <version>${version.surefire.report.plugin}</version>
        <reportSets>
          <reportSet>
            <reports>
              <report>report-only</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>javancss-maven-plugin</artifactId>
        <version>${version.javancss.plugin}</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>taglist-maven-plugin</artifactId>
        <version>${version.taglist.plugin}</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </reporting>

  <profiles>
    <profile>
      <id>run-code-coverage</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <!-- Append jacoco.agent.argLine property populated by JaCoCo's prepare-agent goal. -->
              <argLine>@{jacoco.agent.argLine} -Xms1024m -Xmx4g -Dfile.encoding=UTF-8</argLine>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!--
      Creates JaCoCo XML reports and invokes the Sonar scanner, which uploads code quality data into the SonarCloud.
    -->
    <profile>
      <id>sonarcloud-analysis</id>
      <properties>
        <sonar.coverage.jacoco.xmlReportPaths>${project.reporting.outputDirectory}/jacoco/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
        <sonar.host.url>https://sonarcloud.io</sonar.host.url>
        <sonar.organization>kiegroup</sonar.organization>
        <!--suppress UnresolvedMavenProperty -->
        <sonar.login>${env.SONARCLOUD_TOKEN}</sonar.login>
        <sonar.java.source>${maven.compiler.release}</sonar.java.source>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <phase>validate</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <!--
                    Jacoco ant "report" task provides control over scope of the generated report. The report task
                    requires access to sources, classes and .exec file containing coverage data. The configuration
                    below uses sources and classes of the entire project (each of its modules) and a single jacoco.exec
                    file placed in project root directory.
                    Jacoco maven plugin does not provide such a level of control and requires an artificial module that
                    depends on all modules in the project to generate an aggregated report for all the modules.
                    This necessity of creating a reporting module in every project is rather intrusive.
                    See:
                    https://www.jacoco.org/jacoco/trunk/doc/report-aggregate-mojo.html and
                    https://groups.google.com/forum/#!topic/jacoco/oMxNZs_DNII
                  -->
                  <target>
                    <echo message="Generating JaCoCo Reports"/>
                    <taskdef name="report" classname="org.jacoco.ant.ReportTask"/>
                    <mkdir dir="${project.reporting.outputDirectory}/jacoco"/>
                    <mkdir dir="${project.root.dir}/target"/>
                    <report>
                      <executiondata>
                        <fileset dir="${project.root.dir}/target">
                          <!--
                            Include a single jacoco.exec file, which should be used in append mode by every module.
                          -->
                          <include name="jacoco.exec"/>
                        </fileset>
                      </executiondata>
                      <structure name="Coverage Report">
                        <group name="${project.artifactId}">
                          <classfiles>
                            <fileset dir="${project.root.dir}">
                              <!--
                                Include class files from every module.
                              -->
                              <include name="**/target/classes/**/*.class"/>
                              <!-- To avoid a complaint about duplicate classes from archetypes. -->
                              <exclude name="**/target/test-classes/**/*.class"/>
                              <!-- To avoid a complaint about duplicate classes as KogitoProcessInstancesFactory.class is required in every persistence addon that is mutually exclusive. -->
                              <exclude name="**/target/classes/org/kie/kogito/persistence/KogitoProcessInstancesFactory.class"/>
                              <!-- To avoid a complaint about duplicate classes created by code generation. -->
                              <exclude name="**/target/classes/**/Application.class"/>
                              <exclude name="**/target/classes/**/ApplicationConfig.class"/>
                              <exclude name="**/target/classes/**/RuleUnits.class"/>
                              <!-- To avoid a complaint about duplicate classes created by code generation in IT tests. -->
                              <exclude name="**/it/integration-tests-springboot-it/target/classes/**/*.class"/>
                              <exclude name="**/it/integration-tests-springboot-kakfa-it/target/classes/**/*.class"/>
                              <exclude name="**/it/integration-tests-kogito-plugin-it/target/classes/**/*.class"/>
                              <exclude name="**/apps-integration-tests/**/target/classes/**/*.class"/>
                              <exclude name="**/integration-tests/**/target/classes/**/*.class"/>
                              <exclude name="**/integration-test/**/target/classes/**/*.class"/>
                              <exclude name="**/integration-test-legacy/**/target/classes/**/*.class"/>
                            </fileset>
                          </classfiles>
                          <sourcefiles encoding="UTF-8">
                            <fileset dir="${project.root.dir}">
                              <!--
                                Include source files from every module.
                              -->
                              <include name="**/src/main/**/*.java"/>
                            </fileset>
                          </sourcefiles>
                        </group>
                      </structure>
                      <!-- The same report is generated in each module -->
                      <xml destfile="${project.reporting.outputDirectory}/jacoco/jacoco.xml"/>
                    </report>
                  </target>
                </configuration>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <groupId>org.jacoco</groupId>
                <artifactId>org.jacoco.ant</artifactId>
                <!-- Keep the version in sync with jacoco-maven-plugin -->
                <version>${version.jacoco.plugin}</version>
              </dependency>
            </dependencies>
          </plugin>
          <plugin>
            <groupId>org.sonarsource.scanner.maven</groupId>
            <artifactId>sonar-maven-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>sonar</goal>
                </goals>
                <phase>validate</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <activation>
        <property>
          <name>env.ghprbPullId</name>
        </property>
      </activation>
      <id>sonarcloud-analysis-pull-request</id>
      <properties>
        <sonar.pullrequest.provider>GitHub</sonar.pullrequest.provider>
        <!--suppress UnresolvedMavenProperty -->
        <sonar.pullrequest.branch>${env.ghprbSourceBranch}</sonar.pullrequest.branch>
        <!--suppress UnresolvedMavenProperty -->
        <sonar.pullrequest.key>${env.ghprbPullId}</sonar.pullrequest.key>
        <!--suppress UnresolvedMavenProperty -->
        <sonar.pullrequest.base>${env.ghprbTargetBranch}</sonar.pullrequest.base>
        <!--suppress UnresolvedMavenProperty -->
        <sonar.pullrequest.github.repository>${env.ghprbPullLink}</sonar.pullrequest.github.repository>
      </properties>
    </profile>
  </profiles>
</project>
