<?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>23</version>
  </parent>
  <groupId>org.apache.accumulo</groupId>
  <artifactId>accumulo-project</artifactId>
  <version>1.10.1</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>docs</module>
    <module>examples/simple</module>
    <module>fate</module>
    <module>iterator-test-harness</module>
    <module>maven-plugin</module>
    <module>minicluster</module>
    <module>proxy</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>
    <module>trace</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/1.10.1</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>GitHub Actions</system>
    <url>https://github.com/apache/accumulo/actions</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.66</bouncycastle.version>
    <!-- Curator version -->
    <curator.version>2.11.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>
    <failsafe.excludedGroups />
    <failsafe.forkCount>1</failsafe.forkCount>
    <failsafe.groups />
    <!-- version that works when building with Hadoop 2 or 3.0; use 27.0-jre for 3.1 and later -->
    <guava.version>14.0.1</guava.version>
    <hadoop.version>2.6.5</hadoop.version>
    <htrace.hadoop.version>4.1.0-incubating</htrace.hadoop.version>
    <htrace.version>3.1.0-incubating</htrace.version>
    <it.failIfNoSpecifiedTests>false</it.failIfNoSpecifiedTests>
    <!-- jetty 9.2 is the last version to support jdk less than 1.8 -->
    <jetty.version>9.2.26.v20180806</jetty.version>
    <maven.compiler.release>8</maven.compiler.release>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.plugin-version>3.5.0</maven.plugin-version>
    <!-- surefire/failsafe plugin option -->
    <maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile>
    <powermock.version>2.0.7</powermock.version>
    <!-- timestamp for reproducible outputs, updated on release by the release plugin -->
    <project.build.outputTimestamp>2020-12-17T22:04:38Z</project.build.outputTimestamp>
    <rat.consoleOutput>true</rat.consoleOutput>
    <!-- surefire/failsafe plugin option -->
    <reuseForks>false</reuseForks>
    <slf4j.version>1.7.25</slf4j.version>
    <sourceReleaseAssemblyDescriptor>source-release-tar</sourceReleaseAssemblyDescriptor>
    <surefire.excludedGroups />
    <surefire.failIfNoSpecifiedTests>false</surefire.failIfNoSpecifiedTests>
    <surefire.forkCount>1C</surefire.forkCount>
    <surefire.groups />
    <surefire.version>3.0.0-M3</surefire.version>
    <!-- Thrift version -->
    <thrift.version>0.9.3-1</thrift.version>
    <!-- ZooKeeper version -->
    <zookeeper.version>3.4.14</zookeeper.version>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.beust</groupId>
        <artifactId>jcommander</artifactId>
        <version>1.78</version>
      </dependency>
      <dependency>
        <groupId>com.google.auto.service</groupId>
        <artifactId>auto-service</artifactId>
        <!-- newer auto-service requires newer guava -->
        <version>1.0-rc3</version>
      </dependency>
      <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.6</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>2.5.0</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.14</version>
      </dependency>
      <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2.2</version>
      </dependency>
      <dependency>
        <groupId>commons-configuration</groupId>
        <artifactId>commons-configuration</artifactId>
        <version>1.6</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <!-- this version is needed for commons-vfs2 2.3 -->
        <version>2.6</version>
      </dependency>
      <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
      </dependency>
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
      </dependency>
      <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>jsr311-api</artifactId>
        <version>1.1.1</version>
      </dependency>
      <dependency>
        <groupId>jline</groupId>
        <artifactId>jline</artifactId>
        <version>2.11</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.1</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-docs</artifactId>
        <version>${project.version}</version>
        <classifier>user-manual</classifier>
        <type>html</type>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-examples-simple</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-fate</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-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-maven-plugin</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-proxy</artifactId>
        <version>${project.version}</version>
      </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-trace</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-jci-core</artifactId>
        <version>1.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-jci-fam</artifactId>
        <version>1.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.1</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-vfs2</artifactId>
        <!-- version that works when building with Hadoop 2 or 3 -->
        <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>
      </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>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-minikdc</artifactId>
        <!-- this version works better with java 11 than Hadoop 2 versions -->
        <version>3.0.0</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.maven</groupId>
        <artifactId>maven-artifact</artifactId>
        <version>${maven.plugin-version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-core</artifactId>
        <version>${maven.plugin-version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-model</artifactId>
        <version>${maven.plugin-version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-plugin-api</artifactId>
        <version>${maven.plugin-version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.plugin-tools</groupId>
        <artifactId>maven-plugin-annotations</artifactId>
        <version>3.5.2</version>
      </dependency>
      <dependency>
        <groupId>org.apache.thrift</groupId>
        <artifactId>libthrift</artifactId>
        <version>${thrift.version}</version>
      </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-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.gaul</groupId>
        <artifactId>modernizer-maven-annotations</artifactId>
        <version>1.8.0</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>org.gaul</groupId>
      <artifactId>modernizer-maven-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>4.0.0</version>
          <configuration>
            <xmlOutput>true</xmlOutput>
            <effort>Max</effort>
            <failOnError>true</failOnError>
            <includeTests>true</includeTests>
            <maxRank>16</maxRank>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <!-- Must use 3.1.1 until https://issues.apache.org/jira/browse/MASSEMBLY-941 is fixed -->
          <version>3.1.1</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>
          <configuration>
            <optimize>true</optimize>
            <showDeprecation>true</showDeprecation>
            <showWarnings>true</showWarnings>
            <compilerArgs>
              <arg>-Xlint:all</arg>
              <arg>-Xlint:-processing</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.2.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 -DskipTests</arguments>
            <autoVersionSubmodules>true</autoVersionSubmodules>
            <goals>clean deploy</goals>
            <preparationGoals>clean package</preparationGoals>
            <tagNameFormat>rel/@{project.version}</tagNameFormat>
            <releaseProfiles>apache-release,accumulo-release,skip-plugin-its-with-skipTests</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>
          <configuration>
            <forkCount>${surefire.forkCount}</forkCount>
            <excludedGroups>${surefire.excludedGroups}</excludedGroups>
            <groups>${surefire.groups}</groups>
            <systemPropertyVariables>
              <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
            </systemPropertyVariables>
            <argLine>-Xmx1G</argLine>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <configuration>
            <forkCount>${failsafe.forkCount}</forkCount>
            <excludedGroups>${failsafe.excludedGroups}</excludedGroups>
            <groups>${failsafe.groups}</groups>
            <systemPropertyVariables>
              <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
            </systemPropertyVariables>
            <trimStackTrace>false</trimStackTrace>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.asciidoctor</groupId>
          <artifactId>asciidoctor-maven-plugin</artifactId>
          <version>2.0.0</version>
        </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>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.12.2</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>
          <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.4.1</version>
          <configuration>
            <removeUnused>true</removeUnused>
            <groups>java.,javax.,org.,com.</groups>
            <excludes>
              <exclude>**/thrift/*.java</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>3.0.0-M3</version>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <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>
                  <version>[3.5.0,)</version>
                </requireMavenVersion>
                <requireJavaVersion>
                  <!-- 15 dropped support for UseConcMarkSweepGC flag that Accumulo 1.x uses -->
                  <version>[11,15)</version>
                </requireJavaVersion>
              </rules>
            </configuration>
          </execution>
          <execution>
            <id>enforce-hadoop-profile</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireProperty>
                  <property>hadoop.profile</property>
                  <regex>(2|3)</regex>
                  <regexMessage>You should specify the Hadoop profile by major Hadoop generation, i.e. 2 or 3, not by a version number.
    Use hadoop.version to use a particular Hadoop version within that generation.</regexMessage>
                </requireProperty>
              </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="option" value="alone" />
                  <property name="tokens" value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, 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.18</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>
    </plugins>
  </build>
  <profiles>
    <profile>
      <!-- This profile skips all Quality Assurance checks; activate with -PskipQA OR -DskipQA  -->
      <id>skipQA</id>
      <activation>
        <property>
          <name>skipQA</name>
        </property>
      </activation>
      <properties>
        <accumulo.skip>true</accumulo.skip>
        <apilyzer.skip>true</apilyzer.skip>
        <checkstyle.skip>true</checkstyle.skip>
        <formatter.skip>true</formatter.skip>
        <impsort.skip>true</impsort.skip>
        <maven.plugin.skip>true</maven.plugin.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>
      <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-plugin-plugin</artifactId>
                        <versionRange>[0,)</versionRange>
                        <goals>
                          <goal>helpmojo</goal>
                          <goal>descriptor</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>org.apache.maven.plugins</groupId>
                        <artifactId>maven-checkstyle-plugin</artifactId>
                        <versionRange>[0,)</versionRange>
                        <goals>
                          <goal>check</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <versionRange>[0,)</versionRange>
                        <goals>
                          <goal>copy-dependencies</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <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.apache.maven.plugins</groupId>
                        <artifactId>maven-enforcer-plugin</artifactId>
                        <versionRange>[0,)</versionRange>
                        <goals>
                          <goal>enforce</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-invoker-plugin</artifactId>
                        <versionRange>[0,)</versionRange>
                        <goals>
                          <goal>install</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>
    <!-- Active by default, build against Hadoop 2 -->
    <profile>
      <id>hadoop-default</id>
      <activation>
        <property>
          <name>!hadoop.profile</name>
        </property>
      </activation>
      <properties>
        <hadoop.profile>2</hadoop.profile>
      </properties>
    </profile>
    <!-- Build against hadoop 3 explicitly -->
    <profile>
      <id>hadoop3</id>
      <activation>
        <property>
          <name>hadoop.profile</name>
          <value>3</value>
        </property>
      </activation>
      <properties>
        <hadoop.version>3.0.3</hadoop.version>
      </properties>
    </profile>
    <profile>
      <id>forkCount</id>
      <activation>
        <property>
          <name>forkCount</name>
        </property>
      </activation>
      <properties>
        <failsafe.forkCount>${forkCount}</failsafe.forkCount>
        <surefire.forkCount>${forkCount}</surefire.forkCount>
      </properties>
    </profile>
  </profiles>
</project>
