<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://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>
  <parent>
    <groupId>zone.dragon</groupId>
    <artifactId>base-pom</artifactId>
    <version>5.0.19</version>
  </parent>
  <artifactId>base-java-pom</artifactId>
  <packaging>pom</packaging>
  <name>DragonZone :: Base POM for Java</name>
  <description>POM file for managing DragonZone java projects</description>
  <modules>
    <module>base-dropwizard-1x-pom</module>
    <module>base-dropwizard-2x-pom</module>
    <module>base-dropwizard-3x-pom</module>
    <module>base-dropwizard-4x-pom</module>
    <module>base-dropwizard-5x-pom</module>
    <module>base-dropwizard-bundle-1x-pom</module>
    <module>base-dropwizard-bundle-2x-pom</module>
    <module>base-dropwizard-bundle-3x-pom</module>
    <module>base-dropwizard-bundle-4x-pom</module>
    <module>base-dropwizard-bundle-5x-pom</module>
    <module>base-maven-plugin-pom</module>
    <module>compatibility-tests</module>
    <module>kotlin-1.5-deps</module>
    <module>kotlin-1.6-deps</module>
    <module>kotlin-1.7-deps</module>
    <module>kotlin-1.8-deps</module>
    <module>kotlin-1.9-deps</module>
    <module>kotlin-2.0-deps</module>
    <module>kotlin-2.1-deps</module>
    <module>kotlin-2.2-deps</module>
    <module>kotlin-2.3-deps</module>
  </modules>
  <properties>
    <jakarta.validation-api.version>3.1.1</jakarta.validation-api.version>
    <junit4.version>4.13.2</junit4.version>
    <commons-math3.version>3.6.1</commons-math3.version>
    <commons-beanutils.version>1.11.0</commons-beanutils.version>
    <lombok.plugin.version>1.18.20.0</lombok.plugin.version>
    <slf4j.version>2.0.17</slf4j.version>
    <commons-proxy.version>1.0</commons-proxy.version>
    <protobuf.version>4.34.1</protobuf.version>
    <commons-lang3.version>3.20.0</commons-lang3.version>
    <commons-codec.version>1.21.0</commons-codec.version>
    <commons-collections4.version>4.5.0</commons-collections4.version>
    <logback.version>1.5.32</logback.version>
    <bytebuddy.version>1.18.7</bytebuddy.version>
    <grpc.kotlin.version>1.5.0</grpc.kotlin.version>
    <commons-email.version>1.6.0</commons-email.version>
    <jib.plugin.version>3.5.1</jib.plugin.version>
    <commons-compress.version>1.28.0</commons-compress.version>
    <mysql-driver.version>9.6.0</mysql-driver.version>
    <jakarta.inject-api.version>2.0.1</jakarta.inject-api.version>
    <jakarta.annotation-api.version>3.0.0</jakarta.annotation-api.version>
    <jaxb.runtime.version>4.0.7</jaxb.runtime.version>
    <kotlin.plugin.version>2.3.20</kotlin.plugin.version>
    <maven.compiler.release>${java.version}</maven.compiler.release>
    <jetbrains-annotations.version>26.1.0</jetbrains-annotations.version>
    <jacoco.plugin.version>0.8.14</jacoco.plugin.version>
    <junit5.version>6.0.2</junit5.version>
    <logback.access.version>2.0.12</logback.access.version>
    <jackson2.version>2.21.2</jackson2.version>
    <mongo-driver.version>5.6.2</mongo-driver.version>
    <jetty.version>12.1.7</jetty.version>
    <guava.version>33.5.0-jre</guava.version>
    <hamcrest.version>3.0</hamcrest.version>
    <dokka.plugin.version>2.1.0</dokka.plugin.version>
    <commons-dbcp.version>2.14.0</commons-dbcp.version>
    <jakarta.servlet-api.version>6.1.0</jakarta.servlet-api.version>
    <asm.version>9.9.1</asm.version>
    <assertj.version>3.27.7</assertj.version>
    <grpc.version>1.80.0</grpc.version>
    <commons-io.version>2.21.0</commons-io.version>
    <jakarta.persistence-api.version>3.2.0</jakarta.persistence-api.version>
    <error-prone.version>2.48.0</error-prone.version>
    <kotlin.release>2.3</kotlin.release>
    <jakarta.xml.bind-api.version>4.0.2</jakarta.xml.bind-api.version>
    <java.version>11</java.version>
    <postgresql-driver.version>42.7.11</postgresql-driver.version>
    <mockito.version>5.23.0</mockito.version>
    <lombok.version>1.18.44</lombok.version>
    <jakarta.activation-api.version>2.1.4</jakarta.activation-api.version>
    <jakarta.ws.rs-api.version>4.0.0</jakarta.ws.rs-api.version>
    <commons-text.version>1.15.0</commons-text.version>
    <protobuf-plugin.version>5.0.2</protobuf-plugin.version>
    <cassandra-driver.version>4.19.2</cassandra-driver.version>
    <commons-exec.version>1.6.0</commons-exec.version>
    <commons-pool2.version>2.13.1</commons-pool2.version>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.jetbrains</groupId>
        <artifactId>annotations</artifactId>
        <version>${jetbrains-annotations.version}</version>
      </dependency>
      <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>${jaxb.runtime.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-bom</artifactId>
        <version>${jetty.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>com.google.protobuf</groupId>
        <artifactId>protobuf-bom</artifactId>
        <version>${protobuf.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>io.grpc</groupId>
        <artifactId>grpc-bom</artifactId>
        <version>${grpc.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>io.grpc</groupId>
        <artifactId>grpc-kotlin-stub</artifactId>
        <version>${grpc.kotlin.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
      </dependency>
      <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lombok.version}</version>
        <scope>provided</scope>
        <optional>true</optional>
      </dependency>
      <dependency>
        <groupId>com.google.errorprone</groupId>
        <artifactId>error_prone_annotations</artifactId>
        <version>${error-prone.version}</version>
      </dependency>
      <dependency>
        <groupId>org.junit</groupId>
        <artifactId>junit-bom</artifactId>
        <version>${junit5.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit4.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>${assertj.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest</artifactId>
        <version>${hamcrest.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-junit-jupiter</artifactId>
        <version>${mockito.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>net.bytebuddy</groupId>
        <artifactId>byte-buddy</artifactId>
        <version>${bytebuddy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm-bom</artifactId>
        <version>${asm.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${commons-lang3.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-collections4</artifactId>
        <version>${commons-collections4.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-math3</artifactId>
        <version>${commons-math3.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-compress</artifactId>
        <version>${commons-compress.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-pool2</artifactId>
        <version>${commons-pool2.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>${commons-codec.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-dbcp2</artifactId>
        <version>${commons-dbcp.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-exec</artifactId>
        <version>${commons-exec.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-email</artifactId>
        <version>${commons-email.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-proxy</artifactId>
        <version>${commons-proxy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-text</artifactId>
        <version>${commons-text.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${commons-io.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>${logback.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-access</artifactId>
        <version>${logback.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback.access</groupId>
        <artifactId>logback-access-common</artifactId>
        <version>${logback.access.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback.access</groupId>
        <artifactId>logback-access-jetty11</artifactId>
        <version>${logback.access.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback.access</groupId>
        <artifactId>logback-access-jetty12</artifactId>
        <version>${logback.access.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback.access</groupId>
        <artifactId>logback-access-tomcat</artifactId>
        <version>${logback.access.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-nop</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-jdk14</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-jcl</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-ext</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>osgi-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson</groupId>
        <artifactId>jackson-bom</artifactId>
        <version>${jackson2.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongodb-driver-sync</artifactId>
        <version>${mongo-driver.version}</version>
      </dependency>
      <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
        <version>${mysql-driver.version}</version>
      </dependency>
      <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>${postgresql-driver.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.cassandra</groupId>
        <artifactId>java-driver-bom</artifactId>
        <version>${cassandra-driver.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>jakarta.activation</groupId>
        <artifactId>jakarta.activation-api</artifactId>
        <version>${jakarta.activation-api.version}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.annotation</groupId>
        <artifactId>jakarta.annotation-api</artifactId>
        <version>${jakarta.annotation-api.version}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.inject</groupId>
        <artifactId>jakarta.inject-api</artifactId>
        <version>${jakarta.inject-api.version}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.persistence</groupId>
        <artifactId>jakarta.persistence-api</artifactId>
        <version>${jakarta.persistence-api.version}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId>
        <version>${jakarta.servlet-api.version}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.validation</groupId>
        <artifactId>jakarta.validation-api</artifactId>
        <version>${jakarta.validation-api.version}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.ws.rs</groupId>
        <artifactId>jakarta.ws.rs-api</artifactId>
        <version>${jakarta.ws.rs-api.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>${jacoco.plugin.version}</version>
          <executions>
            <execution>
              <id>instrument-coverage</id>
              <phase>initialize</phase>
              <goals>
                <goal>prepare-agent</goal>
              </goals>
            </execution>
            <execution>
              <id>coverage-report</id>
              <phase>prepare-package</phase>
              <goals>
                <goal>report</goal>
              </goals>
            </execution>
            <execution>
              <id>coverage-check</id>
              <phase>verify</phase>
              <goals>
                <goal>check</goal>
              </goals>
              <configuration>
                <rules>
                  <rule>
                    <element>CLASS</element>
                    <excludes>
                      <exclude>*Test</exclude>
                    </excludes>
                    <limits>
                      <limit>
                        <counter>INSTRUCTION</counter>
                        <value>COVEREDRATIO</value>
                        <minimum>0.50</minimum>
                      </limit>
                      <limit>
                        <counter>BRANCH</counter>
                        <value>COVEREDRATIO</value>
                        <minimum>0.50</minimum>
                      </limit>
                    </limits>
                  </rule>
                </rules>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok-maven-plugin</artifactId>
          <version>${lombok.plugin.version}</version>
          <executions>
            <execution>
              <id>delombok-sources</id>
              <goals>
                <goal>delombok</goal>
              </goals>
              <configuration>
                <addOutputDirectory>false</addOutputDirectory>
                <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
              </configuration>
            </execution>
            <execution>
              <id>delombok-test-sources</id>
              <goals>
                <goal>testDelombok</goal>
              </goals>
              <configuration>
                <addOutputDirectory>false</addOutputDirectory>
                <sourceDirectory>${project.build.testSourceDirectory}</sourceDirectory>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <compilerArgs>
              <arg>-parameters</arg>
              <arg>-XDcompilePolicy=simple</arg>
            </compilerArgs>
            <annotationProcessorPaths>
              <path>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
              </path>
              <path>
                <groupId>org.apache.cassandra</groupId>
                <artifactId>java-driver-mapper-processor</artifactId>
                <version>${cassandra-driver.version}</version>
              </path>
            </annotationProcessorPaths>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.jetbrains.kotlin</groupId>
          <artifactId>kotlin-maven-plugin</artifactId>
          <version>${kotlin.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.jetbrains.dokka</groupId>
          <artifactId>dokka-maven-plugin</artifactId>
          <version>${dokka.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>com.google.cloud.tools</groupId>
          <artifactId>jib-maven-plugin</artifactId>
          <version>${jib.plugin.version}</version>
          <configuration>
            <extraDirectories>
              <paths>
                <path>${project.basedir}/src/main/container</path>
              </paths>
            </extraDirectories>
          </configuration>
        </plugin>
        <plugin>
          <groupId>io.github.ascopes</groupId>
          <artifactId>protobuf-maven-plugin</artifactId>
          <version>${protobuf-plugin.version}</version>
          <configuration>
            <kotlinEnabled>true</kotlinEnabled>
            <protoc>${protobuf.version}</protoc>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-source-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>error-prone</id>
      <activation>
        <jdk>[8,25]</jdk>
        <property>
          <name>error-prone</name>
          <value>!false</value>
        </property>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <configuration>
                <compilerArgs combine.children="append">
                  <arg>-Xplugin:ErrorProne -Xep:UnusedVariable:OFF</arg>
                </compilerArgs>
                <annotationProcessorPaths combine.children="append">
                  <path>
                    <groupId>com.google.errorprone</groupId>
                    <artifactId>error_prone_core</artifactId>
                    <version>${error-prone.version}</version>
                  </path>
                </annotationProcessorPaths>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile>
      <id>kotlin-java</id>
      <activation>
        <file>
          <exists>src/main/kotlin/</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>add-kotlin-source-dirs</id>
                <phase>generate-sources</phase>
                <goals>
                  <goal>add-source</goal>
                </goals>
                <configuration>
                  <sources>
                    <source>${project.basedir}/src/main/kotlin</source>
                  </sources>
                </configuration>
              </execution>
              <execution>
                <id>add-kotlin-test-source-dirs</id>
                <phase>generate-test-sources</phase>
                <goals>
                  <goal>add-test-source</goal>
                </goals>
                <configuration>
                  <sources>
                    <source>${project.basedir}/src/test/kotlin</source>
                  </sources>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-maven-plugin</artifactId>
            <extensions>true</extensions>
            <dependencies>
              <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-maven-serialization</artifactId>
                <version>${kotlin.plugin.version}</version>
              </dependency>
              <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-maven-allopen</artifactId>
                <version>${kotlin.plugin.version}</version>
              </dependency>
              <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-maven-noarg</artifactId>
                <version>${kotlin.plugin.version}</version>
              </dependency>
            </dependencies>
            <configuration>
              <args>
                <arg>-Xname-based-destructuring=complete</arg>
              </args>
              <compilerPlugins>
                <plugin>kotlinx-serialization</plugin>
                <plugin>all-open</plugin>
                <plugin>spring</plugin>
                <plugin>no-arg</plugin>
                <plugin>jpa</plugin>
              </compilerPlugins>
              <javaParameters>true</javaParameters>
              <jvmTarget>${java.version}</jvmTarget>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.jetbrains.dokka</groupId>
            <artifactId>dokka-maven-plugin</artifactId>
            <executions>
              <execution>
                <phase>pre-site</phase>
                <goals>
                  <goal>dokka</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <phase>none</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      <properties>
        <kotlin.experimental>true</kotlin.experimental>
        <kotlin.compiler.languageVersion>${kotlin.release}</kotlin.compiler.languageVersion>
        <kotlin.compiler.apiVersion>${kotlin.release}</kotlin.compiler.apiVersion>
      </properties>
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>zone.dragon</groupId>
            <artifactId>kotlin-${kotlin.release}-deps</artifactId>
            <version>5.0.19</version>
            <type>pom</type>
            <scope>import</scope>
          </dependency>
        </dependencies>
      </dependencyManagement>
      <pluginRepositories>
        <pluginRepository>
          <id>jcenter</id>
          <name>JCenter</name>
          <url>https://jcenter.bintray.com/</url>
        </pluginRepository>
        <pluginRepository>
          <id>kotlin-eap</id>
          <name>Kotlin EAP</name>
          <url>http://dl.bintray.com/kotlin/kotlin-eap/</url>
        </pluginRepository>
      </pluginRepositories>
    </profile>
    <profile>
      <id>java-9-support</id>
      <activation>
        <jdk>[9</jdk>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <artifactId>maven-javadoc-plugin</artifactId>
              <configuration>
                <additionalOptions combine.children="append">
                  <additionalOption>-html5</additionalOption>
                </additionalOptions>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile>
      <id>protobuf-kotlin</id>
      <activation>
        <file>
          <exists>${basedir}/src/main/protobuf/</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>io.github.ascopes</groupId>
            <artifactId>protobuf-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>generate-protobuf-stubs</id>
                <phase>generate-sources</phase>
                <goals>
                  <goal>generate</goal>
                </goals>
              </execution>
              <execution>
                <id>generate-protobuf-test-stubs</id>
                <phase>generate-test-sources</phase>
                <goals>
                  <goal>generate-test</goal>
                </goals>
                <configuration>
                  <failOnMissingSources>false</failOnMissingSources>
                  <importPaths>
                    <path>${project.basedir}/src/main/protobuf</path>
                  </importPaths>
                </configuration>
              </execution>
            </executions>
            <configuration>
              <kotlinEnabled>true</kotlinEnabled>
              <plugins>
                <plugin kind="binary-maven">
                  <groupId>io.grpc</groupId>
                  <artifactId>protoc-gen-grpc-java</artifactId>
                  <version>${grpc.version}</version>
                </plugin>
                <plugin kind="jvm-maven">
                  <groupId>io.grpc</groupId>
                  <artifactId>protoc-gen-grpc-kotlin</artifactId>
                  <classifier>jdk8</classifier>
                  <version>${grpc.kotlin.version}</version>
                  <mainClass>io.grpc.kotlin.generator.GeneratorRunner</mainClass>
                </plugin>
              </plugins>
            </configuration>
          </plugin>
        </plugins>
      </build>
      <dependencies>
        <dependency>
          <groupId>com.google.protobuf</groupId>
          <artifactId>protobuf-kotlin</artifactId>
        </dependency>
        <dependency>
          <groupId>com.google.protobuf</groupId>
          <artifactId>protobuf-java</artifactId>
        </dependency>
        <dependency>
          <groupId>org.jetbrains</groupId>
          <artifactId>annotations</artifactId>
        </dependency>
        <dependency>
          <groupId>org.jetbrains.kotlin</groupId>
          <artifactId>kotlin-stdlib</artifactId>
        </dependency>
      </dependencies>
    </profile>
  </profiles>
</project>
