<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>
    <groupId>io.strimzi</groupId>
    <artifactId>strimzi</artifactId>
    <packaging>pom</packaging>
    <version>0.44.0</version>

    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>

    <name>Strimzi - Apache Kafka on Kubernetes and OpenShift</name>
    <description>Strimzi uses the Kubernetes operator pattern to provide a way to run an Apache Kafka cluster on
        Kubernetes or OpenShift in various deployment configurations. </description>
    <url>https://strimzi.io/</url>

    <scm>
        <connection>scm:git:git://github.com/strimzi/strimzi-kafka-operator.git</connection>
        <developerConnection>scm:git:ssh://github.com:strimzi/strimzi-kafka-operator.git</developerConnection>
        <url>https://github.com/strimzi/strimzi-kafka-operator</url>
    </scm>

    <issueManagement>
        <system>GitHub</system>
        <url>https://github.com/strimzi/strimzi-kafka-operator/issues</url>
    </issueManagement>

    <developers>
        <developer>
            <name>Tom Bentley</name>
            <email>tbentley@redhat.com</email>
            <organization>Red Hat</organization>
            <organizationUrl>https://www.redhat.com</organizationUrl>
        </developer>
        <developer>
            <name>Paolo Patierno</name>
            <email>ppatierno@live.com</email>
            <organization>Red Hat</organization>
            <organizationUrl>https://www.redhat.com</organizationUrl>
        </developer>
        <developer>
            <name>Jakub Scholz</name>
            <email>github@scholzj.com</email>
            <organization>Red Hat</organization>
            <organizationUrl>https://www.redhat.com</organizationUrl>
        </developer>
        <developer>
            <name>Sam Hawker</name>
            <email>sam.b.hawker@gmail.com</email>
            <organization>IBM</organization>
            <organizationUrl>https://www.ibm.com</organizationUrl>
        </developer>
        <developer>
            <name>Jakub Stejskal</name>
            <email>xstejs24@gmail.com</email>
            <organization>Red Hat</organization>
            <organizationUrl>https://www.redhat.com</organizationUrl>
        </developer>
        <developer>
            <name>Stanislav Knot</name>
            <email>knot@cngroup.dk</email>
            <organization>CN Group</organization>
            <organizationUrl>https://www.cngroup.dk/</organizationUrl>
        </developer>
        <developer>
            <name>Paul Mellor</name>
            <email>pmellor@redhat.com</email>
            <organization>Red Hat</organization>
            <organizationUrl>https://www.redhat.com</organizationUrl>
        </developer>
        <developer>
            <name>Lukáš Král</name>
            <email>l.kral@outlook.com</email>
            <organization>Red Hat</organization>
            <organizationUrl>https://www.redhat.com</organizationUrl>
        </developer>
        <developer>
            <name>Maroš Orsák</name>
            <email>maros.orsak159@gmail.com</email>
            <organization>Red Hat</organization>
            <organizationUrl>https://www.redhat.com</organizationUrl>
        </developer>
    </developers>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.release>17</maven.compiler.release>

        <!-- Points to the root directory of the Strimzi project directory and can be used for fixed location to configuration files -->
        <strimziRootDirectory>${basedir}</strimziRootDirectory>

        <!-- Maven plugin versions -->
        <maven.compiler.version>3.10.1</maven.compiler.version>
        <maven.surefire.version>3.1.2</maven.surefire.version>
        <maven.failsafe.version>3.1.2</maven.failsafe.version>
        <maven.assembly.version>3.4.2</maven.assembly.version>
        <maven.shade.version>3.4.1</maven.shade.version>
        <maven.javadoc.version>3.10.0</maven.javadoc.version>
        <maven.source.version>3.0.1</maven.source.version>
        <maven.dependency.version>3.3.0</maven.dependency.version>
        <maven.gpg.version>1.6</maven.gpg.version>
        <maven.checkstyle.version>3.5.0</maven.checkstyle.version>
        <maven.enforcer.version>3.0.0-M2</maven.enforcer.version>
        <maven.jar.version>3.1.0</maven.jar.version>
        <sonatype.nexus.staging.version>1.7.0</sonatype.nexus.staging.version>
        <maven.spotbugs.version>4.7.3.4</maven.spotbugs.version>
        <maven.jacoco.version>0.8.12</maven.jacoco.version>
        <maven.exec.version>3.1.0</maven.exec.version>
        <maven.resources.version>3.1.0</maven.resources.version>

        <!-- Build tools -->
        <checkstyle.version>10.18.1</checkstyle.version>
        <spotbugs.version>4.7.3</spotbugs.version>
        <sundrio.version>0.200.0</sundrio.version>
        <lombok.version>1.18.32</lombok.version>

        <!-- Runtime dependencies -->
        <fabric8.kubernetes-client.version>6.13.4</fabric8.kubernetes-client.version>
        <fabric8.openshift-client.version>6.13.4</fabric8.openshift-client.version>
        <fabric8.kubernetes-model.version>6.13.4</fabric8.kubernetes-model.version>
        <fabric8.zjsonpatch.version>0.3.0</fabric8.zjsonpatch.version>
        <fasterxml.jackson-core.version>2.16.2</fasterxml.jackson-core.version>
        <fasterxml.jackson-databind.version>2.16.2</fasterxml.jackson-databind.version>
        <fasterxml.jackson-dataformat.version>2.16.2</fasterxml.jackson-dataformat.version>
        <fasterxml.jackson-annotations.version>2.16.2</fasterxml.jackson-annotations.version>
        <fasterxml.jackson-datatype.version>2.16.2</fasterxml.jackson-datatype.version>
        <fasterxml.jackson-jaxrs.version>2.16.2</fasterxml.jackson-jaxrs.version>
        <vertx.version>4.5.10</vertx.version>
        <vertx-junit5.version>4.5.10</vertx-junit5.version>
        <kafka.version>3.8.0</kafka.version>
        <yammer-metrics.version>2.2.0</yammer-metrics.version>
        <zookeeper.version>3.8.4</zookeeper.version>
        <snappy.version>1.1.10.5</snappy.version>
        <slf4j.version>1.7.36</slf4j.version>
        <log4j.version>2.17.2</log4j.version>
        <quartz.version>2.3.2</quartz.version>
        <opentelemetry.version>1.34.1</opentelemetry.version>
        <opentelemetry-alpha.version>${opentelemetry.version}-alpha</opentelemetry-alpha.version>
        <jetty.version>9.4.56.v20240826</jetty.version>
        <javax-servlet.version>3.1.0</javax-servlet.version>
        <strimzi-oauth.version>0.15.0</strimzi-oauth.version>
        <netty.version>4.1.111.Final</netty.version>
        <micrometer.version>1.12.3</micrometer.version>
        <jayway-jsonpath.version>2.9.0</jayway-jsonpath.version>
        <registry.version>1.3.2.Final</registry.version>
        <commons-codec.version>1.13</commons-codec.version>

        <!-- Test only dependencies -->
        <hamcrest.version>2.2</hamcrest.version>
        <mockito.version>4.11.0</mockito.version>
        <junit.platform.version>1.8.2</junit.platform.version>
        <junit-platform-surefire-provider.version>1.3.2</junit-platform-surefire-provider.version>
        <opentest4j.version>1.2.0</opentest4j.version>
        <jupiter.version>5.8.2</jupiter.version>
        <strimzi-test-container.version>0.108.0</strimzi-test-container.version>
        <mockserver.version>5.13.2</mockserver.version>
        <mockwebserver.version>3.14.7</mockwebserver.version>
        <valid4j.version>1.1</valid4j.version>
        <javax.json.version>1.1.4</javax.json.version>
        <bouncycastle.version>1.78.1</bouncycastle.version>
        <kindcontainer.version>1.4.7</kindcontainer.version>
        <junit4.version>4.13.2</junit4.version>
        <skodjob.test-frame.version>0.8.0</skodjob.test-frame.version>
        <skodjob-doc.version>0.3.0</skodjob-doc.version>

        <!-- properties to skip surefire tests during failsafe execution -->
        <skipTests>false</skipTests>
        <skip.surefire.tests>${skipTests}</skip.surefire.tests>
        <!-- failsafe fork-count configuration -->
        <failsafe.forkCount>1</failsafe.forkCount>
    </properties>

    <distributionManagement>
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

    <modules>
        <module>kafka-agent</module>
        <module>mirror-maker-agent</module>
        <module>tracing-agent</module>
        <module>test</module>
        <module>crd-annotations</module>
        <module>crd-generator</module>
        <module>api</module>
        <module>mockkube</module>
        <module>config-model</module>
        <module>config-model-generator</module>
        <module>operator-common</module>
        <module>topic-operator</module>
        <module>cluster-operator</module>
        <module>user-operator</module>
        <module>kafka-init</module>
        <module>certificate-manager</module>
        <module>systemtest</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <!-- Runtime and compile time dependencies-->
            <dependency>
                <groupId>io.strimzi</groupId>
                <artifactId>crd-annotations</artifactId>
                <version>${project.version}</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>com.github.spotbugs</groupId>
                <artifactId>spotbugs-annotations</artifactId>
                <version>${spotbugs.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>io.sundr</groupId>
                <artifactId>builder-annotations</artifactId>
                <version>${sundrio.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.sun</groupId>
                        <artifactId>tools</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
            </dependency>
            <dependency>
                <groupId>io.strimzi</groupId>
                <artifactId>crd-generator</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.strimzi</groupId>
                <artifactId>config-model</artifactId>
                <version>${project.version}</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>io.strimzi</groupId>
                <artifactId>api</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.strimzi</groupId>
                <artifactId>operator-common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.strimzi</groupId>
                <artifactId>certificate-manager</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.strimzi</groupId>
                <artifactId>kafka-oauth-server</artifactId>
                <version>${strimzi-oauth.version}</version>
            </dependency>
            <dependency>
                <groupId>io.strimzi</groupId>
                <artifactId>kafka-oauth-server-plain</artifactId>
                <version>${strimzi-oauth.version}</version>
            </dependency>
            <dependency>
                <groupId>io.strimzi</groupId>
                <artifactId>kafka-oauth-client</artifactId>
                <version>${strimzi-oauth.version}</version>
            </dependency>
            <dependency>
                <groupId>io.strimzi</groupId>
                <artifactId>kafka-oauth-common</artifactId>
                <version>${strimzi-oauth.version}</version>
            </dependency>
            <dependency>
                <groupId>io.strimzi</groupId>
                <artifactId>kafka-oauth-keycloak-authorizer</artifactId>
                <version>${strimzi-oauth.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-client</artifactId>
                <version>${fabric8.kubernetes-client.version}</version>
                <scope>runtime</scope>
                <exclusions>
                    <exclusion>
                        <groupId>io.fabric8</groupId>
                        <artifactId>kubernetes-httpclient-okhttp</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-httpclient-jdk</artifactId>
                <version>${fabric8.kubernetes-client.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-client-api</artifactId>
                <version>${fabric8.kubernetes-client.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-model</artifactId>
                <version>${fabric8.kubernetes-model.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-model-events</artifactId>
                <version>${fabric8.kubernetes-model.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-model-extensions</artifactId>
                <version>${fabric8.kubernetes-model.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-model-core</artifactId>
                <version>${fabric8.kubernetes-model.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-model-common</artifactId>
                <version>${fabric8.kubernetes-model.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-model-rbac</artifactId>
                <version>${fabric8.kubernetes-model.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-model-apps</artifactId>
                <version>${fabric8.kubernetes-model.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-model-apiextensions</artifactId>
                <version>${fabric8.kubernetes-model.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-model-networking</artifactId>
                <version>${fabric8.kubernetes-model.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-model-policy</artifactId>
                <version>${fabric8.kubernetes-model.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-model-storageclass</artifactId>
                <version>${fabric8.kubernetes-model.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-model-batch</artifactId>
                <version>${fabric8.kubernetes-model.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-model-coordination</artifactId>
                <version>${fabric8.kubernetes-model.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>openshift-model</artifactId>
                <version>${fabric8.kubernetes-model.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>openshift-client</artifactId>
                <version>${fabric8.openshift-client.version}</version>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>openshift-client-api</artifactId>
                <version>${fabric8.kubernetes-client.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>zjsonpatch</artifactId>
                <version>${fabric8.zjsonpatch.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>openshift-model-operatorhub</artifactId>
                <version>${fabric8.openshift-client.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-slf4j-impl</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka-clients</artifactId>
                <version>${kafka.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka-tools</artifactId>
                <version>${kafka.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka_2.13</artifactId>
                <version>${kafka.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka-server-common</artifactId>
                <version>${kafka.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>connect-runtime</artifactId>
                <version>${kafka.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>connect-json</artifactId>
                <version>${kafka.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>connect-file</artifactId>
                <version>${kafka.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>connect-api</artifactId>
                <version>${kafka.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka-streams</artifactId>
                <version>${kafka.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>${zookeeper.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-handler</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-transport-native-epoll</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>ch.qos.logback</groupId>
                        <artifactId>logback-classic</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>ch.qos.logback</groupId>
                        <artifactId>logback-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <!-- Required for TO tests using ZooKeeper -->
                <groupId>org.xerial.snappy</groupId>
                <artifactId>snappy-java</artifactId>
                <version>${snappy.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper-jute</artifactId>
                <version>${zookeeper.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${fasterxml.jackson-core.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${fasterxml.jackson-annotations.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${fasterxml.jackson-databind.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-yaml</artifactId>
                <version>${fasterxml.jackson-dataformat.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-csv</artifactId>
                <version>${fasterxml.jackson-dataformat.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>com.fasterxml.jackson.datatype</groupId>
                <artifactId>jackson-datatype-jdk11</artifactId>
                <version>${fasterxml.jackson-core.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-jaxb-annotations</artifactId>
                <version>${fasterxml.jackson-core.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-paranamer</artifactId>
                <version>${fasterxml.jackson-core.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-scala_2.13</artifactId>
                <version>${fasterxml.jackson-core.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.datatype</groupId>
                <artifactId>jackson-datatype-jdk8</artifactId>
                <version>${fasterxml.jackson-datatype.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.datatype</groupId>
                <artifactId>jackson-datatype-jsr310</artifactId>
                <version>${fasterxml.jackson-datatype.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.jaxrs</groupId>
                <artifactId>jackson-jaxrs-base</artifactId>
                <version>${fasterxml.jackson-jaxrs.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.jaxrs</groupId>
                <artifactId>jackson-jaxrs-json-provider</artifactId>
                <version>${fasterxml.jackson-jaxrs.version}</version>
            </dependency>
            <dependency>
                <groupId>io.vertx</groupId>
                <artifactId>vertx-core</artifactId>
                <version>${vertx.version}</version>
            </dependency>
            <dependency>
                <groupId>io.vertx</groupId>
                <artifactId>vertx-micrometer-metrics</artifactId>
                <version>${vertx.version}</version>
            </dependency>
            <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-core</artifactId>
                <version>${micrometer.version}</version>
            </dependency>
            <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-registry-prometheus</artifactId>
                <version>${micrometer.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>io.netty</groupId>
                <artifactId>netty-common</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>io.netty</groupId>
                <artifactId>netty-buffer</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>io.netty</groupId>
                <artifactId>netty-transport</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>io.netty</groupId>
                <artifactId>netty-handler</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>io.netty</groupId>
                <artifactId>netty-codec</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>io.netty</groupId>
                <artifactId>netty-handler-proxy</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>io.netty</groupId>
                <artifactId>netty-codec-socks</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>io.netty</groupId>
                <artifactId>netty-codec-http</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>io.netty</groupId>
                <artifactId>netty-codec-http2</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>io.netty</groupId>
                <artifactId>netty-codec-dns</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>io.netty</groupId>
                <artifactId>netty-resolver</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>io.netty</groupId>
                <artifactId>netty-resolver-dns</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>io.netty</groupId>
                <artifactId>netty-transport-native-epoll</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>io.netty</groupId>
                <artifactId>netty-transport-native-unix-common</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-transport-native-epoll</artifactId>
                <version>${netty.version}</version>
                <classifier>linux-x86_64</classifier>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-transport-native-epoll</artifactId>
                <version>${netty.version}</version>
                <classifier>linux-aarch_64</classifier>
            </dependency>
            <dependency>
                <groupId>org.quartz-scheduler</groupId>
                <artifactId>quartz</artifactId>
                <version>${quartz.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dep; override here to avoid buggy version -->
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${commons-codec.version}</version>
            </dependency>
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-registry-utils-streams</artifactId>
                <version>${registry.version}</version>
            </dependency>
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-registry-utils-kafka</artifactId>
                <version>${registry.version}</version>
            </dependency>
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-registry-common</artifactId>
                <version>${registry.version}</version>
            </dependency>
            <dependency>
                <groupId>io.opentelemetry</groupId>
                <artifactId>opentelemetry-sdk-extension-autoconfigure</artifactId>
                <version>${opentelemetry.version}</version>
            </dependency>
            <dependency>
                <groupId>com.jayway.jsonpath</groupId>
                <artifactId>json-path</artifactId>
                <version>${jayway-jsonpath.version}</version>
            </dependency>
            <!-- The skodjob dependency is required at compile time, not solely in the test scope, due to the creation of custom metrics components. -->
            <dependency>
                <groupId>io.skodjob</groupId>
                <artifactId>test-frame-metrics-collector</artifactId>
                <version>${skodjob.test-frame.version}</version>
            </dependency>
            <dependency>
                <groupId>io.skodjob</groupId>
                <artifactId>test-frame-log-collector</artifactId>
                <version>${skodjob.test-frame.version}</version>
            </dependency>
            <dependency>
                <groupId>io.skodjob</groupId>
                <artifactId>test-frame-common</artifactId>
                <version>${skodjob.test-frame.version}</version>
            </dependency>
            <!-- Test dependencies -->
            <dependency>
                <groupId>io.strimzi</groupId>
                <artifactId>test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>io.strimzi</groupId>
                <artifactId>mockkube</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>io.strimzi</groupId>
                <artifactId>api</artifactId>
                <version>${project.version}</version>
                <classifier>tests</classifier>
                <type>test-jar</type>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>io.strimzi</groupId>
                <artifactId>operator-common</artifactId>
                <version>${project.version}</version>
                <classifier>tests</classifier>
                <type>test-jar</type>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>io.strimzi</groupId>
                <artifactId>strimzi-test-container</artifactId>
                <version>${strimzi-test-container.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>${mockito.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-inline</artifactId>
                <version>${mockito.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-core</artifactId>
                <version>${hamcrest.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.valid4j</groupId>
                <artifactId>json-path-matchers</artifactId>
                <version>${valid4j.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest</artifactId>
                <version>${hamcrest.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-api</artifactId>
                <version>${jupiter.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-params</artifactId>
                <version>${jupiter.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>io.vertx</groupId>
                <artifactId>vertx-junit5</artifactId>
                <version>${vertx-junit5.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-commons</artifactId>
                <version>${junit.platform.version}</version>
            </dependency>
            <dependency>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-launcher</artifactId>
                <version>${junit.platform.version}</version>
            </dependency>
            <dependency>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-engine</artifactId>
                <version>${junit.platform.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-server</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-util</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>${javax-servlet.version}</version>
            </dependency>
            <dependency>
                <groupId>com.dajudge.kindcontainer</groupId>
                <artifactId>kindcontainer</artifactId>
                <version>${kindcontainer.version}</version>
            </dependency>
            <!-- JUnit dependency is needed at compile time by MockKube because of how Test Containers are designed -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit4.version}</version>
            </dependency>
            <dependency>
                <groupId>io.skodjob</groupId>
                <artifactId>test-docs-generator-maven-plugin</artifactId>
                <version>${skodjob-doc.version}</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven.compiler.version}</version>
                    <executions>
                        <execution>
                            <id>default-compile</id>
                            <phase>compile</phase>
                            <goals>
                                <goal>compile</goal>
                            </goals>
                            <configuration>
                                <compilerArgs>
                                    <arg>-Xlint:unchecked,deprecation</arg>
                                    <arg>-Werror</arg>
                                </compilerArgs>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>${maven.dependency.version}</version>
                    <executions>
                        <execution>
                            <id>copy-dependencies</id>
                            <phase>none</phase>
                            <goals>
                                <goal>copy-dependencies</goal>
                            </goals>
                            <configuration>
                                <includeScope>runtime</includeScope>
                                <outputDirectory>${project.build.directory}/lib</outputDirectory>
                                <prependGroupId>true</prependGroupId>
                                <overWriteReleases>false</overWriteReleases>
                                <overWriteSnapshots>false</overWriteSnapshots>
                                <overWriteIfNewer>true</overWriteIfNewer>
                            </configuration>
                        </execution>
                        <execution>
                            <id>set-classpath</id>
                            <phase>none</phase>
                            <goals>
                                <goal>build-classpath</goal>
                            </goals>
                            <configuration>
                                <includeScope>runtime</includeScope>
                                <outputProperty>project.dist.classpath</outputProperty>
                                <attach>false</attach>
                                <prefix>lib</prefix>
                                <prependGroupId>true</prependGroupId>
                                <overWriteReleases>false</overWriteReleases>
                                <overWriteSnapshots>false</overWriteSnapshots>
                                <overWriteIfNewer>true</overWriteIfNewer>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>${maven.assembly.version}</version>
                    <executions>
                        <execution>
                            <id>make-dist-assembly</id>
                            <phase>none</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>../docker-images/artifacts/binaries</outputDirectory>
                                <descriptors>
                                    <descriptor>../dist.xml</descriptor>
                                </descriptors>
                                <delimiters>
                                    <delimiter>@</delimiter>
                                </delimiters>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>${maven.checkstyle.version}</version>
                <dependencies>
                    <dependency>
                        <groupId>com.puppycrawl.tools</groupId>
                        <artifactId>checkstyle</artifactId>
                        <version>${checkstyle.version}</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>validate</id>
                        <phase>validate</phase>
                        <configuration>
                            <configLocation>.checkstyle/checkstyle.xml</configLocation>
                            <suppressionsLocation>.checkstyle/suppressions.xml</suppressionsLocation>
                            <includeTestSourceDirectory>true</includeTestSourceDirectory>
                            <consoleOutput>true</consoleOutput>
                            <failsOnError>true</failsOnError>
                            <propertyExpansion>importControlFile=${strimziRootDirectory}/.checkstyle/import-control.xml</propertyExpansion>
                        </configuration>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>${maven.jacoco.version}</version>
                <executions>
                    <execution>
                        <id>default-prepare-agent</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>default-report</id>
                        <goals>
                            <goal>report</goal>
                        </goals>
                        <configuration>
                            <excludes>
                                <exclude>io/strimzi/api/**/*Fluent*.class</exclude>
                                <exclude>io/strimzi/api/**/*Builder*.class</exclude>
                            </excludes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <inherited>true</inherited>
                <version>${maven.surefire.version}</version>
                <configuration>
                    <environmentVariables>
                        <ENV_VAR_EXISTS>value</ENV_VAR_EXISTS>
                        <ENV_VAR_EXISTS_BOOLEAN>true</ENV_VAR_EXISTS_BOOLEAN>
                    </environmentVariables>
                    <trimStackTrace>false</trimStackTrace>
                    <forkCount>1</forkCount>
                    <!-- This is workaround for https://issues.apache.org/jira/browse/SUREFIRE-1809 -->
                    <useModulePath>false</useModulePath>
                    <skipTests>${skip.surefire.tests}</skipTests>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.junit.jupiter</groupId>
                        <artifactId>junit-jupiter-engine</artifactId>
                        <version>${jupiter.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>io.vertx</groupId>
                        <artifactId>vertx-junit5</artifactId>
                        <version>${vertx-junit5.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>${maven.failsafe.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <includes>
                                <include>**/IT*.java</include>
                                <include>**/*IT.java</include>
                                <include>**/ST*.java</include>
                                <include>**/*ST.java</include>
                            </includes>
                            <trimStackTrace>false</trimStackTrace>
                            <!--
                              Fork count is configured through a system property:
                                * ITs run with forked VM because of class path for Apache Kafka
                                * STs run without forking the VM for better log output in CI pipelines
                                -->
                            <forkCount>${failsafe.forkCount}</forkCount>
                            <!-- This is workaround for https://issues.apache.org/jira/browse/SUREFIRE-1809 -->
                            <useModulePath>false</useModulePath>
                            <statelessTestsetReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter">
                                <disable>false</disable>
                                <version>3.0</version>
                                <usePhrasedFileName>false</usePhrasedFileName>
                                <usePhrasedTestSuiteClassName>true</usePhrasedTestSuiteClassName>
                                <usePhrasedTestCaseClassName>true</usePhrasedTestCaseClassName>
                                <usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName>
                            </statelessTestsetReporter>
                            <consoleOutputReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5ConsoleOutputReporter">
                                <disable>false</disable>
                                <encoding>UTF-8</encoding>
                                <usePhrasedFileName>true</usePhrasedFileName>
                            </consoleOutputReporter>
                            <statelessTestsetInfoReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5StatelessTestsetInfoReporter">
                                <disable>false</disable>
                                <usePhrasedFileName>false</usePhrasedFileName>
                                <usePhrasedClassNameInRunning>false</usePhrasedClassNameInRunning>
                                <usePhrasedClassNameInTestCaseSummary>true</usePhrasedClassNameInTestCaseSummary>
                            </statelessTestsetInfoReporter>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>com.github.spotbugs</groupId>
                <artifactId>spotbugs-maven-plugin</artifactId>
                <version>${maven.spotbugs.version}</version><dependencies>
                <!-- overwrite dependency on spotbugs if you want to specify the version of˓→spotbugs -->
                <dependency>
                    <groupId>com.github.spotbugs</groupId>
                    <artifactId>spotbugs</artifactId>
                    <version>${spotbugs.version}</version>
                </dependency></dependencies>
                <configuration>
                    <effort>Max</effort>
                    <!-- Reports all bugs (other values are medium and max) -->
                    <threshold>Low</threshold>
                    <!-- Produces XML report -->
                    <xmlOutput>true</xmlOutput>
                    <!-- Configures the directory in which the XML report is created -->
                    <spotbugsXmlOutputDirectory>${project.build.directory}/spotbugs</spotbugsXmlOutputDirectory>
                    <!-- Configures the file for excluding warnings -->
                    <excludeFilterFile>${project.basedir}/../.spotbugs/spotbugs-exclude.xml</excludeFilterFile>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>${maven.dependency.version}</version>
                <executions>
                    <execution>
                        <id>analyze</id>
                        <goals>
                            <goal>analyze-only</goal>
                        </goals>
                        <configuration>
                            <failOnWarning>true</failOnWarning>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>${maven.source.version}</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>${maven.javadoc.version}</version>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                        <configuration>
                            <sourcepath>${project.build.sourceDirectory}:${project.build.directory}/generated-sources/annotations</sourcepath>
                            <show>public</show>
                            <failOnError>true</failOnError>
                            <failOnWarnings>false</failOnWarnings>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>${maven.jar.version}</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>${maven.enforcer.version}</version>
                <executions>
                    <execution>
                        <id>enforce-banned-dependencies</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <bannedDependencies>
                                    <excludes>
                                        <!-- use org.apache.logging.log4j:log4j-slf4j-impl -->
                                        <exclude>ch.qos.logback:*</exclude>
                                        <!-- use org.apache.logging.log4j:log4j-1.2-api shim -->
                                        <exclude>log4j:log4j:*:jar:compile</exclude>
                                        <!-- use org.apache.logging.log4j:log4j-slf4j-impl -->
                                        <exclude>org.slf4j:slf4j-log4j12:*:jar:compile</exclude>
                                    </excludes>
                                </bannedDependencies>
                            </rules>
                            <fail>true</fail>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <profile>
            <id>coverage</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>${maven.surefire.version}</version>
                        <configuration>
                            <!--suppress UnresolvedMavenProperty -->
                            <argLine>${surefireArgLine}</argLine>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>ossrh</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <!--suppress UnresolvedMavenProperty -->
                <gpg.executable>${env.GPG_EXECUTABLE}</gpg.executable>
                <!--suppress UnresolvedMavenProperty -->
                <gpg.passphrase>${env.GPG_PASSPHRASE}</gpg.passphrase>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>${maven.gpg.version}</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                                <configuration>
                                    <gpgArguments>
                                        <arg>--batch</arg>
                                        <arg>--pinentry-mode</arg>
                                        <arg>loopback</arg>
                                    </gpgArguments>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.sonatype.plugins</groupId>
                        <artifactId>nexus-staging-maven-plugin</artifactId>
                        <version>${sonatype.nexus.staging.version}</version>
                        <extensions>true</extensions>
                        <configuration>
                            <serverId>ossrh</serverId>
                            <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                            <autoReleaseAfterClose>false</autoReleaseAfterClose>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
