<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>23</version>
  </parent>
  <groupId>org.apache.hive</groupId>
  <artifactId>hive-standalone-metastore</artifactId>
  <version>4.2.0</version>
  <packaging>pom</packaging>
  <name>Hive Standalone Metastore</name>
  <inceptionYear>2008</inceptionYear>
  <modules>
    <module>metastore-common</module>
    <module>metastore-client</module>
    <module>metastore-server</module>
    <module>metastore-tools</module>
    <module>metastore-rest-catalog</module>
    <module>packaging</module>
  </modules>
  <properties>
    <hive.version>4.2.0</hive.version>
    <hive.version.shortname>4.2.0</hive.version.shortname>
    <standalone.metastore.path.to.root>.</standalone.metastore.path.to.root>
    <!-- Build properties -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.compiler.source>21</maven.compiler.source>
    <maven.compiler.target>21</maven.compiler.target>
    <java.version>21</java.version>
    <maven.compiler.useIncrementalCompilation>false</maven.compiler.useIncrementalCompilation>
    <maven.cyclonedx.plugin.version>2.7.10</maven.cyclonedx.plugin.version>
    <maven.repo.local>${settings.localRepository}</maven.repo.local>
    <maven.exec.plugin.version>3.1.0</maven.exec.plugin.version>
    <checkstyle.conf.dir>${basedir}/${standalone.metastore.path.to.root}/checkstyle</checkstyle.conf.dir>
    <!-- Test Properties -->
    <log4j.conf.dir>${project.basedir}/src/test/resources</log4j.conf.dir>
    <test.tmp.dir>${project.build.directory}/tmp</test.tmp.dir>
    <test.warehouse.dir>${project.build.directory}/warehouse</test.warehouse.dir>
    <test.warehouse.external.dir>${project.build.directory}/external</test.warehouse.external.dir>
    <test.warehouse.scheme>file://</test.warehouse.scheme>
    <test.forkcount>1</test.forkcount>
    <skipITests>true</skipITests>
    <test.groups>org.apache.hadoop.hive.metastore.annotation.MetastoreUnitTest</test.groups>
    <!-- Plugin versions -->
    <ant.contrib.version>1.0b3</ant.contrib.version>
    <maven.checkstyle.plugin.version>3.5.0</maven.checkstyle.plugin.version>
    <maven.versions.plugin.version>2.16.0</maven.versions.plugin.version>
    <maven.surefire.plugin.version>3.5.3</maven.surefire.plugin.version>
    <!-- Dependency versions -->
    <antlr.version>4.9.3</antlr.version>
    <apache-directory-server.version>2.0.0-M24</apache-directory-server.version>
    <checkstyle.version>11.1.0</checkstyle.version>
    <commons-lang3.version>3.14.0</commons-lang3.version>
    <commons-dbcp2.version>2.12.0</commons-dbcp2.version>
    <datasketches.version>2.0.0</datasketches.version>
    <datanucleus-api-jdo.version>6.0.3</datanucleus-api-jdo.version>
    <datanucleus-core.version>6.0.10</datanucleus-core.version>
    <datanucleus-jdo.version>3.2.0-release</datanucleus-jdo.version>
    <datanucleus-rdbms.version>6.0.10</datanucleus-rdbms.version>
    <derby.version>10.17.1.0</derby.version>
    <mariadb.version>2.5.0</mariadb.version>
    <mssql.version>6.2.1.jre8</mssql.version>
    <mysql.version>8.2.0</mysql.version>
    <postgres.version>42.7.3</postgres.version>
    <oracle.version>21.3.0.0</oracle.version>
    <dropwizard-metrics-hadoop-metrics2-reporter.version>0.1.2
    </dropwizard-metrics-hadoop-metrics2-reporter.version>
    <dropwizard.version>3.1.0</dropwizard.version>
    <guava.version>22.0</guava.version>
    <hadoop.version>3.4.1</hadoop.version>
    <hikaricp.version>4.0.3</hikaricp.version>
    <jackson.version>2.16.1</jackson.version>
    <jexl.version>3.3</jexl.version>
    <javolution.version>5.5.1</javolution.version>
    <junit.version>4.13.2</junit.version>
    <junit.jupiter.version>5.13.3</junit.jupiter.version>
    <junit.vintage.version>5.13.3</junit.vintage.version>
    <junit.platform.version>1.13.3</junit.platform.version>
    <libfb303.version>0.9.3</libfb303.version>
    <libthrift.version>0.16.0</libthrift.version>
    <log4j2.version>2.24.3</log4j2.version>
    <mockito-core.version>5.17.0</mockito-core.version>
    <orc.version>2.1.2</orc.version>
    <protobuf.version>3.25.5</protobuf.version>
    <protoc-jar-maven-plugin.version>3.11.4</protoc-jar-maven-plugin.version>
    <protoc.path>${env.PROTOC_PATH}</protoc.path>
    <io.grpc.version>1.72.0</io.grpc.version>
    <sqlline.version>1.9.0</sqlline.version>
    <netty.version>4.1.127.Final</netty.version>
    <!-- HIVE-28992: only upgrade to newer than 3.25.0 if you tested the prompt -->
    <jline.version>3.25.0</jline.version>
    <ST4.version>4.0.4</ST4.version>
    <storage-api.version>4.2.0</storage-api.version>
    <beanutils.version>1.9.4</beanutils.version>
    <hamcrest.version>1.3</hamcrest.version>
    <curator.version>5.7.1</curator.version>
    <zookeeper.version>3.8.4</zookeeper.version>
    <cron-utils.version>9.2.1</cron-utils.version>
    <spotbugs.version>4.8.6</spotbugs.version>
    <caffeine.version>2.8.4</caffeine.version>
    <slf4j.version>1.7.30</slf4j.version>
    <httpcomponents.core.version>4.4.13</httpcomponents.core.version>
    <httpcomponents.client.version>4.5.13</httpcomponents.client.version>
    <pac4j-core.version>4.5.8</pac4j-core.version>
    <nimbus-oauth.version>11.28</nimbus-oauth.version>
    <jetty.version>9.4.57.v20241219</jetty.version>
    <javax.annotation-api.version>1.3.2</javax.annotation-api.version>
    <keycloak.version>26.0.6</keycloak.version>
    <!-- If upgrading, upgrade atlas as well in ql/pom.xml, which brings in some springframework dependencies transitively -->
    <spring.version>5.3.39</spring.version>
    <spring.ldap.version>2.4.4</spring.ldap.version>
    <testcontainers.version>1.21.3</testcontainers.version>
    <!-- Thrift properties -->
    <thrift.home>you-must-set-this-to-run-thrift</thrift.home>
    <thrift.gen.dir>${basedir}/src/gen/thrift</thrift.gen.dir>
    <thrift.args>-I ${thrift.home} -strict --gen java:beans,generated_annotations=undated --gen cpp --gen php --gen py --gen rb
    </thrift.args>
    <wiremock.jre8.standalone.version>2.32.0</wiremock.jre8.standalone.version>
    <project.build.outputTimestamp>2025-11-11T17:01:10Z</project.build.outputTimestamp>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-all</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-handler</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-transport-native-epoll</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-transport-native-epoll</artifactId>
        <version>${netty.version}</version>
        <classifier>linux-x86_64</classifier>
      </dependency>
      <dependency>
        <groupId>org.apache.orc</groupId>
        <artifactId>orc-core</artifactId>
        <version>${orc.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson</groupId>
        <artifactId>jackson-bom</artifactId>
        <version>${jackson.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>com.github.joshelser</groupId>
        <artifactId>dropwizard-metrics-hadoop-metrics2-reporter</artifactId>
        <version>${dropwizard-metrics-hadoop-metrics2-reporter.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.protobuf</groupId>
        <artifactId>protobuf-java</artifactId>
        <version>${protobuf.version}</version>
      </dependency>
      <dependency>
        <groupId>com.zaxxer</groupId>
        <artifactId>HikariCP</artifactId>
        <version>${hikaricp.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dropwizard.metrics</groupId>
        <artifactId>metrics-core</artifactId>
        <version>${dropwizard.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dropwizard.metrics</groupId>
        <artifactId>metrics-jvm</artifactId>
        <version>${dropwizard.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dropwizard.metrics</groupId>
        <artifactId>metrics-json</artifactId>
        <version>${dropwizard.version}</version>
      </dependency>
      <dependency>
        <groupId>javolution</groupId>
        <artifactId>javolution</artifactId>
        <version>${javolution.version}</version>
      </dependency>
      <dependency>
        <groupId>org.antlr</groupId>
        <artifactId>antlr4-runtime</artifactId>
        <version>${antlr.version}</version>
      </dependency>
      <dependency>
        <groupId>org.antlr</groupId>
        <artifactId>ST4</artifactId>
        <version>${ST4.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${commons-lang3.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.datasketches</groupId>
        <artifactId>datasketches-hive</artifactId>
        <version>${datasketches.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>${hadoop.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-test</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-client</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>*</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-distcp</artifactId>
        <version>${hadoop.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-hdfs</artifactId>
        <version>${hadoop.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>*</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-hdfs-client</artifactId>
        <version>${hadoop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-mapreduce-client-core</artifactId>
        <version>${hadoop.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.jline</groupId>
            <artifactId>jline</artifactId>
          </exclusion>
          <exclusion>
            <groupId>io.netty</groupId>
            <artifactId>netty</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.hive</groupId>
        <artifactId>hive-storage-api</artifactId>
        <version>${storage-api.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-dbcp2</artifactId>
        <version>${commons-dbcp2.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>${log4j2.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-1.2-api</artifactId>
        <version>${log4j2.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.thrift</groupId>
        <artifactId>libfb303</artifactId>
        <version>${libfb303.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.thrift</groupId>
        <artifactId>libthrift</artifactId>
        <version>${libthrift.version}</version>
      </dependency>
      <dependency>
        <groupId>org.datanucleus</groupId>
        <artifactId>datanucleus-api-jdo</artifactId>
        <version>${datanucleus-api-jdo.version}</version>
      </dependency>
      <dependency>
        <groupId>org.datanucleus</groupId>
        <artifactId>datanucleus-core</artifactId>
        <version>${datanucleus-core.version}</version>
      </dependency>
      <dependency>
        <groupId>org.datanucleus</groupId>
        <artifactId>datanucleus-rdbms</artifactId>
        <version>${datanucleus-rdbms.version}</version>
      </dependency>
      <dependency>
        <groupId>org.datanucleus</groupId>
        <artifactId>javax.jdo</artifactId>
        <version>${datanucleus-jdo.version}</version>
      </dependency>
      <dependency>
        <groupId>org.skyscreamer</groupId>
        <artifactId>jsonassert</artifactId>
        <version>1.4.0</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>sqlline</groupId>
        <artifactId>sqlline</artifactId>
        <version>${sqlline.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.jline</groupId>
            <artifactId>*</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.jline</groupId>
        <artifactId>jline</artifactId>
        <version>${jline.version}</version>
      </dependency>
      <dependency>
        <groupId>com.cronutils</groupId>
        <artifactId>cron-utils</artifactId>
        <version>${cron-utils.version}</version>
      </dependency>
      <dependency>
        <groupId>com.github.ben-manes.caffeine</groupId>
        <artifactId>caffeine</artifactId>
        <version>${caffeine.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <!-- JDBC drivers -->
      <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <version>${mssql.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>com.oracle.database.jdbc</groupId>
        <artifactId>ojdbc8</artifactId>
        <version>${oracle.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
        <version>${mysql.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.derby</groupId>
        <artifactId>derby</artifactId>
        <version>${derby.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.mariadb.jdbc</groupId>
        <artifactId>mariadb-java-client</artifactId>
        <version>${mariadb.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>${postgres.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>${httpcomponents.core.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-util</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-server</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-servlet</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <!-- test scope dependencies -->
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>${junit.jupiter.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit.jupiter.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.vintage</groupId>
        <artifactId>junit-vintage-engine</artifactId>
        <version>${junit.vintage.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>${junit.platform.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.directory.server</groupId>
        <artifactId>apacheds-server-integ</artifactId>
        <version>${apache-directory-server.version}</version>
        <scope>test</scope>
        <exclusions>
          <exclusion>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
          </exclusion>
          <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.directory.server</groupId>
        <artifactId>apacheds-test-framework</artifactId>
        <version>${apache-directory-server.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>${mockito-core.version}</version>
        <scope>test</scope>
      </dependency>
      <!-- https://mvnrepository.com/artifact/org.hamcrest/hamcrest-all -->
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-all</artifactId>
        <version>${hamcrest.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-test</artifactId>
        <version>${curator.version}</version>
        <scope>test</scope>
        <exclusions>
          <exclusion>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>${slf4j.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-admin-client</artifactId>
        <version>${keycloak.version}</version>
      </dependency>
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>mariadb</artifactId>
        <version>${testcontainers.version}</version>
      </dependency>
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>mysql</artifactId>
        <version>${testcontainers.version}</version>
      </dependency>
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>postgresql</artifactId>
        <version>${testcontainers.version}</version>
      </dependency>
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>oracle-xe</artifactId>
        <version>${testcontainers.version}</version>
      </dependency>
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>mssqlserver</artifactId>
        <version>${testcontainers.version}</version>
      </dependency>
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>testcontainers</artifactId>
        <version>${testcontainers.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
    </dependency>
  </dependencies>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>${maven.versions.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven.surefire.plugin.version}</version>
          <configuration>
            <argLine>${maven.test.jvm.args}</argLine>
            <enableOutErrElements>false</enableOutErrElements>
            <failIfNoSpecifiedTests>false</failIfNoSpecifiedTests>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${maven.checkstyle.plugin.version}</version>
          <dependencies>
            <dependency>
              <groupId>com.puppycrawl.tools</groupId>
              <artifactId>checkstyle</artifactId>
              <version>${checkstyle.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <executions>
            <execution>
              <id>enforce-banned-dependencies</id>
              <goals>
                <goal>enforce</goal>
              </goals>
              <configuration>
                <rules>
                  <bannedDependencies>
                    <excludes>
                      <!--LGPL licenced library-->
                      <exclude>com.google.code.findbugs:annotations</exclude>
                    </excludes>
                    <message>A banned license dependency was found!</message>
                  </bannedDependencies>
                  <bannedDependencies>
                    <excludes>
                      <!-- Move to SLF4J -->
                      <exclude>commons-logging:commons-logging</exclude>
                      <exclude>ch.qos.reload4j:reload4j</exclude>
                    </excludes>
                    <searchTransitive>false</searchTransitive>
                    <message>A banned logging dependency was found!</message>
                  </bannedDependencies>
                  <bannedDependencies>
                    <excludes>
                      <exclude>log4j:log4j</exclude>
                    </excludes>
                    <searchTransitive>true</searchTransitive>
                    <message>Banned log4j:log4j dependency/transitive dependency was found!</message>
                  </bannedDependencies>
                  <bannedDependencies>
                    <excludes>
                      <exclude>jline:jline</exclude>
                    </excludes>
                    <searchTransitive>true</searchTransitive>
                    <message>A banned jline2.x dependency/transitive dependency was found!</message>
                  </bannedDependencies>
                </rules>
                <fail>true</fail>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <configuration>
          <configLocation>${checkstyle.conf.dir}/checkstyle.xml</configLocation>
          <propertyExpansion>config_loc=${checkstyle.conf.dir}</propertyExpansion>
          <includeTestSourceDirectory>true</includeTestSourceDirectory>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <executions>
          <execution>
            <phase>process-resources</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <excludes>
            <exclude>*.patch</exclude>
            <exclude>DEV-README</exclude>
            <exclude>checkstyle/**</exclude>
            <exclude>**/src/main/sql/**</exclude>
            <exclude>**/README.md</exclude>
            <exclude>**/*.iml</exclude>
            <exclude>**/*.txt</exclude>
            <exclude>**/*.log</exclude>
            <exclude>**/package-info.java</exclude>
            <exclude>**/*.properties</exclude>
            <exclude>**/*.q</exclude>
            <exclude>**/*.q.out</exclude>
            <exclude>**/*.xml</exclude>
            <exclude>**/gen/**</exclude>
            <exclude>**/patchprocess/**</exclude>
            <exclude>**/metastore_db/**</exclude>
            <exclude>**/test/resources/**/*.ldif</exclude>
            <exclude>**/test/resources/sql/**</exclude>
            <exclude>**/test/resources/**/*.json</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>javadoc</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
              <doclint>none</doclint>
              <useStandardDocletOptions>false</useStandardDocletOptions>
            </configuration>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>spotbugs</id>
      <build>
        <plugins>
          <!-- Execute as: com.github.spotbugs:spotbugs-maven-plugin:4.8.6.6:spotbugs -->
          <plugin>
            <groupId>com.github.spotbugs</groupId>
            <artifactId>spotbugs-maven-plugin</artifactId>
            <version>4.8.6.6</version>
            <dependencies>
              <!-- Specify the version of spotbugs -->
              <dependency>
                <groupId>com.github.spotbugs</groupId>
                <artifactId>spotbugs</artifactId>
                <version>${spotbugs.version}</version>
              </dependency>
            </dependencies>
            <configuration>
              <fork>true</fork>
              <maxHeap>2048</maxHeap>
              <jvmArgs>-Djava.awt.headless=true -Xmx2048m -Xms512m</jvmArgs>
              <excludeFilterFile>${basedir}/${standalone.metastore.path.to.root}/spotbugs/spotbugs-exclude.xml</excludeFilterFile>
              <timeout>60000000</timeout>
            </configuration>
          </plugin>
        </plugins>
      </build>
      <reporting>
        <plugins>
          <plugin>
            <groupId>com.github.spotbugs</groupId>
            <artifactId>spotbugs-maven-plugin</artifactId>
            <version>4.8.6.6</version>
            <configuration>
              <fork>true</fork>
              <maxHeap>2048</maxHeap>
              <jvmArgs>-Djava.awt.headless=true -Xmx2048m -Xms512m</jvmArgs>
              <excludeFilterFile>${basedir}/${standalone.metastore.path.to.root}/spotbugs/spotbugs-exclude.xml</excludeFilterFile>
              <timeout>60000000</timeout>
            </configuration>
          </plugin>
        </plugins>
      </reporting>
    </profile>
    <profile>
      <id>dist</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.cyclonedx</groupId>
            <artifactId>cyclonedx-maven-plugin</artifactId>
            <version>${maven.cyclonedx.plugin.version}</version>
            <executions>
              <execution>
                <phase>package</phase>
                <goals>
                  <goal>makeBom</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
