<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (C) 2006-2022 Talend Inc. - www.talend.com
   Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.talend.sdk.component</groupId>
  <artifactId>component-runtime</artifactId>
  <version>1.50.3</version>
  <packaging>pom</packaging>

  <name>Component Runtime</name>
  <description>Talend Component Kit Runtime</description>
  <url>https://talend.github.io/component-runtime/</url>
  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>https://github.com/talend/component-runtime/blob/master/LICENSE</url>
      <distribution>may be downloaded from the Maven repository</distribution>
    </license>
  </licenses>

  <developers>
    <developer>
      <id>rmannibucau</id>
      <name>Romain Manni-Bucau</name>
      <email>rmannibucau@talend.com</email>
      <organization>Talend</organization>
      <organizationUrl>https://www.talend.com/</organizationUrl>
      <roles>
        <role>Contributor</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>akhabali</id>
      <name>Anas Khabali</name>
      <email>akhabali@talend.com</email>
      <organization>Talend</organization>
      <organizationUrl>https://www.talend.com/</organizationUrl>
      <roles>
        <role>Contributor</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>dchmyga</id>
      <name>Dmytro Chmyga</name>
      <email>dchmyga@talend.com</email>
      <organization>Talend</organization>
      <organizationUrl>https://www.talend.com/</organizationUrl>
      <roles>
        <role>Contributor</role>
      </roles>
      <timezone>+2</timezone>
    </developer>
    <developer>
      <id>igonchar</id>
      <name>Ivan Honchar</name>
      <email>igonchar@talend.com</email>
      <organization>Talend</organization>
      <organizationUrl>https://www.talend.com/</organizationUrl>
      <roles>
        <role>Contributor</role>
      </roles>
      <timezone>+2</timezone>
    </developer>
    <developer>
      <id>undx</id>
      <name>Emmanuel GALLOIS</name>
      <email>egallois@talend.com</email>
      <organization>Talend</organization>
      <organizationUrl>https://www.talend.com/</organizationUrl>
      <roles>
        <role>Contributor</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>clesaec</id>
      <name>Christophe Le Saec</name>
      <email>clesaec@talend.com</email>
      <organization>Talend</organization>
      <organizationUrl>https://www.talend.com/</organizationUrl>
      <roles>
        <role>Contributor</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
  </developers>

  <modules>
    <module>bom</module>
    <module>component-api</module>
    <module>container</module>
    <module>component-spi</module>
    <module>sample-parent</module>
    <module>component-runtime-beam</module>
    <module>component-runtime-impl</module>
    <module>component-runtime-manager</module>
    <module>component-runtime-testing</module>
    <module>component-runtime-design-extension</module>
    <module>vault-client</module>
    <module>component-server-parent</module>
    <module>component-form</module>
    <module>talend-component-maven-plugin</module>
    <module>gradle-talend-component</module>
    <module>component-starter-server</module>
    <module>component-tools</module>
    <module>slf4j-standard</module>
    <module>component-tools-webapp</module>
    <module>component-studio</module>
    <module>images</module>
    <module>documentation</module>
    <module>talend-component-kit-intellij-plugin</module>
    <module>singer-parent</module>
    <module>remote-engine-customizer</module>
    <module>reporting</module>
  </modules>

  <scm>
    <connection>scm:git:git://github.com/talend/component-runtime.git</connection>
    <developerConnection>scm:git:git@github.com:talend/component-runtime.git</developerConnection>
    <tag>component-runtime-1.50.3</tag>
    <url>https://github.com/talend/component-runtime</url>
  </scm>
  <distributionManagement>
    <repository>
      <id>ossrh</id>
      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
    </repository>
    <snapshotRepository>
      <id>ossrh</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>
  </distributionManagement>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <!-- when using -T X, X > 1 you can set -DsimpleLogger.showThreadName=true to have something a bit more readable -->
    <org.slf4j.simpleLogger.showThreadName>${simpleLogger.showThreadName}</org.slf4j.simpleLogger.showThreadName>

    <!-- for the CI which splits dependencies download and build -->
    <component.front.build.skip>${skip.npm}</component.front.build.skip>

    <!-- this is a bad default but each module should override it -->
    <talend.build.name.base>${project.groupId}.runtime</talend.build.name.base>
    <talend.build.name>${talend.build.name.base}.${project.artifactId}</talend.build.name>

    <xbean.version>4.20</xbean.version>
    <!-- do not update without updating test-->
    <xbean.test.version>4.9</xbean.test.version>
    <xerces.version>2.12.0</xerces.version>

    <junit.version>4.13.2</junit.version>
    <ziplock.version>8.0.4</ziplock.version>

    <!-- do not update without updating test-->
    <ziplock.test.version>7.0.5</ziplock.test.version>
    <meecrowave.version>1.2.14</meecrowave.version>
    <owb.version>2.0.27</owb.version>
    <tomcat.version>9.0.63</tomcat.version>
    <cxf.version>3.5.2</cxf.version>

    <logback.version>1.2.5</logback.version>
    <reload4j.version>1.2.19</reload4j.version>
    <geronimo-jcdi.version>1.1</geronimo-jcdi.version>
    <geronimo-atinject.version>1.1</geronimo-atinject.version>
    <geronimo-annotation.version>1.2</geronimo-annotation.version>
    <geronimo-interceptor.version>1.1</geronimo-interceptor.version>
    <geronimo-jsonb.version>1.2</geronimo-jsonb.version>
    <geronimo-json.version>1.3</geronimo-json.version>
    <batik.version>1.14</batik.version>
    <commons-logging.version>1.2</commons-logging.version>
    <commons-cli.version>1.4</commons-cli.version>
    <commons-text.version>1.10.0</commons-text.version>
    <geronimo-jaxrs.version>1.1</geronimo-jaxrs.version>
    <asciidoctorj.version>2.5.2</asciidoctorj.version>
    <asciidoctorj-pdf.version>1.6.0</asciidoctorj-pdf.version>
    <microprofile-config-api.version>1.3</microprofile-config-api.version>
    <microprofile-openapi-api.version>1.1.1</microprofile-openapi-api.version>
    <microprofile-opentracing.version>1.2.1</microprofile-opentracing.version>
    <microprofile-metrics-api.version>1.1.1</microprofile-metrics-api.version>
    <geronimo-microprofile.version>1.0.2</geronimo-microprofile.version>
    <opentracing.version>0.31.0</opentracing.version>
    <geronimo-openapi.version>1.0.12</geronimo-openapi.version>
    <geronimo-metrics.version>1.0.3</geronimo-metrics.version>
    <geronimo-opentracing.version>1.0.2</geronimo-opentracing.version>
    <geronimo-config.version>1.2.2</geronimo-config.version>
    <junit5.version>5.9.0</junit5.version>
    <hamcrest.version>1.3</hamcrest.version>
    <jackson.version>2.13.4</jackson.version>
    <jackson-databind.version>2.13.4.2</jackson-databind.version>
    <avro-jackson.version>1.9.13</avro-jackson.version>
    <avro.version>1.8.2</avro.version>
    <jsoup.version>1.14.3</jsoup.version>

    <!-- deprecated after -->
    <talend-icon.version>3.8.0</talend-icon.version>
    <talend-ui.version>5.23.0</talend-ui.version>

    <!-- for the starter -->
    <mvn.version>3.8.6</mvn.version>
    <mvn-minimal.version>3.6.0</mvn-minimal.version>
    <maven-shared-utils.version>3.3.4</maven-shared-utils.version>

    <beam.version>2.36.0</beam.version>
    <!-- should follow beam-sdk-java-core version -->
    <joda.time.version>2.10.10</joda.time.version>

    <spark.version>3.2.0</spark.version>
    <spark-scala.version>2.12</spark-scala.version>

    <gradle.version>6.9.1</gradle.version>
    <groovy.version>3.0.9</groovy.version>
    <gmavenplus.version>1.13.0</gmavenplus.version>
    <dependency-plugin.version>3.3.0</dependency-plugin.version>
    <assembly-plugin.version>3.3.0</assembly-plugin.version>
    <javadoc-plugin.version>3.3.2</javadoc-plugin.version>
    <deploy-plugin.version>3.0.0-M2</deploy-plugin.version>
    <clean-plugin.version>3.1.0</clean-plugin.version>
    <download-plugin.version>1.4.2</download-plugin.version>
    <shade-plugin.version>3.3.0</shade-plugin.version>
    <build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
    <maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
    <maven-compiler-plugin.version>3.10.1</maven-compiler-plugin.version>
    <git-commit-id-plugin.version>4.9.10</git-commit-id-plugin.version>
    <common-plugin.version>1.0.7</common-plugin.version>
    <jgit.version>5.10.0.202012080955-r</jgit.version>
    <clirr-plugin.version>2.8</clirr-plugin.version>
    <surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
    <jacoco.version>0.8.7</jacoco.version>
    <gpg-plugin.version>3.0.1</gpg-plugin.version>
    <nexus-staging-plugin.version>1.6.12</nexus-staging-plugin.version>
    <spotless.version>2.17.3</spotless.version>
    <jib.version>3.3.0</jib.version>
    <jib-core.version>0.22.0</jib-core.version>

    <jruby.version>9.2.19.0</jruby.version>
    <node.version>v16.14.0</node.version>
    <npm.version>8.5.1</npm.version>
    <frontend.version>1.12.1</frontend.version>

    <!-- misc dependencies -->
    <maven-bundle-plugin.version>4.2.1</maven-bundle-plugin.version>
    <bndlib.version>5.1.0</bndlib.version>

    <!-- for manual testing only, not required -->
    <talend.component.server.component.coordinates.samples>org.talend.components:servicenow:0.0.1-SNAPSHOT</talend.component.server.component.coordinates.samples>
    <jaxb.version>2.3.1</jaxb.version>
    <java11.jaxb.version>2.3.5</java11.jaxb.version>
    <!-- minimal code coverage ratio -->
    <coverage.min>0.75</coverage.min>
    <coverage.fail>false</coverage.fail>

    <johnzon.version>1.2.19</johnzon.version>
    <commons-io.version>2.9.0</commons-io.version>
    <commons-compress.version>1.21</commons-compress.version>
    <slf4j.version>1.7.34</slf4j.version>
    <log4j2.version>2.18.0</log4j2.version>
    <rhino.version>1.7.14</rhino.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.talend.sdk.component</groupId>
        <artifactId>component-bom</artifactId>
        <version>${project.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>com.google.cloud.tools</groupId>
        <artifactId>jib-core</artifactId>
        <version>${jib-core.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-annotation_1.3_spec</artifactId>
        <version>${geronimo-annotation.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-json_1.1_spec</artifactId>
        <version>${geronimo-json.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jsonb_1.0_spec</artifactId>
        <version>${geronimo-jsonb.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-activation_1.1_spec</artifactId>
        <version>1.1</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>${java11.jaxb.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.config</groupId>
        <artifactId>geronimo-config-impl</artifactId>
        <version>${geronimo-config.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.microprofile.config</groupId>
        <artifactId>microprofile-config-api</artifactId>
        <version>${microprofile-config-api.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.annotation.versioning</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.talend.sdk.component</groupId>
        <artifactId>component-api</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.beam</groupId>
        <artifactId>beam-sdks-java-core</artifactId>
        <version>${beam.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.antlr</groupId>
            <artifactId>antlr4</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson-databind.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>${commons-logging.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-core</artifactId>
        <version>${mvn.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.enterprise</groupId>
            <artifactId>cdi-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.google.inject</groupId>
            <artifactId>guice</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.maven.shared</groupId>
            <artifactId>maven-shared-utils</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-model</artifactId>
        <version>${mvn.version}</version>
      </dependency>
      <!-- incompatible:  need to wait for a new shrinkwrap version
           <dependency>
             <groupId>org.apache.maven</groupId>
             <artifactId>maven-model-builder</artifactId>
             <version>${mvn.version}</version>
            </dependency>
            -->
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-settings</artifactId>
        <version>${mvn.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-settings-builder</artifactId>
        <version>${mvn.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-repository-metadata</artifactId>
        <version>${mvn.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-resolver-provider</artifactId>
        <version>${mvn.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-artifact</artifactId>
        <version>${mvn.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.shared</groupId>
        <artifactId>maven-shared-utils</artifactId>
        <version>${maven-shared-utils.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-plugin-api</artifactId>
        <version>${mvn.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.enterprise</groupId>
            <artifactId>cdi-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jaspic-api</artifactId>
        <version>${tomcat.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jni</artifactId>
        <version>${tomcat.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-catalina</artifactId>
        <version>${tomcat.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.microprofile.openapi</groupId>
        <artifactId>microprofile-openapi-api</artifactId>
        <version>${microprofile-openapi-api.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.annotation.versioning</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.meecrowave</groupId>
        <artifactId>meecrowave-core</artifactId>
        <version>${meecrowave.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.openwebbeans</groupId>
        <artifactId>openwebbeans-se</artifactId>
        <version>${owb.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.openwebbeans</groupId>
        <artifactId>openwebbeans-spi</artifactId>
        <version>${owb.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.openwebbeans</groupId>
        <artifactId>openwebbeans-web</artifactId>
        <version>${owb.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-features-logging</artifactId>
        <version>${cxf.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-core</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.xml.ws</groupId>
            <artifactId>jaxws-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.sun.activation</groupId>
            <artifactId>javax.activation-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jta_1.1_spec</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.jacorb</groupId>
            <artifactId>jacorb-omgapi</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.jboss.spec.javax.rmi</groupId>
            <artifactId>jboss-rmi-api_1.0_spec</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.sun.xml.messaging.saaj</groupId>
            <artifactId>saaj-impl</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxrs</artifactId>
        <version>${cxf.version}</version>
        <exclusions>
          <exclusion>
            <groupId>jakarta.ws.rs</groupId>
            <artifactId>jakarta.ws.rs-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.xml.ws</groupId>
            <artifactId>jaxws-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.sun.activation</groupId>
            <artifactId>javax.activation</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.sun.xml.messaging.saaj</groupId>
            <artifactId>saaj-impl</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jta_1.1_spec</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.jboss.spec.javax.rmi</groupId>
            <artifactId>jboss-rmi-api_1.0_spec</artifactId>
          </exclusion>
          <exclusion>
            <groupId>jakarta.activation</groupId>
            <artifactId>jakarta.activation-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>jakarta.xml.bind</groupId>
            <artifactId>jakarta.xml.bind-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.ws.rs</groupId>
            <artifactId>javax.ws.rs-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.fasterxml.woodstox</groupId>
            <artifactId>woodstox-core</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.ws.xmlschema</groupId>
            <artifactId>xmlschema-core</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.jacorb</groupId>
            <artifactId>jacorb-omgapi</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-integration-cdi</artifactId>
        <version>${cxf.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jta_1.1_spec</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.jboss.spec.javax.rmi</groupId>
            <artifactId>jboss-rmi-api_1.0_spec</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.sun.activation</groupId>
            <artifactId>javax.activation</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.sun.xml.messaging.saaj</groupId>
            <artifactId>saaj-impl</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.xml.ws</groupId>
            <artifactId>jaxws-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.enterprise</groupId>
            <artifactId>cdi-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>jakarta.ws.rs</groupId>
            <artifactId>jakarta.ws.rs-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>jakarta.activation</groupId>
            <artifactId>jakarta.activation-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>jakarta.xml.bind</groupId>
            <artifactId>jakarta.xml.bind-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.jacorb</groupId>
            <artifactId>jacorb-omgapi</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-rs-client</artifactId>
        <version>${cxf.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jta_1.1_spec</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.jboss.spec.javax.rmi</groupId>
            <artifactId>jboss-rmi-api_1.0_spec</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.jacorb</groupId>
            <artifactId>jacorb-omgapi</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.sun.activation</groupId>
            <artifactId>javax.activation</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.sun.xml.messaging.saaj</groupId>
            <artifactId>saaj-impl</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.xml.ws</groupId>
            <artifactId>jaxws-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>jakarta.ws.rs</groupId>
            <artifactId>jakarta.ws.rs-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>jakarta.activation</groupId>
            <artifactId>jakarta.activation-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>jakarta.xml.bind</groupId>
            <artifactId>jakarta.xml.bind-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.tomee</groupId>
        <artifactId>ziplock</artifactId>
        <version>${ziplock.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.apache.tomee</groupId>
            <artifactId>javaee-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.tomee</groupId>
            <artifactId>openejb-jee</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>biz.aQute.bnd</groupId>
        <artifactId>biz.aQute.bndlib</artifactId>
        <version>${bndlib.version}</version>
      </dependency>

    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.20</version>
      <scope>provided</scope>
    </dependency>

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

  <repositories>
    <repository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>TalendOpenSourceRelease</id>
      <url>https://artifacts-oss.talend.com/nexus/content/repositories/TalendOpenSourceRelease/</url>
    </repository>
    <repository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>gradle-libs-releases-local</id>
      <url>https://repo.gradle.org/gradle/libs-releases-local/</url>
    </repository>
    <repository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>TalendOpenSourceSnapshot</id>
      <url>https://artifacts-oss.talend.com/nexus/content/repositories/TalendOpenSourceSnapshot/</url>
    </repository>
  </repositories>
  <pluginRepositories>
    <pluginRepository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>TalendOpenSourceRelease</id>
      <url>https://artifacts-oss.talend.com/nexus/content/repositories/TalendOpenSourceRelease/</url>
    </pluginRepository>
  </pluginRepositories>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.codehaus.gmavenplus</groupId>
          <artifactId>gmavenplus-plugin</artifactId>
          <version>${gmavenplus.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.codehaus.groovy</groupId>
              <artifactId>groovy-all</artifactId>
              <version>${groovy.version}</version>
              <type>pom</type>
            </dependency>
            <dependency>
              <groupId>javax.xml.bind</groupId>
              <artifactId>jaxb-api</artifactId>
              <version>${jaxb.version}</version>
            </dependency>
            <dependency>
              <groupId>com.sun.xml.bind</groupId>
              <artifactId>jaxb-impl</artifactId>
              <version>${jaxb.version}</version>
              <exclusions>
                <exclusion>
                  <groupId>javax.xml.bind</groupId>
                  <artifactId>jsr173_api</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>javax.xml</groupId>
                  <artifactId>jsr173</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>javax.activation</groupId>
                  <artifactId>activation</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>javax.xml.bind</groupId>
                  <artifactId>activation</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>javax.xml.bind</groupId>
                  <artifactId>jaxb-api</artifactId>
                </exclusion>
              </exclusions>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${javadoc-plugin.version}</version>
          <configuration>
            <source>8</source>
            <jarOutputDirectory>${project.build.directory}/javadoc/binary</jarOutputDirectory>
            <outputDirectory>${project.build.directory}/javadoc/apidocs</outputDirectory>
            <splitindex>true</splitindex>
            <linksource>true</linksource>
            <windowtitle>${project.name}</windowtitle>
            <header>${project.name} - ${project.version}</header>
            <doctitle>${project.name} - ${project.version}</doctitle>
            <bottom>${project.version} - Copyright &amp;copy; 2022 &lt;a href="https://talend.github.io/component-runtime/" target="_top"&gt;Talend Component Kit Documentation&lt;a&gt;</bottom>
            <use>true</use>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.meecrowave</groupId>
          <artifactId>meecrowave-maven-plugin</artifactId>
          <version>${meecrowave.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.johnzon</groupId>
              <artifactId>johnzon-jaxrs</artifactId>
              <version>${johnzon.version}</version>
            </dependency>
            <dependency>
              <groupId>org.apache.johnzon</groupId>
              <artifactId>johnzon-jsonb</artifactId>
              <version>${johnzon.version}</version>
            </dependency>
            <dependency>
              <groupId>org.apache.cxf</groupId>
              <artifactId>cxf-rt-frontend-jaxrs</artifactId>
              <version>${cxf.version}</version>
              <exclusions>
                <exclusion>
                  <groupId>jakarta.ws.rs</groupId>
                  <artifactId>jakarta.ws.rs-api</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>javax.xml.ws</groupId>
                  <artifactId>jaxws-api</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>com.sun.activation</groupId>
                  <artifactId>javax.activation</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>com.sun.xml.messaging.saaj</groupId>
                  <artifactId>saaj-impl</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>org.apache.geronimo.specs</groupId>
                  <artifactId>geronimo-jta_1.1_spec</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>org.jboss.spec.javax.rmi</groupId>
                  <artifactId>jboss-rmi-api_1.0_spec</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>jakarta.activation</groupId>
                  <artifactId>jakarta.activation-api</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>jakarta.xml.bind</groupId>
                  <artifactId>jakarta.xml.bind-api</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>javax.ws.rs</groupId>
                  <artifactId>javax.ws.rs-api</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>javax.annotation</groupId>
                  <artifactId>javax.annotation-api</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>com.fasterxml.woodstox</groupId>
                  <artifactId>woodstox-core</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>org.apache.ws.xmlschema</groupId>
                  <artifactId>xmlschema-core</artifactId>
                </exclusion>
              </exclusions>
            </dependency>
            <dependency>
              <groupId>org.apache.cxf</groupId>
              <artifactId>cxf-integration-cdi</artifactId>
              <version>${cxf.version}</version>
              <exclusions>
                <exclusion>
                  <groupId>com.sun.activation</groupId>
                  <artifactId>javax.activation</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>com.sun.xml.messaging.saaj</groupId>
                  <artifactId>saaj-impl</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>javax.annotation</groupId>
                  <artifactId>javax.annotation-api</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>javax.enterprise</groupId>
                  <artifactId>cdi-api</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>javax.xml.ws</groupId>
                  <artifactId>jaxws-api</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>jakarta.ws.rs</groupId>
                  <artifactId>jakarta.ws.rs-api</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>jakarta.activation</groupId>
                  <artifactId>jakarta.activation-api</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>jakarta.xml.bind</groupId>
                  <artifactId>jakarta.xml.bind-api</artifactId>
                </exclusion>
              </exclusions>
            </dependency>
            <dependency>
              <groupId>org.apache.cxf</groupId>
              <artifactId>cxf-rt-rs-client</artifactId>
              <version>${cxf.version}</version>
              <exclusions>
                <exclusion>
                  <groupId>com.sun.activation</groupId>
                  <artifactId>javax.activation</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>com.sun.xml.messaging.saaj</groupId>
                  <artifactId>saaj-impl</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>javax.xml.ws</groupId>
                  <artifactId>jaxws-api</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>javax.annotation</groupId>
                  <artifactId>javax.annotation-api</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>jakarta.ws.rs</groupId>
                  <artifactId>jakarta.ws.rs-api</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>jakarta.activation</groupId>
                  <artifactId>jakarta.activation-api</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>jakarta.xml.bind</groupId>
                  <artifactId>jakarta.xml.bind-api</artifactId>
                </exclusion>
              </exclusions>
            </dependency>
            <dependency>
              <groupId>org.apache.logging.log4j</groupId>
              <artifactId>log4j-api</artifactId>
              <version>${log4j2.version}</version>
            </dependency>
            <dependency>
              <groupId>org.apache.logging.log4j</groupId>
              <artifactId>log4j-core</artifactId>
              <version>${log4j2.version}</version>
            </dependency>
            <dependency>
              <groupId>org.apache.logging.log4j</groupId>
              <artifactId>log4j-jul</artifactId>
              <version>${log4j2.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>3.0.0</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.ant</groupId>
              <artifactId>ant</artifactId>
              <version>1.10.11</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven-compiler-plugin.version}</version>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <forceJavacCompilerUse>true</forceJavacCompilerUse>
            <compilerId>javac</compilerId>
            <fork>true</fork>
            <compilerArgs>
              <arg>-parameters</arg>
            </compilerArgs>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${maven-resources-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>${clean-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>3.2.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>3.0.0-M1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>3.0.0-M2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.11.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>3.0.0-M5</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${surefire-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>${dependency-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${assembly-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-invoker-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>${shade-plugin.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>tidy-maven-plugin</artifactId>
        <version>1.1.0</version>
        <executions>
          <execution>
            <id>tidy-pom</id>
            <goals>
              <goal>pom</goal>
            </goals>
            <phase>initialize</phase>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <!--  mvn ossindex:audit -->
        <groupId>org.sonatype.ossindex.maven</groupId>
        <artifactId>ossindex-maven-plugin</artifactId>
        <version>3.1.0</version>
        <configuration>
          <scope>compile,runtime</scope>
        </configuration>
        <executions>
          <execution>
            <id>audit-dependencies</id>
            <goals>
              <goal>audit</goal>
            </goals>
            <phase/>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>com.github.rmannibucau</groupId>
        <artifactId>common-maven-plugin</artifactId>
        <version>${common-plugin.version}</version>
        <executions>
          <execution>
            <id>set-rootlocation</id>
            <goals>
              <goal>rootlocation</goal>
            </goals>
          </execution>
          <execution>
            <id>frontend-filter</id>
            <goals>
              <goal>frontend-filter</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>com.diffplug.spotless</groupId>
        <artifactId>spotless-maven-plugin</artifactId>
        <version>${spotless.version}</version>
        <configuration>
          <java>
            <licenseHeader>
              <content><![CDATA[/**
 * Copyright (C) 2006-2022 Talend Inc. - www.talend.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */]]></content>
            </licenseHeader>
            <eclipse>
              <file>talend_java_eclipse_formatter.xml</file>
            </eclipse>
          </java>
          <pom>
            <sortPom>
              <expandEmptyElements>false</expandEmptyElements>
            </sortPom>
          </pom>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.talend.tools</groupId>
            <artifactId>java-formatter</artifactId>
            <version>0.2.2</version>
          </dependency>
        </dependencies>
        <executions>
          <execution>
            <id>apply</id>
            <goals>
              <goal>apply</goal>
            </goals>
            <phase>process-classes</phase>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <version>0.14</version>
        <configuration>
          <consoleOutput>true</consoleOutput>
          <reportFile>${project.build.directory}/${project.build.finalName}.rat</reportFile>
          <excludes>
            <exclude>.github/workflows/*</exclude>
            <exclude>.build/**/*</exclude>
            <exclude>.build_source/**/*</exclude>
            <exclude>srcclr.yml</exclude>
            <exclude>.sourceclear/**</exclude>
            <exclude>travis_wait*log</exclude>
            <exclude>**/target/**/*</exclude>
            <exclude>**/.cache/**/*</exclude>
            <exclude>**/.vscode/**/*</exclude>
            <exclude>cobertura.ser</exclude>
            <exclude>.classpath</exclude>
            <exclude>.settings/**/*</exclude>
            <exclude>.project</exclude>
            <exclude>**/.idea/**/*</exclude>
            <exclude>.blackduck/**/*</exclude>
            <exclude>**/*.iml</exclude>
            <exclude>**/*.ipr</exclude>
            <exclude>**/*.iws</exclude>
            <exclude>**/.*</exclude>
            <exclude>**/.*/*</exclude>
            <exclude>**/*.json</exclude>
            <exclude>**/*.html</exclude>
            <exclude>**/*.adoc</exclude>
            <exclude>**/*.md</exclude>
            <exclude>**/node_modules/**/*</exclude>
            <exclude>**/bower_components/**/*</exclude>
            <exclude>**/.node/**/*</exclude>
            <exclude>**/*.map</exclude>
            <exclude>**/frontend/config/**/*</exclude>
            <exclude>**/frontend/scripts/**/*</exclude>
            <exclude>**/frontend/build/**/*</exclude>
            <exclude>**/frontend/dist/**/*</exclude>
            <exclude>**/yarn.lock</exclude>
            <exclude>**/.p2localrepository/**/*</exclude>
            <exclude>**/META-INF/services/**/*</exclude>
            <exclude>**/test/input/**/*</exclude>
            <exclude>**/test/output/**/*</exclude>
            <exclude>**/reveal.js/**/*</exclude>
            <exclude>**/talend-component-maven-plugin/src/it/generator/**/*</exclude>
            <exclude>**/src/main/resources/generator/**/*</exclude>
            <exclude>**/src/test/resources/generated/**/*</exclude>
            <exclude>**/.config/**/*</exclude>
            <exclude>**/antora/**/*</exclude>
            <exclude>**/.antora-cache/**/*</exclude>
            <exclude>**/dependency-reduced-pom.xml</exclude>
            <exclude>**/*.svg</exclude>
            <exclude>**/*.png</exclude>
            <exclude>**/component-tools/src/test/resources/DitaDocumentationGeneratorTest/*.dita</exclude>
            <exclude>**/src/main/resources/WebsiteBuilderMojo/*.mustache</exclude>
            <exclude>**/src/test/resources/DitaDocumentationGeneratorTest/**</exclude>
          </excludes>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>check</goal>
            </goals>
            <phase>verify</phase>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <systemPropertyVariables>
            <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
          </systemPropertyVariables>
          <!-- <forkCount>1</forkCount> -->
          <!-- never use 0, it affects too much test behavior to be accurate -->
          <trimStackTrace>false</trimStackTrace>
          <argLine>${argLine} ${extraJvmFlags}</argLine>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>${surefire-plugin.version}</version>
        <configuration>
          <forkCount>1</forkCount>
          <trimStackTrace>false</trimStackTrace>
          <argLine>${argLine} ${extraJvmFlags}</argLine>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>${maven-bundle-plugin.version}</version>
        <extensions>true</extensions>
        <dependencies>
          <dependency>
            <groupId>biz.aQute.bnd</groupId>
            <artifactId>biz.aQute.bndlib</artifactId>
            <version>${bndlib.version}</version>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>3.1.2</version>
        <configuration>
          <logViolationsToConsole>true</logViolationsToConsole>
          <excludes>**/HelpMojo*,**/maven/legacy/model/**</excludes>
          <checkstyleRules>
            <module name="Checker">
              <module name="FileLength">
                <property name="max" value="3500"/>
                <property name="fileExtensions" value="java"/>
              </module>
              <module name="FileTabCharacter"/>
              <module name="LineLength">
                <property name="max" value="180"/>
                <property name="ignorePattern" value="@version|@see"/>
              </module>
              <module name="TreeWalker">
                <module name="SuppressionCommentFilter"/>
                <module name="FinalParameters"/>
                <module name="ConstantName">
                  <property name="format" value="^_?((log)|(logger)|([a-z][a-zA-Z]*ThreadLocal)|([A-Z][A-Z0-9]*(_[A-Z0-9]+)*))$"/>
                </module>
                <module name="LocalVariableName"/>
                <module name="MethodName">
                  <property name="format" value="^_?[a-z][a-zA-Z0-9]*$"/>
                </module>
                <module name="PackageName"/>
                <module name="LocalFinalVariableName"/>
                <module name="ParameterName"/>
                <module name="StaticVariableName"/>
                <module name="TypeName">
                  <property name="format" value="^_?[A-Z][a-zA-Z0-9]*$"/>
                </module>
                <module name="AvoidStarImport">
                  <property name="excludes" value="java.io,java.net,java.util,javax.enterprise.inject.spi,javax.enterprise.context"/>
                </module>
                <module name="IllegalImport"/>
                <module name="RedundantImport"/>
                <module name="UnusedImports"/>
                <module name="MethodLength">
                  <property name="max" value="250"/>
                </module>
                <module name="ParameterNumber">
                  <property name="max" value="10"/>
                </module>
                <module name="EmptyBlock">
                  <property name="option" value="text"/>
                </module>
                <module name="NeedBraces"/>
                <module name="LeftCurly">
                  <property name="option" value="EOL"/>
                </module>
                <module name="RightCurly">
                  <property name="option" value="SAME"/>
                </module>
                <module name="EmptyStatement"/>
                <module name="EqualsHashCode"/>
                <module name="DefaultComesLast"/>
                <module name="MissingSwitchDefault"/>
                <module name="FallThrough"/>
                <module name="MultipleVariableDeclarations"/>
                <module name="com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck">
                  <property name="severity" value="ignore"/>
                </module>
                <!-- using lombok this constraint is not accurate
                <module name="HideUtilityClassConstructor" />
                -->
                <module name="com.puppycrawl.tools.checkstyle.checks.design.VisibilityModifierCheck">
                  <property name="packageAllowed" value="false"/>
                  <property name="protectedAllowed" value="true"/>
                  <property name="publicMemberPattern" value="^serialVersionUID"/>
                  <property name="severity" value="warning"/>
                </module>
                <module name="UpperEll"/>
                <module name="ImportOrder">
                  <property name="groups" value="*,java,javafx,javax,jdk,com,crawlercommons,org,orgomg,brave,com.jcraft,freemarker,io,zipkin2,lombok"/>
                  <property name="ordered" value="true"/>
                  <property name="separated" value="true"/>
                  <property name="option" value="top"/>
                  <property name="sortStaticImportsAlphabetically" value="true"/>
                </module>
              </module>
            </module>
          </checkstyleRules>
        </configuration>
        <executions>
          <execution>
            <id>verify-style</id>
            <goals>
              <goal>check</goal>
            </goals>
            <phase>process-classes</phase>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>${jacoco.version}</version>
        <executions>
          <execution>
            <id>prepare-agent</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
            <configuration>
              <append>true</append>
            </configuration>
          </execution>
          <execution>
            <id>post-unit-test</id>
            <goals>
              <goal>report</goal>
            </goals>
            <phase>test</phase>
            <configuration>
              <dataFile>${project.build.directory}/jacoco.exec</dataFile>
              <outputDirectory>${project.build.directory}/jacoco-ut</outputDirectory>
            </configuration>
          </execution>
          <execution>
            <id>prepare-agent-it</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
            <phase>pre-integration-test</phase>
            <configuration>
              <propertyName>invoker.mavenOpts</propertyName>
              <append>true</append>
            </configuration>
          </execution>
          <execution>
            <id>post-integration-test</id>
            <goals>
              <goal>report</goal>
            </goals>
            <phase>post-integration-test</phase>
            <configuration>
              <dataFile>${project.build.directory}/jacoco-it.exec</dataFile>
              <outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory>
            </configuration>
          </execution>
          <execution>
            <id>coverage-check</id>
            <goals>
              <goal>check</goal>
            </goals>
            <configuration>
              <haltOnFailure>${coverage.fail}</haltOnFailure>
              <rules>
                <rule>
                  <element>BUNDLE</element>
                  <limits>
                    <limit>
                      <counter>LINE</counter>
                      <value>COVEREDRATIO</value>
                      <minimum>${coverage.min}</minimum>
                    </limit>
                  </limits>
                </rule>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <version>2.5.3</version>
        <configuration>
          <autoVersionSubmodules>true</autoVersionSubmodules>
          <localCheckout>true</localCheckout>
          <pushChanges>false</pushChanges>
          <releaseProfiles>release</releaseProfiles>
          <goals>deploy</goals>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>templating-maven-plugin</artifactId>
        <version>1.0.0</version>
        <executions>
          <execution>
            <id>filter-src</id>
            <goals>
              <goal>filter-sources</goal>
            </goals>
            <configuration>
              <sourceDirectory>${project.basedir}/src/main/java-templates</sourceDirectory>
              <outputDirectory>${project.build.directory}/generated-sources/java-templates</outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>pl.project13.maven</groupId>
        <artifactId>git-commit-id-plugin</artifactId>
        <version>${git-commit-id-plugin.version}</version>
        <configuration>
          <generateGitPropertiesFile>false</generateGitPropertiesFile>
        </configuration>
        <executions>
          <execution>
            <id>get-the-git-infos-in-m2-properties</id>
            <goals>
              <goal>revision</goal>
            </goals>
            <phase>process-classes</phase>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.1.2</version>
        <configuration>
          <archive combine.children="append">
            <manifestEntries>
              <Talend-Build-Timestamp>${maven.build.timestamp}</Talend-Build-Timestamp>
              <Talend-Git-Sha>${git.commit.id}</Talend-Git-Sha>
              <Talend-Git-Branch>${git.branch}</Talend-Git-Branch>
              <Automatic-Module-Name>${talend.build.name}</Automatic-Module-Name>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.7.1</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <id>enforce-maven-3</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>${mvn-minimal.version}</version>
                </requireMavenVersion>
              </rules>
              <fail>true</fail>
            </configuration>
          </execution>
          <execution>
            <id>enforce-banned-joda-time-dependency</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <excludes>
                    <exclude>joda-time:joda-time</exclude>
                  </excludes>
                </bannedDependencies>
              </rules>
              <fail>true</fail>
            </configuration>
          </execution>
          <execution>
            <id>mandatory-checks-on-project</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <banDistributionManagement/>
                <banDuplicatePomDependencyVersions/>
              </rules>
              <fail>true</fail>
            </configuration>
          </execution>
          <execution>
            <id>warning-checks-on-project</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <dependencyConvergence/>
              </rules>
              <fail>false</fail>
            </configuration>
          </execution>
          <execution>
            <id>ban-log4j-dependency</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <excludes>
                    <exclude>log4j:log4j</exclude>
                  </excludes>
                </bannedDependencies>
              </rules>
              <fail>true</fail>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>travis</id>
      <properties>
        <org.slf4j.simpleLogger.showThreadName>true</org.slf4j.simpleLogger.showThreadName>
        <org.slf4j.simpleLogger.showDateTime>true</org.slf4j.simpleLogger.showDateTime>
        <org.slf4j.simpleLogger.dateTimeFormat>HH:mm:ss</org.slf4j.simpleLogger.dateTimeFormat>
      </properties>
    </profile>
    <profile>
      <id>gpg2</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>${gpg-plugin.version}</version>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
            <version>${nexus-staging-plugin.version}</version>
            <extensions>true</extensions>
            <configuration>
              <serverId>ossrh</serverId>
              <nexusUrl>https://oss.sonatype.org/</nexusUrl>
              <autoReleaseAfterClose>true</autoReleaseAfterClose>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.0.1</version>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>${javadoc-plugin.version}</version>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>${gpg-plugin.version}</version>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <goals>
                  <goal>sign</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>no-staging</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
            <version>${nexus-staging-plugin.version}</version>
            <configuration>
              <skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>java8</id>
      <activation>
        <jdk>1.8</jdk>
      </activation>
      <properties>
        <extraJvmFlags/>
      </properties>
    </profile>
    <profile>
      <id>java9</id>
      <activation>
        <jdk>[1.9,)</jdk>
      </activation>
      <properties>
        <extraJvmFlags>--add-modules=ALL-SYSTEM
          --add-opens java.base/java.io=ALL-UNNAMED
          --add-opens java.base/java.lang.invoke=ALL-UNNAMED
          --add-opens java.base/java.lang.reflect=ALL-UNNAMED
          --add-opens java.base/java.lang=ALL-UNNAMED
          --add-opens java.base/java.net=ALL-UNNAMED
          --add-opens java.base/java.nio=ALL-UNNAMED
          --add-opens java.base/java.util=ALL-UNNAMED
          --add-opens java.base/java.util.concurrent=ALL-UNNAMED
          --add-opens java.base/sun.nio.ch=ALL-UNNAMED
          --add-opens java.base/sun.nio.cs=ALL-UNNAMED
          --add-opens java.base/sun.security.action=ALL-UNNAMED
          --add-opens java.base/sun.security.x509=ALL-UNNAMED
          --add-opens java.base/sun.util.calendar=ALL-UNNAMED</extraJvmFlags>
      </properties>
    </profile>
  </profiles>
</project>
