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

    <groupId>io.apicurio</groupId>
    <artifactId>apicurio-registry</artifactId>
    <version>1.3.2.Final</version>
    <packaging>pom</packaging>
    <name>apicurio-registry</name>

    <url>https://www.apicur.io/</url>
    <description>Open Source API &amp; Schema Registry</description>

    <organization>
        <name>Red Hat</name>
        <url>https://www.redhat.com</url>
    </organization>

    <licenses>
        <license>
            <name>Apache License Version 2.0</name>
            <url>https://repository.jboss.org/licenses/apache-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <issueManagement>
        <system>GitHub</system>
        <url>https://github.com/apicurio/apicurio-registry/issues</url>
    </issueManagement>

    <scm>
        <connection>scm:git:git@github.com:apicurio/apicurio-registry.git</connection>
        <developerConnection>scm:git:git@github.com:apicurio/apicurio-registry.git</developerConnection>
        <url>scm:git:git@github.com:apicurio/apicurio-registry.git</url>
    </scm>

    <developers>
        <developer>
            <name>Eric Wittmann</name>
            <id>EricWittmann</id>
            <email>eric.wittmann@redhat.com</email>
            <organization>Red Hat</organization>
            <roles>
                <role>Project Lead</role>
                <role>Developer</role>
            </roles>
            <timezone>-5</timezone>
        </developer>
        <developer>
            <name>Jakub Senko</name>
            <id>jsenko</id>
            <email>jsenko@redhat.com</email>
            <organization>Red Hat</organization>
            <roles>
                <role>Developer</role>
            </roles>
            <timezone>+1</timezone>
        </developer>
        <developer>
            <name>Aleš Justin</name>
            <id>alesj</id>
            <email>ajustin@redhat.com</email>
            <organization>Red Hat</organization>
            <roles>
                <role>Developer</role>
            </roles>
            <timezone>+1</timezone>
        </developer>
        <developer>
            <name>Carles Arnal</name>
            <id>carlesarnal</id>
            <email>carnalca@redhat.com</email>
            <organization>Red Hat</organization>
            <roles>
                <role>Developer</role>
            </roles>
            <timezone>+1</timezone>
        </developer>
    </developers>

    <modules>
        <module>common</module>
        <module>app</module>
        <module>client</module>
        <module>ui</module>
        <module>utils/converter</module>
        <module>utils/kafka</module>
        <module>utils/streams</module>
        <module>utils/maven-plugin</module>
        <module>utils/serde</module>
        <module>utils/tools</module>
        <module>utils/tests</module>
        <module>search/client</module>
        <module>search/connector</module>
        <module>distro</module>
        <module>docs</module>
        <module>tests</module>
        <module>rest-client</module>
    </modules>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format>
        <timestamp>${maven.build.timestamp}</timestamp>

        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>

        <docker.tag.name>latest-release</docker.tag.name>
        <tar.long.file.mode>gnu</tar.long.file.mode>
        
        <!-- UI Build Tools -->
        <node.version>10.20.1</node.version>
        <yarn.version>1.22.4</yarn.version>
        
        <!-- Quarkus Version -->
        <quarkus.version>1.9.0.Final</quarkus.version>

        <!-- Jandex -->
        <jandex.version>1.0.8</jandex.version>

        <!-- Schema types -->
        <avro.version>1.10.0</avro.version>
        <json-schema-validator.version>1.0.43</json-schema-validator.version>
        <wire-schema.version>3.2.2</wire-schema.version>
        <protobuf.version>3.13.0</protobuf.version>
        <xmlsec.version>2.1.5</xmlsec.version>
        <wsdl4j.version>1.6.3</wsdl4j.version>

        <!-- Storage types -->
        <infinispan.version>12.0.0.Dev04</infinispan.version>

        <!-- gRPC -->
        <grpc.version>1.32.2</grpc.version>

        <!-- Confluent API / client -->
        <confluent.version>5.5.1</confluent.version>

        <!-- Default Quarkus configuration profile -->
        <quarkus.profile>dev</quarkus.profile>

        <!-- Apicurio Data Models (OpenAPI and AsyncAPI support) -->
        <apicurio-data-models.version>1.1.6</apicurio-data-models.version>

        <!-- GraphQL -->
        <graphql.version>15.0</graphql.version>

        <!-- JSON Schema Validator -->
        <medeia-validator-jackson.version>1.1.1</medeia-validator-jackson.version>
        <org.everit.json.schema.version>1.12.1</org.everit.json.schema.version><!-- TODO unification -->
        <jackson-datatype-json-org.version>2.11.3</jackson-datatype-json-org.version>

        <!-- Dependency versions -->
        <lombok.version>1.18.16</lombok.version>
        <h2.version>1.4.199</h2.version>
        <retrofit.version>2.9.0</retrofit.version>

        <!-- Search -->
        <connect.version>2.6.0</connect.version>
        <infinispan.version>10.0.1.Final</infinispan.version>
        
        <!-- Specifications -->
        <annotation-api.version>1.3.2</annotation-api.version>
        <cdi-api.version>2.0</cdi-api.version>

        <!-- Plugin Versions -->
        <version.compiler.plugin>3.8.1</version.compiler.plugin>
        <version.deploy.plugin>2.8.2</version.deploy.plugin>
        <version.failsafe.plugin>2.22.2</version.failsafe.plugin>
        <version.javadoc.plugin>3.2.0</version.javadoc.plugin>
        <version.source.plugin>3.2.1</version.source.plugin>
        <version.surefire.plugin>2.22.2</version.surefire.plugin>
        <version.jar.plugin>3.2.0</version.jar.plugin>
        <version.checkstyle.plugin>3.1.1</version.checkstyle.plugin>
        <version.properties.plugin>1.0.0</version.properties.plugin>
        <version.dependency.plugin>3.1.2</version.dependency.plugin>
        <version.assembly.plugin>3.3.0</version.assembly.plugin>
        <version.resources.plugin>3.2.0</version.resources.plugin>
        <version.clean.plugin>3.1.0</version.clean.plugin>
        <version.frontend-maven.plugin>1.10.3</version.frontend-maven.plugin>

        <!-- Plugin Deps -->
        <version.puppycrawl>8.36.2</version.puppycrawl>

        <!-- Proto -->
        <proto-plugin.version>0.6.1</proto-plugin.version>
        <os-maven-plugin.version>1.6.2</os-maven-plugin.version>

        <!-- Test containers version, should be aligned with version used in Quarkus -->
        <test-containers.version>1.14.3</test-containers.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!-- This project -->
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-registry-common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-registry-app</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-registry-ui</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-registry-client</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-registry-rest-client</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-registry-search-client</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-registry-utils-kafka</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-registry-utils-streams</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-registry-utils-kafka</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
                <type>test-jar</type>
            </dependency>
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-registry-utils-serde</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-registry-utils-converter</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-registry-maven-plugin</artifactId>
                <scope>test</scope>
                <version>${project.version}</version>
                <type>maven-plugin</type>
            </dependency>
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-registry-app</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
            </dependency>
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-registry-utils-tests</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- Quarkus Dependencies -->
            <dependency>
                <groupId>io.quarkus</groupId>
                <artifactId>quarkus-bom</artifactId>
                <version>${quarkus.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>connect-api</artifactId>
                <version>${connect.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>connect-json</artifactId>
                <version>${connect.version}</version>
            </dependency>

            <!-- Third Party Libraries -->
            <dependency>
                <groupId>io.apicurio</groupId>
                <artifactId>apicurio-data-models</artifactId>
                <version>${apicurio-data-models.version}</version>
            </dependency>
            <dependency>
                <groupId>org.infinispan</groupId>
                <artifactId>infinispan-core</artifactId>
                <version>${infinispan.version}</version>
            </dependency>
            <dependency>
                <groupId>org.infinispan</groupId>
                <artifactId>infinispan-commons</artifactId>
                <version>${infinispan.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.avro</groupId>
                <artifactId>avro</artifactId>
                <version>${avro.version}</version>
            </dependency>
            <dependency>
                <groupId>com.networknt</groupId>
                <artifactId>json-schema-validator</artifactId>
                <version>${json-schema-validator.version}</version>
            </dependency>
            <dependency>
                <groupId>com.squareup.wire</groupId>
                <artifactId>wire-schema</artifactId>
                <version>${wire-schema.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.protobuf</groupId>
                <artifactId>protobuf-java</artifactId>
                <version>${protobuf.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.protobuf</groupId>
                <artifactId>protobuf-java-util</artifactId>
                <version>${protobuf.version}</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.santuario</groupId>
                <artifactId>xmlsec</artifactId>
                <version>${xmlsec.version}</version>
            </dependency>
            <dependency>
                <groupId>wsdl4j</groupId>
                <artifactId>wsdl4j</artifactId>
                <version>${wsdl4j.version}</version>
            </dependency>

            <!-- gRPC -->
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-api</artifactId>
                <version>${grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-core</artifactId>
                <version>${grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-context</artifactId>
                <version>${grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-protobuf</artifactId>
                <version>${grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-stub</artifactId>
                <version>${grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-netty-shaded</artifactId>
                <version>${grpc.version}</version>
            </dependency>

            <!-- GraphQL -->
            <dependency>
                <groupId>com.graphql-java</groupId>
                <artifactId>graphql-java</artifactId>
                <version>${graphql.version}</version>
            </dependency>

            <!-- JSON Schema Validator -->
            <dependency>
                <groupId>com.worldturner.medeia</groupId>
                <artifactId>medeia-validator-jackson</artifactId>
                <version>${medeia-validator-jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.everit-org.json-schema</groupId>
                <artifactId>org.everit.json.schema</artifactId>
                <version>${org.everit.json.schema.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.datatype</groupId>
                <artifactId>jackson-datatype-json-org</artifactId>
                <version>${jackson-datatype-json-org.version}</version>
            </dependency>

            <!-- Search -->
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>connect-runtime</artifactId>
                <version>${connect.version}</version>
            </dependency>
            <dependency>
                <groupId>org.infinispan</groupId>
                <artifactId>infinispan-client-rest</artifactId>
                <version>${infinispan.version}</version>
            </dependency>

            <!-- Specifications -->
            <dependency>
                <groupId>javax.annotation</groupId>
                <artifactId>javax.annotation-api</artifactId>
                <version>${annotation-api.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.enterprise</groupId>
                <artifactId>cdi-api</artifactId>
                <version>${cdi-api.version}</version>
            </dependency>

            <!-- Tests -->
            <dependency>
                <groupId>io.confluent</groupId>
                <artifactId>kafka-avro-serializer</artifactId>
                <version>${confluent.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.glassfish.jersey.ext</groupId>
                        <artifactId>jersey-bean-validation</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.confluent</groupId>
                <artifactId>kafka-protobuf-serializer</artifactId>
                <version>${confluent.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.glassfish.jersey.ext</groupId>
                        <artifactId>jersey-bean-validation</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.confluent</groupId>
                <artifactId>kafka-json-schema-serializer</artifactId>
                <version>${confluent.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.glassfish.jersey.ext</groupId>
                        <artifactId>jersey-bean-validation</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.confluent</groupId>
                <artifactId>kafka-connect-avro-converter</artifactId>
                <version>${confluent.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.glassfish.jersey.ext</groupId>
                        <artifactId>jersey-bean-validation</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>kafka</artifactId>
                <version>${test-containers.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>io.quarkus</groupId>
                <artifactId>quarkus-test-common</artifactId>
                <version>${quarkus.version}</version>
                <scope>test</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>properties-maven-plugin</artifactId>
                    <version>${version.properties.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${version.compiler.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>${version.source.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>${version.javadoc.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>${version.failsafe.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${version.surefire.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>${version.deploy.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>${version.jar.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>${version.checkstyle.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.jboss.jandex</groupId>
                    <artifactId>jandex-maven-plugin</artifactId>
                    <version>${jandex.version}</version>
                    <executions>
                        <execution>
                            <id>make-index</id>
                            <goals>
                                <goal>jandex</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>io.quarkus</groupId>
                    <artifactId>quarkus-maven-plugin</artifactId>
                    <version>${quarkus.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>${version.dependency.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>${version.assembly.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>${version.resources.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>${version.clean.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>com.github.eirslett</groupId>
                    <artifactId>frontend-maven-plugin</artifactId>
                    <version>${version.frontend-maven.plugin}</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>properties-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>set-system-properties</goal>
                        </goals>
                        <configuration>
                            <properties>
                                <property>
                                    <name>quarkus.profile</name>
                                    <value>${quarkus.profile}</value>
                                </property>
                            </properties>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${maven.compiler.target}</source>
                    <target>${maven.compiler.target}</target>
                    <showDeprecation>false</showDeprecation>
                    <showWarnings>false</showWarnings>
                </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>
                <configuration>
                    <additionalDependencies>
                        <additionalDependency>
                            <groupId>org.jboss.spec.javax.annotation</groupId>
                            <artifactId>jboss-annotations-api_1.2_spec</artifactId>
                            <version>1.0.1.Final</version>
                        </additionalDependency>
                    </additionalDependencies>
                    <failOnError>false</failOnError>
                    <failOnWarnings>false</failOnWarnings>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>com.puppycrawl.tools</groupId>
                        <artifactId>checkstyle</artifactId>
                        <version>${version.puppycrawl}</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>validate</id>
                        <phase>validate</phase>
                        <configuration>
                            <configLocation>.checkstyle/simple.xml</configLocation>
                            <headerLocation>.checkstyle/java.header</headerLocation>
                            <suppressionsLocation>.checkstyle/suppressions.xml</suppressionsLocation>
                            <includeTestSourceDirectory>true</includeTestSourceDirectory>
                            <encoding>UTF-8</encoding>
                            <consoleOutput>true</consoleOutput>
                            <failsOnError>true</failsOnError>
                        </configuration>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <distributionManagement>
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>

    <profiles>
        <profile>
            <id>infinispan</id>
            <modules>
                <module>storage/infinispan</module>
            </modules>
        </profile>
        <profile>
            <id>asyncmem</id>
            <modules>
                <module>storage/asyncmem</module>
            </modules>
        </profile>
        <profile>
            <id>jpa</id>
            <modules>
                <module>storage/jpa</module>
            </modules>
        </profile>
        <profile>
            <id>kafka</id>
            <modules>
                <module>storage/kafka</module>
            </modules>
        </profile>
        <profile>
            <id>streams</id>
            <modules>
                <module>storage/streams</module>
            </modules>
        </profile>
        <profile>
            <id>prod</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <quarkus.profile>prod</quarkus.profile>
            </properties>
        </profile>
        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.sonatype.plugins</groupId>
                        <artifactId>nexus-staging-maven-plugin</artifactId>
                        <extensions>true</extensions>
                        <configuration>
                            <serverId>ossrh</serverId>
                            <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                            <autoReleaseAfterClose>true</autoReleaseAfterClose>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.6</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                                <configuration>
                                    <!-- Prevent `gpg` from using pinentry programs -->
                                    <gpgArguments>
                                        <arg>--pinentry-mode</arg>
                                        <arg>loopback</arg>
                                    </gpgArguments>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>java8</id>
            <activation>
                <jdk>[1.8,)</jdk>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <configuration>
                            <additionalJOption>-Xdoclint:none</additionalJOption>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <!-- 
            conditional repo to be excluded in productization 
            build in prod with:
            mvn ... -P '!external_repos'
        -->
        <profile>
            <id>external_repos</id>
                <activation>
                    <property>
                        <!-- fake property, assumed never set -->
                        <name>!skipDefault</name>
                    </property>
                </activation>
            <repositories>
                <repository>
                    <id>confluent</id>
                    <name>Confluent</name>
                    <url>https://packages.confluent.io/maven/</url>
                </repository>
                <repository>
                    <id>jitpack.io</id>
                    <url>https://jitpack.io</url>
                </repository>
            </repositories>
        </profile>
    </profiles>
    
</project>
