<?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.10</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-maven-plugin-pom</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>
  </modules>
  <properties>
    <maven.compiler.release>${java.version}</maven.compiler.release>
    <jetbrains-annotations.version>23.0.0</jetbrains-annotations.version>
    <jakarta.validation-api.version>3.0.2</jakarta.validation-api.version>
    <junit4.version>4.13.2</junit4.version>
    <jacoco.plugin.version>0.8.8</jacoco.plugin.version>
    <junit5.version>5.9.3</junit5.version>
    <jackson2.version>2.14.2</jackson2.version>
    <mongo-driver.version>3.12.12</mongo-driver.version>
    <jetty.version>11.0.14</jetty.version>
    <commons-math3.version>3.6.1</commons-math3.version>
    <guava.version>32.0.0-jre</guava.version>
    <hamcrest.version>2.2</hamcrest.version>
    <dokka.plugin.version>1.8.10</dokka.plugin.version>
    <commons-beanutils.version>1.9.4</commons-beanutils.version>
    <lombok.plugin.version>1.18.20.0</lombok.plugin.version>
    <commons-dbcp.version>2.9.0</commons-dbcp.version>
    <jakarta.servlet-api.version>6.0.0</jakarta.servlet-api.version>
    <slf4j.version>2.0.7</slf4j.version>
    <commons-proxy.version>1.0</commons-proxy.version>
    <commons-lang3.version>3.12.0</commons-lang3.version>
    <assertj.version>3.24.2</assertj.version>
    <commons-codec.version>1.15</commons-codec.version>
    <commons-collections4.version>4.4</commons-collections4.version>
    <commons-io.version>2.11.0</commons-io.version>
    <logback.version>1.4.6</logback.version>
    <error-prone.version>2.19.1</error-prone.version>
    <kotlin.release>1.9</kotlin.release>
    <commons-email.version>1.5</commons-email.version>
    <jakarta.persistance-api.version>3.1.0</jakarta.persistance-api.version>
    <jakarta.xml.bind-api.version>4.0.0</jakarta.xml.bind-api.version>
    <java.version>11</java.version>
    <jib.plugin.version>3.3.0</jib.plugin.version>
    <postgresql-driver.version>42.5.1</postgresql-driver.version>
    <mockito.version>5.2.0</mockito.version>
    <commons-compress.version>1.21</commons-compress.version>
    <mysql-driver.version>8.0.30</mysql-driver.version>
    <lombok.version>1.18.28</lombok.version>
    <jakarta.activation-api.version>2.1.1</jakarta.activation-api.version>
    <jakarta.inject-api.version>2.0.1</jakarta.inject-api.version>
    <jakarta.ws.rs-api.version>3.1.0</jakarta.ws.rs-api.version>
    <commons-text.version>1.10.0</commons-text.version>
    <jakarta.annotation-api.version>2.1.1</jakarta.annotation-api.version>
    <cassandra-driver.version>4.15.0</cassandra-driver.version>
    <jaxb.runtime.version>4.0.0</jaxb.runtime.version>
    <kotlin.plugin.version>1.8.21</kotlin.plugin.version>
    <commons-exec.version>1.3</commons-exec.version>
    <commons-pool2.version>2.11.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.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>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>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>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>mongo-java-driver</artifactId>
        <version>${mongo-driver.version}</version>
      </dependency>
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql-driver.version}</version>
      </dependency>
      <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>${postgresql-driver.version}</version>
      </dependency>
      <dependency>
        <groupId>com.datastax.oss</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.persistance</groupId>
        <artifactId>jakarta.persistance-api</artifactId>
        <version>${jakarta.persistance-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>com.datastax.oss</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>
      </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,17]</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.jetbrains.kotlin</groupId>
            <artifactId>kotlin-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>kapt</id>
                <goals>
                  <goal>kapt</goal>
                </goals>
              </execution>
              <execution>
                <id>compile-java</id>
                <goals>
                  <goal>kapt</goal>
                  <goal>compile</goal>
                </goals>
                <configuration>
                  <sourceDirs>
                    <sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
                    <sourceDir>${project.basedir}/src/main/java</sourceDir>
                  </sourceDirs>
                </configuration>
              </execution>
              <execution>
                <id>test-compile</id>
                <goals>
                  <goal>test-kapt</goal>
                  <goal>test-compile</goal>
                </goals>
                <configuration>
                  <sourceDirs>
                    <sourceDir>${project.basedir}/src/test/kotlin</sourceDir>
                    <sourceDir>${project.basedir}/src/test/java</sourceDir>
                  </sourceDirs>
                </configuration>
              </execution>
            </executions>
            <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>
              <compilerPlugins>
                <plugin>kotlinx-serialization</plugin>
                <plugin>all-open</plugin>
                <plugin>spring</plugin>
                <plugin>no-arg</plugin>
                <plugin>jpa</plugin>
              </compilerPlugins>
              <jvmTarget>${java.version}</jvmTarget>
            </configuration>
          </plugin>
          <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <executions>
              <execution>
                <id>default-compile</id>
                <phase>none</phase>
              </execution>
              <execution>
                <id>default-testCompile</id>
                <phase>none</phase>
              </execution>
              <execution>
                <id>kotlin-java-compile</id>
                <phase>compile</phase>
                <goals>
                  <goal>compile</goal>
                </goals>
              </execution>
              <execution>
                <id>kotlin-java-test-compile</id>
                <phase>test-compile</phase>
                <goals>
                  <goal>testCompile</goal>
                </goals>
              </execution>
            </executions>
          </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.10</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>kotlin-js</id>
      <activation>
        <property>
          <name>kotlin-js.enable</name>
          <value>true</value>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>kotlin-js-compile</id>
                <phase>compile</phase>
                <goals>
                  <goal>js</goal>
                </goals>
                <configuration>
                  <sourceDirs>${project.basedir}/src/main/kotlin</sourceDirs>
                  <outputFile>${project.build.outputDirectory}/${project.artifactId}.js</outputFile>
                  <sourceMap>true</sourceMap>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </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>toolchain-jdk-8</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>8</value>
        </property>
        <file>
          <exists>${user.home}/.m2/toolchains.xml</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-toolchains-plugin</artifactId>
            <executions>
              <execution>
                <id>toolchain-jdk-8</id>
                <goals>
                  <goal>toolchain</goal>
                </goals>
                <configuration>
                  <toolchains>
                    <jdk>
                      <version>[8,9)</version>
                    </jdk>
                  </toolchains>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>toolchain-jdk-11</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>11</value>
        </property>
        <file>
          <exists>${user.home}/.m2/toolchains.xml</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-toolchains-plugin</artifactId>
            <executions>
              <execution>
                <id>toolchain-jdk-11</id>
                <goals>
                  <goal>toolchain</goal>
                </goals>
                <configuration>
                  <toolchains>
                    <jdk>
                      <version>[11,12)</version>
                    </jdk>
                  </toolchains>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>toolchain-jdk-17</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>17</value>
        </property>
        <file>
          <exists>${user.home}/.m2/toolchains.xml</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-toolchains-plugin</artifactId>
            <executions>
              <execution>
                <id>toolchain-jdk-17</id>
                <goals>
                  <goal>toolchain</goal>
                </goals>
                <configuration>
                  <toolchains>
                    <jdk>
                      <version>[17,18)</version>
                    </jdk>
                  </toolchains>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
