<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (C) 2006-2026 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 https://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.89.1</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>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>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>singer-parent</module>
    <module>remote-engine-customizer</module>
    <module>reporting</module>
  </modules>

  <scm>
    <!-- scm.repository can be overwritten if you are running from a project fork-->
    <connection>scm:git:git://github.com/${scm.repository}.git</connection>
    <developerConnection>scm:git:git@github.com:${scm.repository}.git</developerConnection>
    <tag>component-runtime-1.89.1</tag>
    <url>https://github.com/${scm.repository}</url>
  </scm>
  <distributionManagement>
    <!-- looks like release and snapshot plugins are handled by sonatype plugin from the box -->
    <snapshotRepository>
      <id>central.portal</id>
      <name>Central Portal Snapshots</name>
      <url>https://central.sonatype.com/repository/maven-snapshots</url>
    </snapshotRepository>
  </distributionManagement>

  <properties>
    <scm.repository>talend/component-runtime</scm.repository>

    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    <maven.compiler.release>17</maven.compiler.release>
    <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.29</xbean.version>
    <!-- do not update without updating test-->
    <xbean.test.version>4.9</xbean.test.version>
    <xerces.version>2.12.2</xerces.version>

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

    <!-- do not update without updating test-->
    <ziplock.test.version>8.0.14</ziplock.test.version>
    <meecrowave.version>1.2.15</meecrowave.version>
    <owb.version>2.0.27</owb.version>
    <tomcat.version>9.0.113</tomcat.version>
    <cxf.version>3.5.11</cxf.version>

    <woodstox.version>6.5.0</woodstox.version>

    <logback.version>1.5.19</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.17</batik.version>
    <commons-cli.version>1.4</commons-cli.version>
    <commons-codec.version>1.19.0</commons-codec.version>
    <commons-compress.version>1.28.0</commons-compress.version>
    <commons-io.version>2.20.0</commons-io.version>
    <commons-lang3.version>3.18.0</commons-lang3.version>
    <commons-logging.version>1.2</commons-logging.version>
    <commons-text.version>1.14.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-metrics-api.version>1.1.1</microprofile-metrics-api.version>
    <geronimo-microprofile.version>1.0.2</geronimo-microprofile.version>
    <geronimo-openapi.version>1.0.12</geronimo-openapi.version>
    <geronimo-metrics.version>1.0.3</geronimo-metrics.version>
    <geronimo-config.version>1.2.2</geronimo-config.version>
    <junit5.version>5.10.0</junit5.version>
    <mockito4.version>4.8.1</mockito4.version>
    <hamcrest.version>1.3</hamcrest.version>
    <jackson.version>2.16.0</jackson.version>
    <jackson-databind.version>2.16.0</jackson-databind.version>
    <avro-jackson.version>1.9.13</avro-jackson.version>
    <avro.version>1.11.4</avro.version>
    <jsoup.version>1.15.3</jsoup.version>
    <dom4j.version>2.1.4</dom4j.version>

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

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

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

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

    <groovy.version>3.0.18</groovy.version>

    <!-- plugins versions -->
    <apache-rat-plugin.version>0.16.1</apache-rat-plugin.version>
    <build-helper-maven-plugin.version>3.6.0</build-helper-maven-plugin.version>

    <central-publishing-maven-plugin.version>0.8.0</central-publishing-maven-plugin.version>
    <clirr-plugin.version>2.8</clirr-plugin.version>
    <common-maven-plugin.version>1.0.7</common-maven-plugin.version>
    <download-plugin.version>2.0.0</download-plugin.version>
    <git-commit-id-maven-plugin.version>9.0.2</git-commit-id-maven-plugin.version>
    <gmavenplus-plugin.version>1.13.1</gmavenplus-plugin.version>
    <gpg-plugin.version>3.2.7</gpg-plugin.version>
    <jacoco-maven-plugin.version>0.8.13</jacoco-maven-plugin.version>
    <spotless-maven-plugin.version>2.46.1</spotless-maven-plugin.version>
    <jib-maven-plugin.version>3.4.5</jib-maven-plugin.version>
    <jib-core.version>0.24.0</jib-core.version>
    <jib-maven-plugin.version>3.4.5</jib-maven-plugin.version>
    <maven-antrun-plugin.version>3.1.0</maven-antrun-plugin.version>
    <maven-assembly-plugin.version>3.7.1</maven-assembly-plugin.version>
    <maven-checkstyle-plugin.version>3.2.1</maven-checkstyle-plugin.version>
    <maven-clean-plugin.version>3.4.1</maven-clean-plugin.version>
    <maven-compiler-plugin.version>3.14.0</maven-compiler-plugin.version>
    <maven-dependency-plugin.version>3.8.1</maven-dependency-plugin.version>
    <maven-deploy-plugin.version>3.1.4</maven-deploy-plugin.version>
    <maven-enforcer-plugin.version>3.5.0</maven-enforcer-plugin.version>
    <maven-install-plugin.version>3.1.4</maven-install-plugin.version>
    <maven-invoker-plugin.version>3.9.0</maven-invoker-plugin.version>
    <maven-jar-plugin.version>3.4.2</maven-jar-plugin.version>
    <maven-javadoc-plugin.version>3.11.3</maven-javadoc-plugin.version>
    <maven-release-plugin.version>3.1.1</maven-release-plugin.version>
    <maven-resources-plugin.version>3.3.1</maven-resources-plugin.version>
    <maven-shade-plugin.version>3.3.0</maven-shade-plugin.version>
    <maven-site-plugin.version>3.21.0</maven-site-plugin.version>
    <maven-source-plugin.version>3.3.1</maven-source-plugin.version>
    <maven-surefire-plugin.version>3.5.3</maven-surefire-plugin.version>
    <ossindex-maven-plugin.version>3.2.0</ossindex-maven-plugin.version>


    <jgit.version>6.7.0.202309050840-r</jgit.version>
    <jruby.version>9.2.19.0</jruby.version>
    <node.version>v20.12.0</node.version>
    <npm.version>10.5.0</npm.version>
    <frontend-maven-plugin.version>1.15.1</frontend-maven-plugin.version>

    <!-- misc dependencies -->
    <maven-bundle-plugin.version>4.2.1</maven-bundle-plugin.version>
    <bndlib.version>5.3.0</bndlib.version>
    <ant.version>1.10.12</ant.version>
    <jcommander.version>1.82</jcommander.version>
    <snakeyaml.version>2.0</snakeyaml.version>
    <google-oauth-client.version>1.34.1</google-oauth-client.version>
    <nekohtml.version>1.9.6.2</nekohtml.version>
    <gson.version>2.9.1</gson.version>
    <ivy.version>2.5.2</ivy.version>
    <aws-java-sdk-s3.version>1.12.285</aws-java-sdk-s3.version>
    <testng.version>7.7.1</testng.version>
    <jakarta.version>4.0.2</jakarta.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>
    <!-- minimal code coverage ratio -->
    <coverage.min>0.75</coverage.min>
    <coverage.fail>false</coverage.fail>

    <johnzon.version>1.2.21</johnzon.version>
    <slf4j.version>1.7.34</slf4j.version>
    <log4j2.version>2.25.3</log4j2.version>
    <rhino.version>1.9.0</rhino.version>
    <tomitribe-crest.version>0.32</tomitribe-crest.version>
    <httpclient.version>4.5.14</httpclient.version>
    <guava.version>33.4.8-jre</guava.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.google.cloud.tools</groupId>
        <artifactId>jib-core</artifactId>
        <version>${jib-core.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.johnzon</groupId>
        <artifactId>johnzon-jsonb</artifactId>
        <version>${johnzon.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.johnzon</groupId>
        <artifactId>johnzon-core</artifactId>
        <version>${johnzon.version}</version>
      </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>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-jdk14</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>${commons-codec.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${commons-lang3.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>${jakarta.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>
          <exclusion>
            <groupId>org.apache.avro</groupId>
            <artifactId>avro</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.xerial.snappy</groupId>
        <artifactId>snappy-java</artifactId>
        <version>${snappy.version}</version>
      </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>org.apache.avro</groupId>
        <artifactId>avro</artifactId>
        <version>${avro.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>${commons-logging.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-compress</artifactId>
        <version>${commons-compress.version}</version>
      </dependency>
      <dependency>
        <groupId>org.yaml</groupId>
        <artifactId>snakeyaml</artifactId>
        <version>${snakeyaml.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.oauth-client</groupId>
        <artifactId>google-oauth-client</artifactId>
        <version>${google-oauth-client.version}</version>
      </dependency>
      <dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <version>${xerces.version}</version>
      </dependency>
      <dependency>
        <groupId>nekohtml</groupId>
        <artifactId>nekohtml</artifactId>
        <version>${nekohtml.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mozilla</groupId>
        <artifactId>rhino</artifactId>
        <version>${rhino.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>${gson.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.ivy</groupId>
        <artifactId>ivy</artifactId>
        <version>${ivy.version}</version>
      </dependency>
      <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-s3</artifactId>
        <version>${aws-java-sdk-s3.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${commons-io.version}</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.ant</groupId>
        <artifactId>ant</artifactId>
        <version>${ant.version}</version>
      </dependency>
      <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>${testng.version}</version>
      </dependency>
      <dependency>
        <groupId>com.beust</groupId>
        <artifactId>jcommander</artifactId>
        <version>${jcommander.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>
      <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>
      </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>com.fasterxml.woodstox</groupId>
        <artifactId>woodstox-core</artifactId>
        <version>${woodstox.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>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>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>
        </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>
      <dependency>
        <groupId>org.tomitribe</groupId>
        <artifactId>tomitribe-crest</artifactId>
        <version>${tomitribe-crest.version}</version>
      </dependency>
      <!-- Test dependencies -->
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-junit-jupiter</artifactId>
        <version>${mockito4.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>${httpclient.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.30</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>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>central.portal</id>
      <name>Central Portal Snapshots</name>
      <url>https://central.sonatype.com/repository/maven-snapshots/</url>
    </repository>
    <repository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <id>oss.releases</id>
      <url>https://oss.sonatype.org/content/repositories/releases</url>
    </repository>
    <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>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>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>central.portal</id>
      <name>Central Portal Snapshots</name>
      <url>https://central.sonatype.com/repository/maven-snapshots/</url>
    </pluginRepository>
    <pluginRepository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <id>oss.releases</id>
      <url>https://oss.sonatype.org/content/repositories/releases</url>
    </pluginRepository>
    <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>
    <pluginRepository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>Cloudera.pub</id>
      <url>https://repository.cloudera.com/content/repositories/public</url>
    </pluginRepository>
  </pluginRepositories>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.codehaus.gmavenplus</groupId>
          <artifactId>gmavenplus-plugin</artifactId>
          <version>${gmavenplus-plugin.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.codehaus.groovy</groupId>
              <artifactId>groovy-all</artifactId>
              <version>${groovy.version}</version>
              <type>pom</type>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${maven-javadoc-plugin.version}</version>
          <configuration>
            <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>
              <![CDATA[${project.version} - Copyright &amp;copy; 2025 <a href="https://talend.github.io/component-runtime/" target="_top">Talend Component Kit Documentation</a>]]>
            </bottom>
            <use>true</use>
            <legacyMode>true</legacyMode>
            <doclint>none</doclint>
          </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>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>
              </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>
              </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>${maven-antrun-plugin.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.ant</groupId>
              <artifactId>ant</artifactId>
              <version>${ant.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven-compiler-plugin.version}</version>
          <configuration>
            <forceLegacyJavacApi>true</forceLegacyJavacApi>
            <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>${maven-clean-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>${maven-source-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${maven-jar-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>${maven-install-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>${maven-deploy-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>${maven-site-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>${maven-release-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven-surefire-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>${maven-dependency-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${maven-assembly-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-invoker-plugin</artifactId>
          <version>${maven-invoker-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>${maven-shade-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven</groupId>
          <artifactId>maven-compat</artifactId>
          <version>${mvn.version}</version>
        </plugin>
        <plugin>
          <groupId>com.google.cloud.tools</groupId>
          <artifactId>jib-maven-plugin</artifactId>
          <version>${jib-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <!--  mvn ossindex:audit -->
          <groupId>org.sonatype.ossindex.maven</groupId>
          <artifactId>ossindex-maven-plugin</artifactId>
          <version>${ossindex-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>com.diffplug.spotless</groupId>
          <artifactId>spotless-maven-plugin</artifactId>
          <version>${spotless-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>${apache-rat-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>${maven-surefire-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${maven-checkstyle-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>${jacoco-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>templating-maven-plugin</artifactId>
          <version>1.0.0</version>
        </plugin>
        <plugin>
          <groupId>io.github.git-commit-id</groupId>
          <artifactId>git-commit-id-maven-plugin</artifactId>
          <version>${git-commit-id-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${maven-enforcer-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>${gpg-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.sonatype.central</groupId>
          <artifactId>central-publishing-maven-plugin</artifactId>
          <version>${central-publishing-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>com.github.eirslett</groupId>
          <artifactId>frontend-maven-plugin</artifactId>
          <version>${frontend-maven-plugin.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <!--  mvn ossindex:audit -->
        <groupId>org.sonatype.ossindex.maven</groupId>
        <artifactId>ossindex-maven-plugin</artifactId>
        <configuration>
          <scope>compile,runtime</scope>
        </configuration>
        <executions>
          <execution>
            <id>audit-dependencies</id>
            <goals>
              <goal>audit</goal>
            </goals>
            <phase />
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>com.diffplug.spotless</groupId>
        <artifactId>spotless-maven-plugin</artifactId>
        <configuration>
          <java>
            <licenseHeader>
              <content><![CDATA[/**
 * Copyright (C) 2006-2026 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>${maven.multiModuleProjectDirectory}/build/talend_java_eclipse_formatter.xml</file>
            </eclipse>
            <importOrder>
              <file>${maven.multiModuleProjectDirectory}/build/talend.importorder</file>
            </importOrder>
            <removeUnusedImports />
          </java>
        </configuration>
        <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>
        <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>**/*.csv</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>
            <exclude>**/talend-component-kit-intellij-plugin/gradle/wrapper/gradle-wrapper.properties</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>
        <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>
        <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,jakarta,jdk,com,crawlercommons,org,orgomg,brave,com.jcraft,freemarker,io,zipkin2,routines,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>
        <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>
        <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>
        <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>io.github.git-commit-id</groupId>
        <artifactId>git-commit-id-maven-plugin</artifactId>
        <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>
        <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>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <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>private_repository</id>
      <!--
        This profile is used by the CI or for development branch deployment.
        Its overwrite the snapshotRepository with a private one.
      -->
      <distributionManagement>
        <snapshotRepository>
          <id>talend.snapshots</id>
          <url>https://artifacts-zl.talend.com/nexus/content/repositories/snapshots</url>
        </snapshotRepository>
      </distributionManagement>
    </profile>
    <profile>
      <id>gpg2</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.sonatype.central</groupId>
            <artifactId>central-publishing-maven-plugin</artifactId>
            <extensions>true</extensions>
            <configuration>
              <publishingServerId>central.portal</publishingServerId>
              <centralBaseUrl>https://central.sonatype.com</centralBaseUrl>
              <failOnBuildFailure>true</failOnBuildFailure>
              <!--                                                              -->
              <!-- If "skipPublishing" worked per-artifact, we could use it.    -->
              <!-- <skipPublishing>${artifact.deploy.disabled}</skipPublishing> -->
              <!--                                                              -->
              <!-- The entire "excludeArtifacts" configuration below could be   -->
              <!-- removed if the behavior of "skipPublishing" changes in a     -->
              <!-- future version of the plugin.                                -->
              <excludeArtifacts>
                <artifact>component-studio</artifact>
                <artifact>component-runtime-di</artifact>
              </excludeArtifacts>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <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>
            <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>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <goals>
                  <goal>sign</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>snapshot</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.sonatype.central</groupId>
            <artifactId>central-publishing-maven-plugin</artifactId>
            <extensions>true</extensions>
            <configuration>
              <publishingServerId>central.portal</publishingServerId>
              <centralBaseUrl>https://central.sonatype.com</centralBaseUrl>
              <failOnBuildFailure>true</failOnBuildFailure>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <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>
            <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>
            <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.central</groupId>
            <artifactId>central-publishing-maven-plugin</artifactId>
            <extensions>true</extensions>
            <configuration>
              <skipPublishing>true</skipPublishing>
            </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>
