<?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.amazonaws</groupId>
  <artifactId>aws-athena-query-federation</artifactId>
  <packaging>pom</packaging>
  <name>AWS Athena Query Federation</name>
  <version>2025.43.1</version>
  <description>The Amazon Athena Query Federation SDK allows you to customize Amazon Athena with your own code.</description>
  <url>https://github.com/awslabs/aws-athena-query-federation</url>
  <inceptionYear>2019</inceptionYear>
  <developers>
    <developer>
      <id>amazonwebservices</id>
      <organization>Amazon Web Services</organization>
      <organizationUrl>https://aws.amazon.com</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
    </developer>
  </developers>
  <licenses>
    <license>
      <name>Apache License 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <scm>
    <connection>scm:git@github.com:awslabs/aws-athena-query-federation.git</connection>
    <url>https://github.com/awslabs/aws-athena-query-federation</url>
  </scm>
  <organization>
    <name>Amazon Web Services</name>
    <url>https://https://aws.amazon.com//</url>
  </organization>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>3.9.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-shade-plugin</artifactId>
        <version>${mvn.shade.plugin.version}</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <artifactSet>
                <excludes>
                  <exclude>classworlds:classworlds</exclude>
                  <exclude>junit:junit</exclude>
                  <exclude>jmock:*</exclude>
                  <exclude>*:xml-apis</exclude>
                  <exclude>org.apache.maven:lib:tests</exclude>
                  <exclude>java.*</exclude>
                </excludes>
              </artifactSet>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.14</version>
        <executions>
          <execution>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <execution>
            <id>report</id>
            <phase>test</phase>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>${mvn.checkstyle.version}</version>
        <executions>
          <execution>
            <id>validate</id>
            <phase>validate</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <configLocation>checkstyle.xml</configLocation>
          <encoding>UTF-8</encoding>
          <consoleOutput>true</consoleOutput>
          <failsOnError>true</failsOnError>
          <linkXRef>false</linkXRef>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>license-maven-plugin</artifactId>
        <version>2.7.0</version>
        <executions>
          <execution>
            <id>first</id>
            <phase>process-sources</phase>
            <goals>
              <goal>update-file-header</goal>
            </goals>
            <configuration>
              <licenseName>apache_v2</licenseName>
              <roots>
                <root>src/main/java</root>
                <root>src/test</root>
              </roots>
            </configuration>
          </execution>
        </executions>
        <configuration>
          <verbose>false</verbose>
          <addSvnKeyWords>false</addSvnKeyWords>
          <addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${maven.compiler.plugin.version}</version>
        <configuration>
          <compilerArgs>
            <arg>-parameters</arg>
          </compilerArgs>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${surefire.failsafe.version}</version>
        <configuration>
          <excludes>
            <exclude>*IntegTest</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>${surefire.failsafe.version}</version>
        <configuration>
          <forkCount>3C</forkCount>
          <reuseForks>false</reuseForks>
          <includes>
            <include>*IntegTest</include>
          </includes>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${mvn.javadoc.plugin.version}</version>
        <configuration>
          <failOnError>false</failOnError>
          <notimestamp>true</notimestamp>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>java8</id>
      <properties>
        <maven.compiler.release>8</maven.compiler.release>
      </properties>
    </profile>
    <profile>
      <id>java17</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>${surefire.failsafe.version}</version>
            <configuration>
              <argLine>--add-opens=java.base/java.nio=ALL-UNNAMED</argLine>
              <excludes>
                <exclude>*IntegTest</exclude>
              </excludes>
            </configuration>
          </plugin>
          <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>${surefire.failsafe.version}</version>
            <configuration>
              <argLine>--add-opens=java.base/java.nio=ALL-UNNAMED</argLine>
              <forkCount>3C</forkCount>
              <reuseForks>false</reuseForks>
              <includes>
                <include>*IntegTest</include>
              </includes>
            </configuration>
          </plugin>
        </plugins>
      </build>
      <properties>
        <maven.compiler.release>17</maven.compiler.release>
      </properties>
    </profile>
    <profile>
      <id>release</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>${mvn.javadoc.plugin.version}</version>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <failOnError>false</failOnError>
              <notimestamp>true</notimestamp>
            </configuration>
          </plugin>
          <plugin>
            <artifactId>maven-source-plugin</artifactId>
            <version>${mvn.source.plugin.version}</version>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>3.2.8</version>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
                <configuration>
                  <gpgArguments>
                    <arg>--pinentry-mode</arg>
                    <arg>loopback</arg>
                  </gpgArguments>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.sonatype.central</groupId>
            <artifactId>central-publishing-maven-plugin</artifactId>
            <version>0.9.0</version>
            <extensions>true</extensions>
            <configuration>
              <publishingServerId>central</publishingServerId>
              <autoPublish>true</autoPublish>
            </configuration>
          </plugin>
        </plugins>
      </build>
      <distributionManagement>
        <repository>
          <id>central</id>
          <url>https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/</url>
        </repository>
        <snapshotRepository>
          <id>central</id>
          <url>https://central.sonatype.com/repository/maven-snapshots/</url>
        </snapshotRepository>
      </distributionManagement>
    </profile>
  </profiles>
  <modules>
    <module>athena-federation-sdk</module>
    <module>athena-federation-sdk-tools</module>
    <module>athena-federation-integ-test</module>
    <module>athena-cloudwatch</module>
    <module>athena-cloudwatch-metrics</module>
    <module>athena-dynamodb</module>
    <module>athena-aws-cmdb</module>
    <module>athena-docdb</module>
    <module>athena-redis</module>
    <module>athena-hbase</module>
    <module>athena-example</module>
    <module>athena-elasticsearch</module>
    <module>athena-tpcds</module>
    <module>athena-jdbc</module>
    <module>athena-mysql</module>
    <module>athena-postgresql</module>
    <module>athena-redshift</module>
    <module>athena-udfs</module>
    <module>athena-vertica</module>
    <module>athena-timestream</module>
    <module>athena-neptune</module>
    <module>athena-google-bigquery</module>
    <module>athena-oracle</module>
    <module>athena-sqlserver</module>
    <module>athena-synapse</module>
    <module>athena-datalakegen2</module>
    <module>athena-snowflake</module>
    <module>athena-teradata</module>
    <module>athena-saphana</module>
    <module>athena-cloudera-hive</module>
    <module>athena-cloudera-impala</module>
    <module>athena-hortonworks-hive</module>
    <module>athena-db2</module>
    <module>athena-db2-as400</module>
    <module>athena-msk</module>
    <module>athena-kafka</module>
    <module>athena-gcs</module>
    <module>athena-clickhouse</module>
  </modules>
  <dependencies>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>[1.2,)</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-bom</artifactId>
      <version>4.32.1</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    <dependency>
      <groupId>net.jqwik</groupId>
      <artifactId>jqwik</artifactId>
      <version>1.9.3</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>jqwik-api</artifactId>
          <groupId>net.jqwik</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jqwik-web</artifactId>
          <groupId>net.jqwik</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jqwik-time</artifactId>
          <groupId>net.jqwik</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jqwik-engine</artifactId>
          <groupId>net.jqwik</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.assertj</groupId>
      <artifactId>assertj-core</artifactId>
      <version>3.27.6</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>byte-buddy</artifactId>
          <groupId>net.bytebuddy</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-api</artifactId>
      <version>5.13.4</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>opentest4j</artifactId>
          <groupId>org.opentest4j</groupId>
        </exclusion>
        <exclusion>
          <artifactId>junit-platform-commons</artifactId>
          <groupId>org.junit.platform</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.2</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>hamcrest-core</artifactId>
          <groupId>org.hamcrest</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
      <version>5.13.4</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>junit-platform-engine</artifactId>
          <groupId>org.junit.platform</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.junit.vintage</groupId>
      <artifactId>junit-vintage-engine</artifactId>
      <version>5.13.4</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>junit-platform-engine</artifactId>
          <groupId>org.junit.platform</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <version>4.11.0</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>byte-buddy-agent</artifactId>
          <groupId>net.bytebuddy</groupId>
        </exclusion>
        <exclusion>
          <artifactId>objenesis</artifactId>
          <groupId>org.objenesis</groupId>
        </exclusion>
        <exclusion>
          <artifactId>byte-buddy</artifactId>
          <groupId>net.bytebuddy</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>7.11.0</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>jcommander</artifactId>
          <groupId>org.jcommander</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jquery</artifactId>
          <groupId>org.webjars</groupId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.junit</groupId>
        <artifactId>junit-bom</artifactId>
        <version>5.13.4</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>software.amazon.jsii</groupId>
        <artifactId>jsii-runtime</artifactId>
        <version>${jsii.version}</version>
        <exclusions>
          <exclusion>
            <artifactId>jackson-datatype-jsr310</artifactId>
            <groupId>com.fasterxml.jackson.datatype</groupId>
          </exclusion>
          <exclusion>
            <artifactId>jackson-dataformat-cbor</artifactId>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
          </exclusion>
          <exclusion>
            <artifactId>jackson-core</artifactId>
            <groupId>com.fasterxml.jackson.core</groupId>
          </exclusion>
          <exclusion>
            <artifactId>jackson-databind</artifactId>
            <groupId>com.fasterxml.jackson.core</groupId>
          </exclusion>
          <exclusion>
            <artifactId>jackson-annotations</artifactId>
            <groupId>com.fasterxml.jackson.core</groupId>
          </exclusion>
        </exclusions>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <properties>
    <slf4j-log4j.version>2.0.17</slf4j-log4j.version>
    <jqwik.version>1.9.3</jqwik.version>
    <fasterxml.jackson.version>2.19.2</fasterxml.jackson.version>
    <aws-sdk.version>1.12.792</aws-sdk.version>
    <aws-sdk-v2.version>2.35.8</aws-sdk-v2.version>
    <mvn.javadoc.plugin.version>3.12.0</mvn.javadoc.plugin.version>
    <mvn.shade.plugin.version>3.6.1</mvn.shade.plugin.version>
    <testng.version>7.11.0</testng.version>
    <junit.version>4.13.2</junit.version>
    <io.substrait.version>0.66.0</io.substrait.version>
    <test.system.rules.version>1.19.0</test.system.rules.version>
    <commons.cli.version>1.10.0</commons.cli.version>
    <spark.version>3.2.1</spark.version>
    <com.google.protobuf.version>4.32.1</com.google.protobuf.version>
    <aws-cdk.version>1.204.0</aws-cdk.version>
    <log4j2.cachefile.transformer.version>2.15</log4j2.cachefile.transformer.version>
    <aws.lambda-java-log4j2.version>1.6.0</aws.lambda-java-log4j2.version>
    <antlr.st4.version>4.3.4</antlr.st4.version>
    <maven.compiler.release>11</maven.compiler.release>
    <mvn.checkstyle.version>3.6.0</mvn.checkstyle.version>
    <doclint>none</doclint>
    <aws.lambda-java-core.version>1.2.2</aws.lambda-java-core.version>
    <guava.version>33.4.8-jre</guava.version>
    <mvn.jar.plugin.version>3.4.2</mvn.jar.plugin.version>
    <apache.httpclient.version>4.5.14</apache.httpclient.version>
    <org.apache.calcite.version>1.40.0</org.apache.calcite.version>
    <maven.compiler.plugin.version>3.14.1</maven.compiler.plugin.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <assertj.version>3.27.6</assertj.version>
    <mssql.jdbc.version>12.10.0.jre11</mssql.jdbc.version>
    <mockito.version>4.11.0</mockito.version>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <mvn.source.plugin.version>3.3.1</mvn.source.plugin.version>
    <surefire.failsafe.version>3.5.4</surefire.failsafe.version>
    <jsii.version>1.115.0</jsii.version>
    <log4j2Version>2.25.2</log4j2Version>
    <protobuf3.version>3.25.5</protobuf3.version>
    <apache.arrow.version>18.3.0</apache.arrow.version>
  </properties>
</project>
