<?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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.alibaba</groupId>
  <artifactId>transmittable-thread-local</artifactId>
  <name>TransmittableThreadLocal(TTL)</name>
  <version>2.14.5</version>
  <description>&#x1f4cc; The missing Java™ std lib(simple &amp; 0-dependency) for framework/middleware,
        provide an enhanced InheritableThreadLocal that transmits values between threads even using thread pooling components.</description>
  <url>https://github.com/alibaba/transmittable-thread-local</url>
  <issueManagement>
    <system>GitHub Issues</system>
    <url>https://github.com/alibaba/transmittable-thread-local/issues</url>
  </issueManagement>
  <ciManagement>
    <system>GitHub Actions</system>
    <url>https://github.com/alibaba/transmittable-thread-local/actions</url>
  </ciManagement>
  <inceptionYear>2013</inceptionYear>
  <developers>
    <developer>
      <id>oldratlee</id>
      <name>Jerry Lee</name>
      <email>oldratlee(AT)gmail(DOT)com</email>
      <url>https://github.com/oldratlee</url>
      <organization>Alibaba</organization>
      <organizationUrl>https://www.alibaba.com</organizationUrl>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone>+8</timezone>
    </developer>
    <developer>
      <id>driventokill</id>
      <name>Yang Fang</name>
      <email>snoop(DOT)fy(AT)gmail(DOT)com</email>
      <url>https://github.com/driventokill</url>
      <organization>Alibaba</organization>
      <organizationUrl>https://www.alibaba.com</organizationUrl>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone>+8</timezone>
    </developer>
    <developer>
      <id>wuwen5</id>
      <name>wuwen</name>
      <email>wuwen.55(AT)aliyun(DOT)com</email>
      <url>https://github.com/wuwen5</url>
      <organization>ofpay</organization>
      <organizationUrl>https://www.ofpay.com</organizationUrl>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone>+8</timezone>
    </developer>
    <developer>
      <id>LNAmp</id>
      <name>David Dai</name>
      <email>351450944(AT)qq(DOT)com</email>
      <url>https://github.com/LNAmp</url>
      <organization>Alibaba</organization>
      <organizationUrl>https://www.alibaba.com</organizationUrl>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone>+8</timezone>
    </developer>
  </developers>
  <licenses>
    <license>
      <name>Apache 2</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
      <comments>A business-friendly OSS license</comments>
    </license>
  </licenses>
  <scm>
    <connection>scm:git:git@github.com:alibaba/transmittable-thread-local.git</connection>
    <developerConnection>scm:git:git@github.com:alibaba/transmittable-thread-local.git</developerConnection>
    <url>https://github.com/alibaba/transmittable-thread-local</url>
  </scm>
  <organization>
    <name>Alibaba</name>
    <url>https://www.alibaba.com</url>
  </organization>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.3.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.3.1</version>
        </plugin>
        <plugin>
          <groupId>org.jetbrains.kotlin</groupId>
          <artifactId>kotlin-maven-plugin</artifactId>
          <version>${kotlin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.12.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>3.2.3</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.3.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-shade-plugin</artifactId>
          <version>3.5.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-source-plugin</artifactId>
          <version>3.3.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>3.6.3</version>
        </plugin>
        <plugin>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.12.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>3.1.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>3.1.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>3.4.1</version>
        </plugin>
        <plugin>
          <groupId>io.github.git-commit-id</groupId>
          <artifactId>git-commit-id-maven-plugin</artifactId>
          <version>7.0.0</version>
        </plugin>
        <plugin>
          <groupId>com.github.spotbugs</groupId>
          <artifactId>spotbugs-maven-plugin</artifactId>
          <version>4.8.2.0</version>
        </plugin>
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>0.8.11</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>3.1.1</version>
          <configuration>
            <executable>${java.home}/bin/java</executable>
            <classpathScope>test</classpathScope>
            <arguments>
              <argument>-Xmx1g</argument>
              <argument>-Xms256m</argument>
              <argument>-ea</argument>
              <argument>-server</argument>
              <argument>-Duser.language=en</argument>
              <argument>-Duser.country=US</argument>
              <argument>-classpath</argument>
              <classpath />
              <argument>${exec.mainClass}</argument>
            </arguments>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.sonatype.plugins</groupId>
          <artifactId>nexus-staging-maven-plugin</artifactId>
          <version>1.6.13</version>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>compile</id>
            <goals>
              <goal>compile</goal>
            </goals>
            <configuration>
              <sourceDirs>
                <sourceDir>${project.basedir}/src/main/java</sourceDir>
              </sourceDirs>
            </configuration>
          </execution>
          <execution>
            <id>test-compile</id>
            <goals>
              <goal>test-compile</goal>
            </goals>
            <configuration>
              <sourceDirs>
                <sourceDir>${project.basedir}/src/test/java</sourceDir>
              </sourceDirs>
            </configuration>
          </execution>
        </executions>
      </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>java-compile</id>
            <phase>compile</phase>
            <goals>
              <goal>compile</goal>
            </goals>
          </execution>
          <execution>
            <id>java-test-compile</id>
            <phase>test-compile</phase>
            <goals>
              <goal>testCompile</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifestEntries>
              <Premain-Class>com.alibaba.ttl.threadpool.agent.TtlAgent</Premain-Class>
              <Boot-Class-Path>${project.build.finalName}.jar</Boot-Class-Path>
              <Can-Redefine-Classes>false</Can-Redefine-Classes>
              <Can-Retransform-Classes>true</Can-Retransform-Classes>
              <Can-Set-Native-Method-Prefix>false</Can-Set-Native-Method-Prefix>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
          <execution>
            <id>shade-when-package</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <relocations>
                <relocation>
                  <pattern>javassist</pattern>
                  <shadedPattern>com.alibaba.ttl.threadpool.agent.internal.javassist</shadedPattern>
                </relocation>
              </relocations>
              <artifactSet>
                <includes>
                  <include>org.javassist:javassist</include>
                </includes>
              </artifactSet>
              <filters>
                <filter>
                  <artifact>org.javassist:javassist</artifact>
                  <excludes>
                    <exclude>META-INF/MANIFEST.MF</exclude>
                  </excludes>
                </filter>
              </filters>
              <shadeSourcesContent>true</shadeSourcesContent>
              <dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <id>enforces</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>3.6.3</version>
                </requireMavenVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>config-for-jdk16+</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <excludes>
                <exclude>**/*$*</exclude>
                <exclude>**/JavassistTest*</exclude>
              </excludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>enable-ttl-agent-for-test</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <forkCount>1</forkCount>
              <redirectTestOutputToFile>true</redirectTestOutputToFile>
              <classpathDependencyExcludes>
                <classpathDependencyExclude>org.javassist:javassist</classpathDependencyExclude>
                <classpathDependencyExclude>com.github.spotbugs:spotbugs-annotations</classpathDependencyExclude>
                <classpathDependencyExclude>com.google.code.findbugs:jsr305</classpathDependencyExclude>
                <classpathDependencyExclude>org.jetbrains:annotations</classpathDependencyExclude>
              </classpathDependencyExcludes>
              <argLine>@{argLine} ${ttl.agent.jvm.args}</argLine>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <configuration>
              <arguments>
                <argument>-Xmx1g</argument>
                <argument>-Xms256m</argument>
                <argument>-ea</argument>
                <argument>-server</argument>
                <argument>-Duser.language=en</argument>
                <argument>-Duser.country=US</argument>
                <argument>${ttl.agent.jvm.arg}</argument>
                <argument>-classpath</argument>
                <classpath />
                <argument>${exec.mainClass}</argument>
              </arguments>
            </configuration>
          </plugin>
        </plugins>
      </build>
      <properties>
        <exec.mainClass>com.alibaba.demo.ttl.agent.AgentDemo</exec.mainClass>
        <ttl.built.agent.jar>${project.build.directory}/${project.artifactId}-${project.version}.jar</ttl.built.agent.jar>
        <ttl.agent.args>ttl.agent.logger:STDOUT</ttl.agent.args>
        <ttl.agent.jvm.arg>-javaagent:${ttl.built.agent.jar}=${ttl.agent.args},${ttl.agent.extra.args}</ttl.agent.jvm.arg>
        <ttl.agent.jvm.args>-Drun-ttl-test-under-agent=true ${ttl.agent.extra.d.options} ${ttl.agent.jvm.arg}</ttl.agent.jvm.args>
      </properties>
    </profile>
    <profile>
      <id>gen-src</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-source-plugin</artifactId>
            <configuration>
              <attach>false</attach>
            </configuration>
          </plugin>
          <plugin>
            <artifactId>maven-shade-plugin</artifactId>
            <executions>
              <execution>
                <id>shade-when-package</id>
                <configuration>
                  <createSourcesJar>true</createSourcesJar>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>gen-api-doc</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
              <source>8</source>
              <show>protected</show>
              <charset>UTF-8</charset>
              <encoding>UTF-8</encoding>
              <docencoding>UTF-8</docencoding>
              <quiet>true</quiet>
              <doclint>all,-missing</doclint>
              <overview>${project.basedir}/src/main/javadoc/overview.html</overview>
              <excludePackageNames>${javadoc.default.exclude.packages}</excludePackageNames>
              <detectOfflineLinks>false</detectOfflineLinks>
              <sourceFileExcludes>
                <sourceFilesourceFileExclude>com/alibaba/ttl/TtlEnhanced.java</sourceFilesourceFileExclude>
              </sourceFileExcludes>
              <additionalOptions>
                <additionalOption>-html5</additionalOption>
                <additionalOption>-linkoffline</additionalOption>
                <additionalOption>https://www.javadoc.io/doc/com.github.spotbugs/spotbugs-annotations/${spotbugs.annotations.version}/</additionalOption>
                <additionalOption>${javadoc.package.list.dir}/spotbugs-annotations/</additionalOption>
                <additionalOption>-linkoffline</additionalOption>
                <additionalOption>https://www.javadoc.io/doc/org.jetbrains/annotations/${jetbrains.annotations.version}/</additionalOption>
                <additionalOption>${javadoc.package.list.dir}/jetbrains-annotations/</additionalOption>
                <additionalOption>-linkoffline</additionalOption>
                <additionalOption>https://www.javadoc.io/doc/com.google.code.findbugs/jsr305/${jsr305.version}/</additionalOption>
                <additionalOption>${javadoc.package.list.dir}/jsr305/</additionalOption>
                <additionalOption>-linkoffline</additionalOption>
                <additionalOption>https://docs.oracle.com/en/java/javase/21/docs/api/java.base/</additionalOption>
                <additionalOption>${javadoc.package.list.dir}/java/</additionalOption>
              </additionalOptions>
              <additionalJOptions>
                <additionalJOption>-J-Duser.language=en</additionalJOption>
                <additionalJOption>-J-Duser.country=US</additionalJOption>
              </additionalJOptions>
            </configuration>
          </plugin>
        </plugins>
      </build>
      <properties>
        <javadoc.default.exclude.packages>*.internal:*.internal.*:*.internal.*.*:*.internal.*.*.*:*.internal.*.*.*.*</javadoc.default.exclude.packages>
        <javadoc.package.list.dir>${maven.multiModuleProjectDirectory}/src/package-list</javadoc.package.list.dir>
      </properties>
    </profile>
    <profile>
      <id>gen-sign</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-gpg-plugin</artifactId>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>lint</id>
      <build>
        <plugins>
          <plugin>
            <groupId>com.github.spotbugs</groupId>
            <artifactId>spotbugs-maven-plugin</artifactId>
            <executions>
              <execution>
                <phase>test-compile</phase>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>gen-git-properties</id>
      <build>
        <plugins>
          <plugin>
            <groupId>io.github.git-commit-id</groupId>
            <artifactId>git-commit-id-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>get-the-git-infos</id>
                <goals>
                  <goal>revision</goal>
                </goals>
              </execution>
              <execution>
                <id>validate-the-git-infos</id>
                <goals>
                  <goal>validateRevision</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <validationProperties>
                <validationProperty>
                  <name>validating git dirty</name>
                  <value>${git.dirty}</value>
                  <shouldMatchTo>false</shouldMatchTo>
                </validationProperty>
              </validationProperties>
              <generateGitPropertiesFile>true</generateGitPropertiesFile>
              <generateGitPropertiesFilename>${project.build.outputDirectory}/META-INF/scm/${project.groupId}/${project.artifactId}/git.properties</generateGitPropertiesFilename>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>gen-code-cov</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>prepare-agent</goal>
                </goals>
                <configuration>
                  <append>true</append>
                </configuration>
              </execution>
              <execution>
                <id>report</id>
                <phase>test</phase>
                <goals>
                  <goal>report</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <excludes>
                <exclude>com/alibaba/ttl/threadpool/agent/**/*.class</exclude>
                <exclude>com/alibaba/ttl/TtlTimerTask.class</exclude>
              </excludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>enforce-when-release</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-enforcer-plugin</artifactId>
            <executions>
              <execution>
                <id>enforces</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <configuration>
                  <rules>
                    <requireJavaVersion>
                      <version>17</version>
                    </requireJavaVersion>
                    <requireProperty>
                      <property>project.version</property>
                      <regex>^\d\.\d+\.\d+(-(Alpha|Beta|RC)\d+)?$|^\d(\.\d+)?\.(\d+|x)-SNAPSHOT$</regex>
                      <regexMessage>"Project version(${project.version}) format is invalid!"</regexMessage>
                    </requireProperty>
                    <enforceBytecodeVersion>
                      <maxJdkVersion>${maven.compiler.source}</maxJdkVersion>
                    </enforceBytecodeVersion>
                  </rules>
                </configuration>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>extra-enforcer-rules</artifactId>
                <version>1.7.0</version>
                <scope>compile</scope>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>deploy-settings</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>
        </plugins>
      </build>
    </profile>
  </profiles>
  <dependencies>
    <dependency>
      <groupId>com.github.spotbugs</groupId>
      <artifactId>spotbugs-annotations</artifactId>
      <version>4.8.3</version>
      <scope>compile</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>com.google.code.findbugs</groupId>
      <artifactId>jsr305</artifactId>
      <version>3.0.2</version>
      <scope>compile</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.jetbrains</groupId>
      <artifactId>annotations</artifactId>
      <version>24.1.0</version>
      <scope>compile</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.14.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jetbrains.kotlinx</groupId>
      <artifactId>kotlinx-coroutines-core-jvm</artifactId>
      <version>1.7.3</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>kotlin-stdlib-common</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlin-stdlib-jdk8</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.reactivex.rxjava2</groupId>
      <artifactId>rxjava</artifactId>
      <version>2.2.21</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>reactive-streams</artifactId>
          <groupId>org.reactivestreams</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.reactivex.rxjava2</groupId>
      <artifactId>rxkotlin</artifactId>
      <version>2.4.0</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>kotlin-stdlib</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-simple</artifactId>
      <version>1.7.36</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>slf4j-api</artifactId>
          <groupId>org.slf4j</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.github.microutils</groupId>
      <artifactId>kotlin-logging-jvm</artifactId>
      <version>3.0.5</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>slf4j-api</artifactId>
          <groupId>org.slf4j</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlin-stdlib-jdk8</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlin-stdlib-common</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.kotest</groupId>
      <artifactId>kotest-runner-junit4-jvm</artifactId>
      <version>5.8.0</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>kotest-common-jvm</artifactId>
          <groupId>io.kotest</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotest-framework-api-jvm</artifactId>
          <groupId>io.kotest</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotest-assertions-shared-jvm</artifactId>
          <groupId>io.kotest</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotest-framework-engine-jvm</artifactId>
          <groupId>io.kotest</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotest-framework-discovery-jvm</artifactId>
          <groupId>io.kotest</groupId>
        </exclusion>
        <exclusion>
          <artifactId>junit</artifactId>
          <groupId>junit</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlin-stdlib-jdk8</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlin-stdlib-common</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.kotest</groupId>
      <artifactId>kotest-runner-junit5-jvm</artifactId>
      <version>5.8.0</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>kotest-extensions-jvm</artifactId>
          <groupId>io.kotest</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotest-framework-concurrency-jvm</artifactId>
          <groupId>io.kotest</groupId>
        </exclusion>
        <exclusion>
          <artifactId>junit-platform-engine</artifactId>
          <groupId>org.junit.platform</groupId>
        </exclusion>
        <exclusion>
          <artifactId>junit-platform-suite-api</artifactId>
          <groupId>org.junit.platform</groupId>
        </exclusion>
        <exclusion>
          <artifactId>junit-platform-launcher</artifactId>
          <groupId>org.junit.platform</groupId>
        </exclusion>
        <exclusion>
          <artifactId>junit-jupiter-api</artifactId>
          <groupId>org.junit.jupiter</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlin-reflect</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotest-framework-api-jvm</artifactId>
          <groupId>io.kotest</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotest-common-jvm</artifactId>
          <groupId>io.kotest</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotest-framework-engine-jvm</artifactId>
          <groupId>io.kotest</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotest-framework-discovery-jvm</artifactId>
          <groupId>io.kotest</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlin-stdlib-jdk8</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlin-stdlib-common</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.kotest</groupId>
      <artifactId>kotest-assertions-core-jvm</artifactId>
      <version>5.8.0</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>kotlinx-coroutines-jdk8</artifactId>
          <groupId>org.jetbrains.kotlinx</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotest-assertions-api-jvm</artifactId>
          <groupId>io.kotest</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotest-assertions-shared-jvm</artifactId>
          <groupId>io.kotest</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlin-reflect</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotest-common-jvm</artifactId>
          <groupId>io.kotest</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlin-stdlib-jdk8</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlin-stdlib-common</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.kotest</groupId>
      <artifactId>kotest-property-jvm</artifactId>
      <version>5.8.0</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>rgxgen</artifactId>
          <groupId>com.github.curious-odd-man</groupId>
        </exclusion>
        <exclusion>
          <artifactId>java-diff-utils</artifactId>
          <groupId>io.github.java-diff-utils</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotest-assertions-shared-jvm</artifactId>
          <groupId>io.kotest</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlin-reflect</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotest-common-jvm</artifactId>
          <groupId>io.kotest</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlin-stdlib-jdk8</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlin-stdlib-common</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.mockk</groupId>
      <artifactId>mockk-jvm</artifactId>
      <version>1.13.7</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>mockk-dsl-jvm</artifactId>
          <groupId>io.mockk</groupId>
        </exclusion>
        <exclusion>
          <artifactId>mockk-agent-jvm</artifactId>
          <groupId>io.mockk</groupId>
        </exclusion>
        <exclusion>
          <artifactId>mockk-agent-api-jvm</artifactId>
          <groupId>io.mockk</groupId>
        </exclusion>
        <exclusion>
          <artifactId>mockk-core-jvm</artifactId>
          <groupId>io.mockk</groupId>
        </exclusion>
        <exclusion>
          <artifactId>junit-jupiter</artifactId>
          <groupId>org.junit.jupiter</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlinx-coroutines-core</artifactId>
          <groupId>org.jetbrains.kotlinx</groupId>
        </exclusion>
        <exclusion>
          <artifactId>junit</artifactId>
          <groupId>junit</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlin-reflect</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlin-stdlib-jdk8</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
        <exclusion>
          <artifactId>kotlin-stdlib-common</artifactId>
          <groupId>org.jetbrains.kotlin</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
      <version>5.10.1</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>apiguardian-api</artifactId>
          <groupId>org.apiguardian</groupId>
        </exclusion>
        <exclusion>
          <artifactId>junit-platform-engine</artifactId>
          <groupId>org.junit.platform</groupId>
        </exclusion>
        <exclusion>
          <artifactId>junit-jupiter-api</artifactId>
          <groupId>org.junit.jupiter</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.junit.vintage</groupId>
      <artifactId>junit-vintage-engine</artifactId>
      <version>5.10.1</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>apiguardian-api</artifactId>
          <groupId>org.apiguardian</groupId>
        </exclusion>
        <exclusion>
          <artifactId>junit-platform-engine</artifactId>
          <groupId>org.junit.platform</groupId>
        </exclusion>
        <exclusion>
          <artifactId>junit</artifactId>
          <groupId>junit</groupId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>net.bytebuddy</groupId>
        <artifactId>byte-buddy-parent</artifactId>
        <version>1.14.11</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-bom</artifactId>
        <version>${kotlin.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.jetbrains.kotlinx</groupId>
        <artifactId>kotlinx-coroutines-bom</artifactId>
        <version>${kotlin.coroutine.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.junit</groupId>
        <artifactId>junit-bom</artifactId>
        <version>${junit5.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>com.github.spotbugs</groupId>
        <artifactId>spotbugs-annotations</artifactId>
        <version>${spotbugs.annotations.version}</version>
        <optional>true</optional>
      </dependency>
      <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>jsr305</artifactId>
        <version>${jsr305.version}</version>
        <optional>true</optional>
      </dependency>
      <dependency>
        <groupId>org.jetbrains</groupId>
        <artifactId>annotations</artifactId>
        <version>${jetbrains.annotations.version}</version>
        <optional>true</optional>
      </dependency>
      <dependency>
        <groupId>org.javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>3.30.2-GA</version>
        <optional>true</optional>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.14.0</version>
      </dependency>
      <dependency>
        <groupId>io.reactivex.rxjava2</groupId>
        <artifactId>rxjava</artifactId>
        <version>2.2.21</version>
      </dependency>
      <dependency>
        <groupId>io.reactivex.rxjava2</groupId>
        <artifactId>rxkotlin</artifactId>
        <version>2.4.0</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>${slf4j.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>io.github.microutils</groupId>
        <artifactId>kotlin-logging-jvm</artifactId>
        <version>3.0.5</version>
      </dependency>
      <dependency>
        <groupId>io.kotest</groupId>
        <artifactId>kotest-runner-junit4-jvm</artifactId>
        <version>${kotest.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>io.kotest</groupId>
        <artifactId>kotest-runner-junit5-jvm</artifactId>
        <version>${kotest.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>io.kotest</groupId>
        <artifactId>kotest-assertions-core-jvm</artifactId>
        <version>${kotest.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>io.kotest</groupId>
        <artifactId>kotest-property-jvm</artifactId>
        <version>${kotest.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>io.mockk</groupId>
        <artifactId>mockk-jvm</artifactId>
        <version>1.13.7</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <distributionManagement>
    <snapshotRepository>
      <id>ossrh</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>
  </distributionManagement>
  <properties>
    <jsr305.version>3.0.2</jsr305.version>
    <kotlin.version>1.9.22</kotlin.version>
    <spotbugs.annotations.version>4.8.3</spotbugs.annotations.version>
    <junit5.version>5.10.1</junit5.version>
    <kotest.version>5.8.0</kotest.version>
    <ttl.test.logger.level>warn</ttl.test.logger.level>
    <jetbrains.annotations.version>24.1.0</jetbrains.annotations.version>
    <slf4j.version>1.7.36</slf4j.version>
    <argLine.slf4j.simple.logger.default.d.options>-Dorg.slf4j.simpleLogger.logFile=System.err -Dorg.slf4j.simpleLogger.defaultLogLevel=${ttl.test.logger.level}</argLine.slf4j.simple.logger.default.d.options>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <kotlin.coroutine.version>1.7.3</kotlin.coroutine.version>
    <argLine.slf4j.simple.logger.d.options>${argLine.slf4j.simple.logger.default.d.options} ${argLine.slf4j.simple.logger.extra.d.options}</argLine.slf4j.simple.logger.d.options>
    <maven.compiler.source>1.8</maven.compiler.source>
    <kotlin.compiler.jvmTarget>${maven.compiler.source}</kotlin.compiler.jvmTarget>
    <maven.compiler.target>${maven.compiler.source}</maven.compiler.target>
    <argLine>${argLine.slf4j.simple.logger.d.options}</argLine>
  </properties>
</project>
