<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You 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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>21</version>
  </parent>
  <groupId>org.apache.accumulo</groupId>
  <artifactId>accumulo-project</artifactId>
  <version>2.0.0</version>
  <packaging>pom</packaging>
  <name>Apache Accumulo Project</name>
  <description>Apache Accumulo is a sorted, distributed key/value store based
    on Google's BigTable design. It is built on top of Apache Hadoop,
    Zookeeper, and Thrift. It features a few novel improvements on the BigTable
    design in the form of cell-level access labels and a server-side
    programming mechanism that can modify key/value pairs at various points in
    the data management process.</description>
  <!-- this URL is where the site derived via the maven-site-plugin ends up,
       not the generic site; currently not used -->
  <url>https://accumulo.apache.org</url>
  <!-- this is the year of inception at ASF -->
  <inceptionYear>2011</inceptionYear>
  <organization>
    <name>The Apache Software Foundation</name>
    <url>https://www.apache.org</url>
  </organization>
  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0</url>
    </license>
  </licenses>
  <mailingLists>
    <mailingList>
      <name>User</name>
      <subscribe>user-subscribe@accumulo.apache.org</subscribe>
      <unsubscribe>user-unsubscribe@accumulo.apache.org</unsubscribe>
      <post>user@accumulo.apache.org</post>
      <archive>https://lists.apache.org/list.html?user@accumulo.apache.org</archive>
    </mailingList>
    <mailingList>
      <name>Dev</name>
      <subscribe>dev-subscribe@accumulo.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@accumulo.apache.org</unsubscribe>
      <post>dev@accumulo.apache.org</post>
      <archive>https://lists.apache.org/list.html?dev@accumulo.apache.org</archive>
    </mailingList>
    <mailingList>
      <name>Commits</name>
      <subscribe>commits-subscribe@accumulo.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@accumulo.apache.org</unsubscribe>
      <archive>https://lists.apache.org/list.html?commits@accumulo.apache.org</archive>
    </mailingList>
    <mailingList>
      <name>Notifications</name>
      <subscribe>notifications-subscribe@accumulo.apache.org</subscribe>
      <unsubscribe>notifications-unsubscribe@accumulo.apache.org</unsubscribe>
      <archive>https://lists.apache.org/list.html?notifications@accumulo.apache.org</archive>
    </mailingList>
  </mailingLists>
  <modules>
    <module>assemble</module>
    <module>core</module>
    <module>hadoop-mapreduce</module>
    <module>iterator-test-harness</module>
    <module>minicluster</module>
    <module>server/base</module>
    <module>server/gc</module>
    <module>server/master</module>
    <module>server/monitor</module>
    <module>server/native</module>
    <module>server/tracer</module>
    <module>server/tserver</module>
    <module>shell</module>
    <module>start</module>
    <module>test</module>
  </modules>
  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/accumulo.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/accumulo.git</developerConnection>
    <tag>rel/2.0.0</tag>
    <url>https://gitbox.apache.org/repos/asf?p=accumulo.git</url>
  </scm>
  <issueManagement>
    <system>GitHub Issues</system>
    <url>https://github.com/apache/accumulo/issues</url>
  </issueManagement>
  <ciManagement>
    <system>Travis CI</system>
    <url>https://travis-ci.org/apache/accumulo</url>
  </ciManagement>
  <properties>
    <!-- used for filtering the java source with the current version -->
    <accumulo.release.version>${project.version}</accumulo.release.version>
    <!-- bouncycastle version for test dependencies -->
    <bouncycastle.version>1.62</bouncycastle.version>
    <!-- Curator version -->
    <curator.version>2.12.0</curator.version>
    <!-- relative path for Eclipse format; should override in child modules if necessary -->
    <eclipseFormatterStyle>${project.parent.basedir}/contrib/Eclipse-Accumulo-Codestyle.xml</eclipseFormatterStyle>
    <!-- extra release args for testing -->
    <extraReleaseArguments />
    <failsafe.excludedGroups />
    <failsafe.groups />
    <!-- surefire/failsafe plugin option -->
    <forkCount>1</forkCount>
    <hadoop.version>3.1.1</hadoop.version>
    <hk2.version>2.5.0</hk2.version>
    <htrace.hadoop.version>4.1.0-incubating</htrace.hadoop.version>
    <htrace.version>3.2.0-incubating</htrace.version>
    <it.failIfNoSpecifiedTests>false</it.failIfNoSpecifiedTests>
    <jackson.version>2.9.9</jackson.version>
    <javax.el.version>3.0.1-b06</javax.el.version>
    <jaxb.version>2.3.0.1</jaxb.version>
    <jersey.version>2.28</jersey.version>
    <jetty.version>9.4.19.v20190610</jetty.version>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <!-- surefire/failsafe plugin option -->
    <maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile>
    <powermock.version>2.0.2</powermock.version>
    <!-- surefire/failsafe plugin option -->
    <reuseForks>false</reuseForks>
    <slf4j.version>1.7.26</slf4j.version>
    <sourceReleaseAssemblyDescriptor>source-release-tar</sourceReleaseAssemblyDescriptor>
    <spotbugs.version>3.1.12</spotbugs.version>
    <surefire.excludedGroups />
    <surefire.failIfNoSpecifiedTests>false</surefire.failIfNoSpecifiedTests>
    <surefire.groups />
    <surefire.version>3.0.0-M3</surefire.version>
    <!-- Thrift version -->
    <thrift.version>0.12.0</thrift.version>
    <unitTestMemSize>-Xmx1G</unitTestMemSize>
    <!-- ZooKeeper version -->
    <zookeeper.version>3.4.14</zookeeper.version>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.beust</groupId>
        <artifactId>jcommander</artifactId>
        <version>1.72</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml</groupId>
        <artifactId>classmate</artifactId>
        <version>1.5.0</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}.1</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-base</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-json-provider</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.module</groupId>
        <artifactId>jackson-module-jaxb-annotations</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.github.ben-manes.caffeine</groupId>
        <artifactId>caffeine</artifactId>
        <version>2.7.0</version>
      </dependency>
      <dependency>
        <groupId>com.github.spotbugs</groupId>
        <artifactId>spotbugs-annotations</artifactId>
        <version>${spotbugs.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.auto.service</groupId>
        <artifactId>auto-service</artifactId>
        <version>1.0-rc5</version>
      </dependency>
      <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.5</version>
      </dependency>
      <dependency>
        <!-- this is a runtime dependency of guava, no longer included with guava as of 27.1 -->
        <groupId>com.google.guava</groupId>
        <artifactId>failureaccess</artifactId>
        <version>1.0.1</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>28.0-jre</version>
      </dependency>
      <dependency>
        <groupId>com.google.protobuf</groupId>
        <artifactId>protobuf-java</artifactId>
        <version>3.7.1</version>
      </dependency>
      <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>1.9.3</version>
      </dependency>
      <dependency>
        <groupId>commons-cli</groupId>
        <artifactId>commons-cli</artifactId>
        <version>1.4</version>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.12</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.6</version>
      </dependency>
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
      </dependency>
      <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>javax.activation-api</artifactId>
        <version>1.2.0</version>
      </dependency>
      <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.3.2</version>
      </dependency>
      <dependency>
        <groupId>javax.el</groupId>
        <artifactId>javax.el-api</artifactId>
        <version>${javax.el.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
      </dependency>
      <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>2.0.1.Final</version>
      </dependency>
      <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>2.1.1</version>
      </dependency>
      <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>jsr311-api</artifactId>
        <version>1.1.1</version>
      </dependency>
      <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.1</version>
      </dependency>
      <dependency>
        <groupId>jline</groupId>
        <artifactId>jline</artifactId>
        <version>2.11</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-core</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-gc</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-hadoop-mapreduce</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-iterator-test-harness</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-master</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-minicluster</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-monitor</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-native</artifactId>
        <version>${project.version}</version>
        <type>tar.gz</type>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-server-base</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-shell</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-start</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-test</artifactId>
        <version>${project.version}</version>
        <classifier>mrit</classifier>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-test</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-tracer</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-tserver</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-collections4</artifactId>
        <version>4.3</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-configuration2</artifactId>
        <version>2.5</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-jci-core</artifactId>
        <version>1.1</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-jci-fam</artifactId>
        <version>1.1</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.9</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-math3</artifactId>
        <version>3.6.1</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-text</artifactId>
        <version>1.6</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-vfs2</artifactId>
        <version>2.3</version>
      </dependency>
      <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-framework</artifactId>
        <version>${curator.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-test</artifactId>
        <version>${curator.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>${hadoop.version}</version>
        <exclusions>
          <exclusion>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client-api</artifactId>
        <version>${hadoop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client-minicluster</artifactId>
        <version>${hadoop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client-runtime</artifactId>
        <version>${hadoop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-distcp</artifactId>
        <version>${hadoop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-minicluster</artifactId>
        <version>${hadoop.version}</version>
        <exclusions>
          <exclusion>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-minikdc</artifactId>
        <version>${hadoop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-tools</artifactId>
        <version>${hadoop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.htrace</groupId>
        <artifactId>htrace-core</artifactId>
        <version>${htrace.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.htrace</groupId>
        <artifactId>htrace-core4</artifactId>
        <version>${htrace.hadoop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.thrift</groupId>
        <artifactId>libthrift</artifactId>
        <version>${thrift.version}</version>
        <!-- exclude vulnerable lib see https://issues.apache.org/jira/browse/HTTPCLIENT-1803 -->
        <exclusions>
          <exclusion>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>${zookeeper.version}</version>
      </dependency>
      <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcpkix-jdk15on</artifactId>
        <version>${bouncycastle.version}</version>
      </dependency>
      <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcprov-jdk15on</artifactId>
        <version>${bouncycastle.version}</version>
      </dependency>
      <dependency>
        <groupId>org.easymock</groupId>
        <artifactId>easymock</artifactId>
        <version>4.0.2</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-continuation</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-http</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-io</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-security</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>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-util</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.freemarker</groupId>
        <artifactId>freemarker</artifactId>
        <version>2.3.28</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.hk2</groupId>
        <artifactId>hk2-api</artifactId>
        <version>${hk2.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.hk2</groupId>
        <artifactId>hk2-locator</artifactId>
        <version>${hk2.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.hk2</groupId>
        <artifactId>hk2-utils</artifactId>
        <version>${hk2.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.hk2</groupId>
        <artifactId>osgi-resource-locator</artifactId>
        <version>2.5.0-b42</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.hk2.external</groupId>
        <artifactId>aopalliance-repackaged</artifactId>
        <version>${hk2.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.hk2.external</groupId>
        <artifactId>jakarta.inject</artifactId>
        <version>${hk2.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-core</artifactId>
        <version>${jaxb.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>${jaxb.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-jetty-http</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet-core</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-client</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-common</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-server</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.ext</groupId>
        <artifactId>jersey-bean-validation</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.ext</groupId>
        <artifactId>jersey-entity-filtering</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.ext</groupId>
        <artifactId>jersey-mvc</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.ext</groupId>
        <artifactId>jersey-mvc-freemarker</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.inject</groupId>
        <artifactId>jersey-hk2</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-jaxb</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-jackson</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.test-framework</groupId>
        <artifactId>jersey-test-framework-core</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.test-framework.providers</groupId>
        <artifactId>jersey-test-framework-provider-grizzly2</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.web</groupId>
        <artifactId>el-impl</artifactId>
        <version>2.2.1-b05</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.web</groupId>
        <artifactId>javax.el</artifactId>
        <version>2.2.6</version>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest</artifactId>
        <version>2.1</version>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-core</artifactId>
        <version>2.1</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>6.0.17.Final</version>
      </dependency>
      <dependency>
        <groupId>org.javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>3.25.0-GA</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.logging</groupId>
        <artifactId>jboss-logging</artifactId>
        <version>3.4.0.Final</version>
      </dependency>
      <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-easymock</artifactId>
        <version>${powermock.version}</version>
      </dependency>
      <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-core</artifactId>
        <version>${powermock.version}</version>
      </dependency>
      <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4</artifactId>
        <version>${powermock.version}</version>
      </dependency>
      <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-reflect</artifactId>
        <version>${powermock.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</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-nop</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.github.spotbugs</groupId>
      <artifactId>spotbugs-annotations</artifactId>
      <optional>true</optional>
    </dependency>
  </dependencies>
  <build>
    <pluginManagement>
      <plugins>
        <!-- check for version updates with 'mvn versions:display-plugin-updates' -->
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>2.7</version>
        </plugin>
        <plugin>
          <groupId>org.gaul</groupId>
          <artifactId>modernizer-maven-plugin</artifactId>
          <version>1.8.0</version>
          <configuration>
            <javaVersion>${maven.compiler.target}</javaVersion>
          </configuration>
        </plugin>
        <plugin>
          <groupId>com.github.spotbugs</groupId>
          <artifactId>spotbugs-maven-plugin</artifactId>
          <version>${spotbugs.version}.1</version>
          <configuration>
            <xmlOutput>true</xmlOutput>
            <effort>Max</effort>
            <failOnError>true</failOnError>
            <includeTests>true</includeTests>
            <maxRank>16</maxRank>
            <jvmArgs>-Dcom.overstock.findbugs.ignore=com.google.common.util.concurrent.RateLimiter,com.google.common.hash.Hasher,com.google.common.hash.HashCode,com.google.common.hash.HashFunction,com.google.common.hash.Hashing,com.google.common.cache.Cache,com.google.common.io.CountingOutputStream,com.google.common.io.ByteStreams,com.google.common.cache.LoadingCache,com.google.common.base.Stopwatch,com.google.common.cache.RemovalNotification,com.google.common.util.concurrent.Uninterruptibles,com.google.common.reflect.ClassPath,com.google.common.reflect.ClassPath$ClassInfo,com.google.common.base.Throwables,com.google.common.collect.Iterators</jvmArgs>
            <plugins combine.children="append">
              <plugin>
                <groupId>com.overstock.findbugs</groupId>
                <artifactId>library-detectors</artifactId>
                <version>1.2.0</version>
              </plugin>
            </plugins>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <groupId>com.github.ekryd.sortpom</groupId>
          <artifactId>sortpom-maven-plugin</artifactId>
          <version>2.10.0</version>
          <configuration>
            <predefinedSortOrder>recommended_2008_06</predefinedSortOrder>
            <createBackupFile>false</createBackupFile>
            <lineSeparator>\n</lineSeparator>
            <expandEmptyElements>false</expandEmptyElements>
            <nrOfIndentSpace>2</nrOfIndentSpace>
            <sortDependencies>scope,groupId,artifactId</sortDependencies>
            <sortProperties>true</sortProperties>
            <verifyFail>Stop</verifyFail>
          </configuration>
        </plugin>
        <plugin>
          <groupId>com.github.koraktor</groupId>
          <artifactId>mavanagaiata</artifactId>
          <version>0.9.4</version>
          <configuration>
            <skipNoGit>true</skipNoGit>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <configuration>
            <filesets>
              <fileset>
                <directory>./</directory>
                <includes>
                  <include>**/*.pyc</include>
                  <include>**/*.so</include>
                </includes>
              </fileset>
            </filesets>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.1</version>
          <configuration>
            <optimize>true</optimize>
            <showDeprecation>true</showDeprecation>
            <showWarnings>true</showWarnings>
            <compilerArgs>
              <arg>-Xlint:all</arg>
              <arg>-Xlint:-processing</arg>
              <!-- suppress try to ignore unused variable in try-with-resources -->
              <arg>-Xlint:-try</arg>
              <arg>-Xmaxwarns</arg>
              <arg>5</arg>
            </compilerArgs>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <configuration>
            <archive>
              <manifestEntries>
                <Sealed>true</Sealed>
                <Implementation-Build>${mvngit.commit.id}</Implementation-Build>
              </manifestEntries>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>3.1.0</version>
          <configuration>
            <quiet>true</quiet>
            <additionalJOption>-J-Xmx512m</additionalJOption>
            <doclint>all,-missing</doclint>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <configuration>
            <arguments>-P !autoformat,thrift,sunny -Dtimeout.factor=2 ${extraReleaseArguments}</arguments>
            <autoVersionSubmodules>true</autoVersionSubmodules>
            <goals>clean deploy</goals>
            <preparationGoals>clean verify</preparationGoals>
            <tagNameFormat>rel/@{project.version}</tagNameFormat>
            <releaseProfiles>apache-release,accumulo-release</releaseProfiles>
            <useReleaseProfile>false</useReleaseProfile>
            <pushChanges>false</pushChanges>
            <localCheckout>true</localCheckout>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <configuration>
            <skipDeploy>true</skipDeploy>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${surefire.version}</version>
          <configuration>
            <excludedGroups>${surefire.excludedGroups}</excludedGroups>
            <groups>${surefire.groups}</groups>
            <systemPropertyVariables>
              <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
            </systemPropertyVariables>
            <argLine>${unitTestMemSize}</argLine>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>${surefire.version}</version>
          <configuration>
            <excludedGroups>${failsafe.excludedGroups}</excludedGroups>
            <groups>${failsafe.groups}</groups>
            <systemPropertyVariables>
              <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
            </systemPropertyVariables>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
        <plugin>
          <!-- version 1.6.0 is broken; see https://github.com/mojohaus/exec-maven-plugin/issues/75 -->
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>1.5.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <dependencies>
            <dependency>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>animal-sniffer-enforcer-rule</artifactId>
              <version>1.18</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <!-- Allows us to get the apache-ds bundle artifacts -->
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>4.2.0</version>
        </plugin>
        <plugin>
          <groupId>net.revelc.code</groupId>
          <artifactId>apilyzer-maven-plugin</artifactId>
          <version>1.2.0</version>
        </plugin>
        <plugin>
          <groupId>net.revelc.code.formatter</groupId>
          <artifactId>formatter-maven-plugin</artifactId>
          <version>2.10.0</version>
          <configuration>
            <configFile>${eclipseFormatterStyle}</configFile>
            <compilerCompliance>${maven.compiler.source}</compilerCompliance>
            <compilerSource>${maven.compiler.source}</compilerSource>
            <compilerTargetPlatform>${maven.compiler.target}</compilerTargetPlatform>
            <excludes>
              <exclude>**/thrift/*.java</exclude>
              <exclude>**/proto/*.java</exclude>
            </excludes>
            <lineEnding>LF</lineEnding>
            <overrideConfigCompilerVersion>true</overrideConfigCompilerVersion>
            <skipJsFormatting>true</skipJsFormatting>
            <skipHtmlFormatting>true</skipHtmlFormatting>
            <skipXmlFormatting>true</skipXmlFormatting>
            <skipJsonFormatting>true</skipJsonFormatting>
            <skipCssFormatting>true</skipCssFormatting>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>0.13</version>
          <configuration>
            <excludes combine.children="append">
              <exclude>src/main/resources/META-INF/services/*</exclude>
              <exclude>nbproject/**</exclude>
              <exclude>nb-configuration.xml</exclude>
              <exclude>nbactions.xml</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>net.revelc.code</groupId>
          <artifactId>warbucks-maven-plugin</artifactId>
          <version>1.1.2</version>
        </plugin>
        <plugin>
          <groupId>net.revelc.code</groupId>
          <artifactId>impsort-maven-plugin</artifactId>
          <version>1.2.0</version>
          <configuration>
            <removeUnused>true</removeUnused>
            <groups>java.,javax.,org.,com.</groups>
            <excludes>
              <exclude>**/thrift/*.java</exclude>
            </excludes>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>analyze</id>
            <goals>
              <goal>analyze-only</goal>
            </goals>
            <configuration>
              <failOnWarning>true</failOnWarning>
              <ignoredUsedUndeclaredDependencies>
                <!-- used/undeclared child jars brought in by parents below -->
                <usedUndeclaredDependency>org.apache.curator:curator-client:jar:*</usedUndeclaredDependency>
                <usedUndeclaredDependency>org.apache.hadoop:hadoop-common:jar:*</usedUndeclaredDependency>
                <usedUndeclaredDependency>org.apache.hadoop:hadoop-hdfs:*:*</usedUndeclaredDependency>
                <usedUndeclaredDependency>org.apache.hadoop:hadoop-mapreduce-client-core:jar:*</usedUndeclaredDependency>
                <usedUndeclaredDependency>org.apache.hadoop:hadoop-auth:jar:*</usedUndeclaredDependency>
                <usedUndeclaredDependency>org.apache.httpcomponents:httpcore:jar:*</usedUndeclaredDependency>
                <usedUndeclaredDependency>org.glassfish.jersey.ext:jersey-mvc:jar:*</usedUndeclaredDependency>
                <usedUndeclaredDependency>org.glassfish.jersey.core:jersey-server:jar:*</usedUndeclaredDependency>
                <usedUndeclaredDependency>org.glassfish.jersey.core:jersey-common:jar:*</usedUndeclaredDependency>
                <usedUndeclaredDependency>org.powermock:powermock-core:jar:*</usedUndeclaredDependency>
                <usedUndeclaredDependency>org.powermock:powermock-reflect:jar:*</usedUndeclaredDependency>
              </ignoredUsedUndeclaredDependencies>
              <ignoredUnusedDeclaredDependencies>
                <!-- auto-service isn't detected as use since the annotation has retention of source -->
                <unusedDeclaredDependency>com.google.auto.service:auto-service:jar:*</unusedDeclaredDependency>
                <!-- unused/declared implementation jars or parent jars that bring in children -->
                <unusedDeclaredDependency>org.apache.hadoop:hadoop-client:jar:*</unusedDeclaredDependency>
                <unusedDeclaredDependency>org.apache.hadoop:hadoop-client-runtime:jar:*</unusedDeclaredDependency>
                <unusedDeclaredDependency>org.apache.hadoop:hadoop-minicluster:jar:*</unusedDeclaredDependency>
                <unusedDeclaredDependency>org.glassfish.jersey.containers:jersey-container-jetty-http:jar:*</unusedDeclaredDependency>
                <unusedDeclaredDependency>org.glassfish.jersey.ext:jersey-bean-validation:jar:*</unusedDeclaredDependency>
                <unusedDeclaredDependency>org.glassfish.jersey.inject:jersey-hk2:jar:*</unusedDeclaredDependency>
                <unusedDeclaredDependency>org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2:jar:*</unusedDeclaredDependency>
                <unusedDeclaredDependency>org.powermock:powermock-api-easymock:jar:*</unusedDeclaredDependency>
                <unusedDeclaredDependency>org.slf4j:slf4j-log4j12:jar:*</unusedDeclaredDependency>
                <unusedDeclaredDependency>junit:junit:jar:*</unusedDeclaredDependency>
                <unusedDeclaredDependency>javax.servlet:javax.servlet-api:jar:*</unusedDeclaredDependency>
                <unusedDeclaredDependency>javax.el:javax.el-api:jar:*</unusedDeclaredDependency>
                <!-- spotbugs annotations may or may not be used in each module -->
                <unusedDeclaredDependency>com.github.spotbugs:spotbugs-annotations:jar:*</unusedDeclaredDependency>
                <!-- ignore unused native; analysis isn't possible with tar.gz dependency -->
                <unusedDeclaredDependency>org.apache.accumulo:accumulo-native:tar.gz:*</unusedDeclaredDependency>
                <!-- ignore runtime dependencies of commons-configuration2 -->
                <unusedDeclaredDependency>commons-beanutils:commons-beanutils:jar:*</unusedDeclaredDependency>
              </ignoredUnusedDeclaredDependencies>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>parse-project-version</id>
            <goals>
              <goal>parse-version</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <!-- verify before compile; should be sorted already -->
        <groupId>com.github.ekryd.sortpom</groupId>
        <artifactId>sortpom-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>verify-sorted-pom</id>
            <goals>
              <goal>verify</goal>
            </goals>
            <phase>process-resources</phase>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <!-- must be same id as in the apache parent pom, to override the version -->
            <id>enforce-maven-version</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <phase>validate</phase>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <!-- org.apache.felix:maven-bundle-plugin declares that it needs 3.5.0 -->
                  <version>[3.5.0,)</version>
                </requireMavenVersion>
                <requireJavaVersion>
                  <version>[${maven.compiler.target},)</version>
                </requireJavaVersion>
              </rules>
            </configuration>
          </execution>
          <execution>
            <id>enforce-java-signatures</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <phase>process-test-classes</phase>
            <configuration>
              <rules>
                <checkSignatureRule implementation="org.codehaus.mojo.animal_sniffer.enforcer.CheckSignatureRule">
                  <signature>
                    <groupId>org.codehaus.mojo.signature</groupId>
                    <artifactId>java18</artifactId>
                    <version>1.0</version>
                  </signature>
                </checkSignatureRule>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.gaul</groupId>
        <artifactId>modernizer-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>modernizer</id>
            <goals>
              <goal>modernizer</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <configuration>
          <checkstyleRules>
            <module name="Checker">
              <property name="charset" value="UTF-8" />
              <property name="severity" value="warning" />
              <!-- Checks for whitespace                               -->
              <!-- See http://checkstyle.sf.net/config_whitespace.html -->
              <module name="FileTabCharacter" />
              <module name="TreeWalker">
                <module name="OneTopLevelClass" />
                <module name="RegexpSinglelineJava">
                  <property name="format" value="\s+$" />
                  <property name="message" value="Line has trailing whitespace." />
                </module>
                <module name="RegexpSinglelineJava">
                  <property name="format" value="[@]see\s+[{][@]link" />
                  <property name="message" value="Javadoc @see does not need @link: pick one or the other." />
                </module>
                <module name="RegexpSinglelineJava">
                  <property name="format" value="jline[.]internal[.]Preconditions" />
                  <property name="message" value="Please use Guava Preconditions not JLine" />
                </module>
                <module name="RegexpSinglelineJava">
                  <property name="format" value="org[.]apache[.]commons[.]math[.]" />
                  <property name="message" value="Use commons-math3 (org.apache.commons.math3.*)" />
                </module>
                <module name="RegexpSinglelineJava">
                  <property name="format" value="junit[.]framework[.]TestCase" />
                  <property name="message" value="Use JUnit4+ @Test annotation instead of TestCase" />
                </module>
                <module name="RegexpSinglelineJava">
                  <property name="format" value="import org[.]junit[.]Assert;" />
                  <property name="message" value="Use static imports for Assert.* methods for consistency" />
                </module>
                <module name="OuterTypeFilename" />
                <module name="AvoidStarImport" />
                <module name="NoLineWrap" />
                <module name="LeftCurly" />
                <module name="RightCurly">
                  <property name="tokens" value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO, STATIC_INIT, INSTANCE_INIT" />
                </module>
                <module name="SeparatorWrap">
                  <property name="tokens" value="DOT" />
                  <property name="option" value="nl" />
                </module>
                <module name="SeparatorWrap">
                  <property name="tokens" value="COMMA" />
                  <property name="option" value="EOL" />
                </module>
                <module name="PackageName">
                  <property name="format" value="^[a-z]+(\.[a-z][a-zA-Z0-9]*)*$" />
                </module>
                <module name="MethodTypeParameterName">
                  <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)" />
                </module>
                <module name="NonEmptyAtclauseDescription" />
                <module name="JavadocMethod">
                  <property name="allowMissingJavadoc" value="true" />
                  <property name="allowMissingParamTags" value="true" />
                  <property name="allowMissingThrowsTags" value="true" />
                  <property name="allowMissingReturnTag" value="true" />
                  <property name="allowedAnnotations" value="Override,Test,BeforeClass,AfterClass,Before,After" />
                  <property name="allowThrowsTagsForSubclasses" value="true" />
                </module>
                <module name="MissingOverrideCheck" />
              </module>
            </module>
          </checkstyleRules>
          <violationSeverity>warning</violationSeverity>
          <includeTestSourceDirectory>true</includeTestSourceDirectory>
          <excludes>**/thrift/*.java,**/proto/*.java,**/HelpMojo.java</excludes>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>com.puppycrawl.tools</groupId>
            <artifactId>checkstyle</artifactId>
            <version>8.21</version>
          </dependency>
        </dependencies>
        <executions>
          <execution>
            <id>check-style</id>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>com.github.koraktor</groupId>
        <artifactId>mavanagaiata</artifactId>
        <executions>
          <execution>
            <id>git-commit</id>
            <goals>
              <goal>commit</goal>
            </goals>
            <phase>validate</phase>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <executions>
          <execution>
            <id>run-integration-tests</id>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>com.github.spotbugs</groupId>
        <artifactId>spotbugs-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>run-spotbugs</id>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <executions>
          <execution>
            <id>check-licenses</id>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>net.revelc.code</groupId>
        <artifactId>warbucks-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>check-junit-categories-on-its</id>
            <goals>
              <goal>check</goal>
            </goals>
            <configuration>
              <rules>
                <rule>
                  <includeMainClasses>true</includeMainClasses>
                  <includeTestClasses>true</includeTestClasses>
                  <classPattern>.*IT</classPattern>
                  <classAnnotationPattern>org[.]junit[.]experimental[.]categories[.]Category</classAnnotationPattern>
                </rule>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <!-- Allows us to get the apache-ds bundle artifacts -->
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <extensions>true</extensions>
        <inherited>true</inherited>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <!-- This profile skips all Quality Assurance checks  -->
      <id>skipQA</id>
      <properties>
        <accumulo.skip>true</accumulo.skip>
        <apilyzer.skip>true</apilyzer.skip>
        <checkstyle.skip>true</checkstyle.skip>
        <enforcer.skip>true</enforcer.skip>
        <formatter.skip>true</formatter.skip>
        <impsort.skip>true</impsort.skip>
        <mdep.analyze.skip>true</mdep.analyze.skip>
        <modernizer.skip>true</modernizer.skip>
        <rat.skip>true</rat.skip>
        <skipITs>true</skipITs>
        <skipTests>true</skipTests>
        <sort.skip>true</sort.skip>
        <spotbugs.skip>true</spotbugs.skip>
        <warbucks.skip>true</warbucks.skip>
      </properties>
    </profile>
    <profile>
      <id>m2e</id>
      <activation>
        <property>
          <name>m2e.version</name>
        </property>
      </activation>
      <properties>
        <!-- enforces Java 8 compiler compliance, even when Eclipse uses JDK 9 or later -->
        <maven.compiler.release>8</maven.compiler.release>
      </properties>
      <build>
        <pluginManagement>
          <plugins>
            <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
            <plugin>
              <groupId>org.eclipse.m2e</groupId>
              <artifactId>lifecycle-mapping</artifactId>
              <version>1.0.0</version>
              <configuration>
                <lifecycleMappingMetadata>
                  <pluginExecutions>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-remote-resources-plugin</artifactId>
                        <versionRange>[0,)</versionRange>
                        <goals>
                          <goal>process</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.apache.rat</groupId>
                        <artifactId>apache-rat-plugin</artifactId>
                        <versionRange>[0,)</versionRange>
                        <goals>
                          <goal>check</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <versionRange>[0,)</versionRange>
                        <goals>
                          <goal>exec</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.gaul</groupId>
                        <artifactId>modernizer-maven-plugin</artifactId>
                        <versionRange>[0,)</versionRange>
                        <goals>
                          <goal>modernizer</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>com.github.ekryd.sortpom</groupId>
                        <artifactId>sortpom-maven-plugin</artifactId>
                        <versionRange>[0,)</versionRange>
                        <goals>
                          <goal>sort</goal>
                          <goal>verify</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>com.github.koraktor</groupId>
                        <artifactId>mavanagaiata</artifactId>
                        <versionRange>[0,)</versionRange>
                        <goals>
                          <goal>commit</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                  </pluginExecutions>
                </lifecycleMappingMetadata>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile>
      <id>accumulo-release</id>
      <properties>
        <!-- some properties to make the release build a bit faster -->
        <checkstyle.skip>true</checkstyle.skip>
        <skipITs>true</skipITs>
        <skipTests>true</skipTests>
        <spotbugs.skip>true</spotbugs.skip>
      </properties>
    </profile>
    <profile>
      <!-- set proper source assembly name with apache-release and don't attach here -->
      <id>apache-release</id>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-assembly-plugin</artifactId>
              <inherited>false</inherited>
              <configuration>
                <!-- source assembly gets attached in the assemble module -->
                <attach>false</attach>
                <finalName>accumulo-${project.version}</finalName>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile>
      <!-- on by default, but disable with '-P !autoformat' or '-DskipFormat' -->
      <id>autoformat</id>
      <activation>
        <property>
          <name>!skipFormat</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>com.github.ekryd.sortpom</groupId>
            <artifactId>sortpom-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>sort-pom</id>
                <goals>
                  <goal>sort</goal>
                </goals>
                <phase>process-sources</phase>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>net.revelc.code.formatter</groupId>
            <artifactId>formatter-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>format-java-source</id>
                <goals>
                  <goal>format</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>net.revelc.code</groupId>
            <artifactId>impsort-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>sort-imports</id>
                <goals>
                  <goal>sort</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <!-- Minimal testing profile. (a.k.a. SunnyDay) -->
      <id>sunny</id>
      <properties>
        <failsafe.groups>org.apache.accumulo.test.categories.SunnyDayTests</failsafe.groups>
      </properties>
    </profile>
    <profile>
      <id>aggregate-javadocs</id>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
              <configuration>
                <sourceFileIncludes>
                  <sourceFileInclude>**/org/apache/accumulo/core/client/**/*.java</sourceFileInclude>
                  <sourceFileInclude>**/org/apache/accumulo/core/data/**/*.java</sourceFileInclude>
                  <sourceFileInclude>**/org/apache/accumulo/core/security/**/*.java</sourceFileInclude>
                  <sourceFileInclude>**/org/apache/accumulo/minicluster/**/*.java</sourceFileInclude>
                </sourceFileIncludes>
                <sourceFileExcludes>
                  <sourceFileExclude>**/crypto/**/*.java</sourceFileExclude>
                  <sourceFileExclude>**/impl/**/*.java</sourceFileExclude>
                  <sourceFileExclude>**/thrift/**/*.java</sourceFileExclude>
                </sourceFileExcludes>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile>
      <id>add-spotbugs-excludes</id>
      <activation>
        <file>
          <exists>src/main/spotbugs/exclude-filter.xml</exists>
        </file>
      </activation>
      <properties>
        <spotbugs.excludeFilterFile>src/main/spotbugs/exclude-filter.xml</spotbugs.excludeFilterFile>
      </properties>
    </profile>
    <profile>
      <!-- This profile uses the google errorprone compiler to enforce use of the Override
      annotation where needed. Auto-generated code is not checked. -->
      <id>use-errorprone</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <compilerId>javac-with-errorprone</compilerId>
              <forceJavacCompilerUse>true</forceJavacCompilerUse>
              <compilerArgs>
                <arg>-XepDisableAllChecks</arg>
                <arg>-Xep:MissingOverride:ERROR</arg>
                <arg>-XepExcludedPaths:.*/(proto|thrift|generated-sources)/.*</arg>
              </compilerArgs>
            </configuration>
            <dependencies>
              <dependency>
                <groupId>com.google.errorprone</groupId>
                <artifactId>error_prone_core</artifactId>
                <version>2.3.1</version>
              </dependency>
              <dependency>
                <groupId>org.codehaus.plexus</groupId>
                <artifactId>plexus-compiler-javac-errorprone</artifactId>
                <version>2.8</version>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>sec-bugs</id>
      <build>
        <plugins>
          <plugin>
            <groupId>com.github.spotbugs</groupId>
            <artifactId>spotbugs-maven-plugin</artifactId>
            <configuration>
              <plugins>
                <plugin>
                  <groupId>com.h3xstream.findsecbugs</groupId>
                  <artifactId>findsecbugs-plugin</artifactId>
                  <version>1.8.0</version>
                </plugin>
              </plugins>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>jdk-release-flag</id>
      <activation>
        <jdk>[9,)</jdk>
      </activation>
      <properties>
        <maven.compiler.release>8</maven.compiler.release>
      </properties>
    </profile>
  </profiles>
</project>
