blob: e4b002ed43b652d8252770eda55d37ded79ecd1d [file] [log] [blame]
<?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
https://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>31</version>
</parent>
<groupId>org.apache.accumulo</groupId>
<artifactId>accumulo-project</artifactId>
<version>3.1.0-SNAPSHOT</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>
<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-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/compactor</module>
<module>server/compaction-coordinator</module>
<module>server/gc</module>
<module>server/manager</module>
<module>server/monitor</module>
<module>server/native</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>HEAD</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>
<!-- avoid error shutting down built-in ForkJoinPool.commonPool() during exec:java tasks -->
<exec.cleanupDaemonThreads>false</exec.cleanupDaemonThreads>
<extraTestArgs>--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.management/java.lang.management=ALL-UNNAMED --add-opens java.management/sun.management=ALL-UNNAMED --add-opens java.base/java.security=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.util.concurrent=ALL-UNNAMED --add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens java.base/java.time=ALL-UNNAMED</extraTestArgs>
<failsafe.excludedGroups />
<failsafe.failIfNoSpecifiedTests>false</failsafe.failIfNoSpecifiedTests>
<failsafe.forkCount>1</failsafe.forkCount>
<failsafe.groups />
<failsafe.reuseForks>false</failsafe.reuseForks>
<!-- prevent introduction of new compiler warnings -->
<maven.compiler.failOnWarning>true</maven.compiler.failOnWarning>
<maven.compiler.release>11</maven.compiler.release>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.javadoc.failOnWarnings>true</maven.javadoc.failOnWarnings>
<maven.site.deploy.skip>true</maven.site.deploy.skip>
<maven.site.skip>true</maven.site.skip>
<!-- surefire/failsafe plugin option -->
<maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile>
<!-- versions-maven-plugin ignore patterns for snapshots, alpha, beta, milestones, and release candidates -->
<maven.version.ignore>.+-SNAPSHOT,(?i).*(alpha|beta)[0-9.-]*,(?i).*[.-](m|rc)[0-9]+</maven.version.ignore>
<minimalJavaBuildVersion>17</minimalJavaBuildVersion>
<!-- timestamp for reproducible outputs, updated on release by the release plugin -->
<project.build.outputTimestamp>2023-08-14T08:11:10Z</project.build.outputTimestamp>
<rat.consoleOutput>true</rat.consoleOutput>
<sourceReleaseAssemblyDescriptor>source-release-tar</sourceReleaseAssemblyDescriptor>
<surefire.excludedGroups />
<surefire.failIfNoSpecifiedTests>false</surefire.failIfNoSpecifiedTests>
<surefire.forkCount>1C</surefire.forkCount>
<surefire.groups />
<surefire.reuseForks>true</surefire.reuseForks>
<unitTestMemSize>-Xmx1G</unitTestMemSize>
<!-- dependency and plugin versions managed with properties -->
<version.auto-service>1.1.1</version.auto-service>
<version.bouncycastle>1.77</version.bouncycastle>
<version.curator>5.5.0</version.curator>
<version.errorprone>2.24.1</version.errorprone>
<version.hadoop>3.3.6</version.hadoop>
<version.opentelemetry>1.34.1</version.opentelemetry>
<version.powermock>2.0.9</version.powermock>
<version.slf4j>2.0.12</version.slf4j>
<version.thrift>0.17.0</version.thrift>
<version.zookeeper>3.9.2</version.zookeeper>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-bom</artifactId>
<version>2.16.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-bom</artifactId>
<version>1.12.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<!-- for dependency convergence between Micrometer and ZooKeeper -->
<groupId>io.netty</groupId>
<artifactId>netty-bom</artifactId>
<version>4.1.104.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-bom</artifactId>
<version>${version.opentelemetry}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-bom</artifactId>
<version>9.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>2.23.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-bom</artifactId>
<version>11.0.19</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.glassfish.hk2</groupId>
<artifactId>hk2-bom</artifactId>
<version>3.0.5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-bom</artifactId>
<version>4.0.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey</groupId>
<artifactId>jersey-bom</artifactId>
<!-- 3.1.0 would require jakarta.ws.rs-api 3.1.0, jakartaee 9 uses 3.0.0 -->
<version>3.0.9</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>5.10.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.beust</groupId>
<artifactId>jcommander</artifactId>
<version>1.82</version>
</dependency>
<dependency>
<groupId>com.fasterxml</groupId>
<artifactId>classmate</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>3.1.8</version>
</dependency>
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-annotations</artifactId>
<version>4.8.3</version>
</dependency>
<dependency>
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service</artifactId>
<version>${version.auto-service}</version>
</dependency>
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
<dependency>
<!-- converge transitive dependency version between guava and caffeine -->
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_annotations</artifactId>
<version>${version.errorprone}</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.2</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.0.0-jre</version>
</dependency>
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<!-- log4j doesn't support 4 yet; see https://github.com/apache/logging-log4j2/issues/1829 -->
<version>3.4.4</version>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.16.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.15.1</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.accumulo</groupId>
<artifactId>accumulo-compaction-coordinator</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.accumulo</groupId>
<artifactId>accumulo-compactor</artifactId>
<version>${project.version}</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-manager</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>
</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.4</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-configuration2</artifactId>
<version>2.10.1</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.14.0</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.11.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>${version.curator}</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-test</artifactId>
<version>${version.curator}</version>
</dependency>
<dependency>
<groupId>org.apache.datasketches</groupId>
<artifactId>datasketches-java</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>${version.hadoop}</version>
<exclusions>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client-api</artifactId>
<version>${version.hadoop}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client-minicluster</artifactId>
<version>${version.hadoop}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client-runtime</artifactId>
<version>${version.hadoop}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-distcp</artifactId>
<version>${version.hadoop}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-minicluster</artifactId>
<version>${version.hadoop}</version>
<exclusions>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-minikdc</artifactId>
<version>${version.hadoop}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-tools</artifactId>
<version>${version.hadoop}</version>
</dependency>
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
<version>${version.thrift}</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>${version.zookeeper}</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper-jute</artifactId>
<version>${version.zookeeper}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk18on</artifactId>
<version>${version.bouncycastle}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
<version>${version.bouncycastle}</version>
</dependency>
<dependency>
<groupId>org.checkerframework</groupId>
<artifactId>checker-qual</artifactId>
<version>3.42.0</version>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.32</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>jakarta.el</artifactId>
<version>4.0.2</version>
</dependency>
<dependency>
<groupId>org.hdrhistogram</groupId>
<artifactId>HdrHistogram</artifactId>
<version>2.1.12</version>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>8.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.30.1-GA</version>
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<version>3.5.3.Final</version>
</dependency>
<dependency>
<!-- force convergence of transitive dependency of hibernate-validator -->
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging-annotations</artifactId>
<version>2.2.1.Final</version>
</dependency>
<dependency>
<!-- force convergence of transitive dependency of hibernate-validator -->
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging-processor</artifactId>
<version>2.2.1.Final</version>
</dependency>
<dependency>
<groupId>org.jline</groupId>
<artifactId>jline</artifactId>
<version>3.25.1</version>
</dependency>
<dependency>
<groupId>org.latencyutils</groupId>
<artifactId>LatencyUtils</artifactId>
<version>2.0.3</version>
<exclusions>
<exclusion>
<groupId>org.hdrhistogram</groupId>
<artifactId>HdrHistogram</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${version.slf4j}</version>
</dependency>
<dependency>
<!-- version specified to converge transitive dependency of hadoop and curator -->
<groupId>org.xerial.snappy</groupId>
<artifactId>snappy-java</artifactId>
<version>1.1.10.5</version>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>2.2</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.16.2</version>
</plugin>
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>4.3</version>
<configuration>
<licenseSets>
<licenseSet>
<header>${rootlocation}/src/build/license-header.txt</header>
<excludes combine.children="append">
<exclude>**/DEPENDENCIES</exclude>
<exclude>**/LICENSE</exclude>
<exclude>**/NOTICE</exclude>
<exclude>**/target/**</exclude>
<exclude>**/*.rf</exclude>
</excludes>
</licenseSet>
</licenseSets>
<mapping combine.children="append">
<!-- general mappings; module-specific mappings appear in their respective pom -->
<Makefile>SCRIPT_STYLE</Makefile>
<c>SLASHSTAR_STYLE</c>
<cc>SLASHSTAR_STYLE</cc>
<css>SLASHSTAR_STYLE</css>
<h>SLASHSTAR_STYLE</h>
<java>SLASHSTAR_STYLE</java>
<thrift>SLASHSTAR_STYLE</thrift>
</mapping>
</configuration>
</plugin>
<plugin>
<groupId>org.gaul</groupId>
<artifactId>modernizer-maven-plugin</artifactId>
<version>2.7.0</version>
<configuration>
<javaVersion>${maven.compiler.target}</javaVersion>
</configuration>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>4.7.3.6</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>com.github.ekryd.sortpom</groupId>
<artifactId>sortpom-maven-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<createBackupFile>false</createBackupFile>
<expandEmptyElements>false</expandEmptyElements>
<keepBlankLines>false</keepBlankLines>
<lineSeparator>\n</lineSeparator>
<nrOfIndentSpace>2</nrOfIndentSpace>
<predefinedSortOrder>recommended_2008_06</predefinedSortOrder>
<sortDependencies>scope,groupId,artifactId</sortDependencies>
<sortProperties>true</sortProperties>
<spaceBeforeCloseEmptyElement>true</spaceBeforeCloseEmptyElement>
<verifyFail>Stop</verifyFail>
</configuration>
</plugin>
<plugin>
<groupId>com.github.koraktor</groupId>
<artifactId>mavanagaiata</artifactId>
<version>1.0.1</version>
<configuration>
<skipNoGit>true</skipNoGit>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<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>
<annotationProcessorPaths combine.children="append">
<path>
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service</artifactId>
<version>${version.auto-service}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Automatic-Module-Name>${accumulo.module.name}</Automatic-Module-Name>
<Implementation-Build>${mvngit.commit.id}</Implementation-Build>
<Sealed>true</Sealed>
</manifestEntries>
</archive>
<excludes>
<exclude>**/log4j2-test.properties</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<quiet>true</quiet>
<additionalJOption>-J-Xmx512m</additionalJOption>
<doclint>all,-missing</doclint>
<legacyMode>true</legacyMode>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<arguments>-P !autoformat,verifyformat,thrift -DskipTests</arguments>
<autoVersionSubmodules>true</autoVersionSubmodules>
<goals>clean deploy</goals>
<preparationGoals>clean package</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-surefire-plugin</artifactId>
<configuration>
<forkCount>${surefire.forkCount}</forkCount>
<reuseForks>${surefire.reuseForks}</reuseForks>
<excludedGroups>${surefire.excludedGroups}</excludedGroups>
<groups>${surefire.groups}</groups>
<systemPropertyVariables combine.children="append">
<java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
</systemPropertyVariables>
<argLine>${unitTestMemSize} ${extraTestArgs}</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<forkCount>${failsafe.forkCount}</forkCount>
<reuseForks>${failsafe.reuseForks}</reuseForks>
<excludedGroups>${failsafe.excludedGroups}</excludedGroups>
<groups>${failsafe.groups}</groups>
<systemPropertyVariables combine.children="append">
<java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
</systemPropertyVariables>
<argLine>${extraTestArgs}</argLine>
<trimStackTrace>false</trimStackTrace>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.5.0</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.1.1</version>
</plugin>
<plugin>
<groupId>net.revelc.code</groupId>
<artifactId>apilyzer-maven-plugin</artifactId>
<version>1.3.0</version>
</plugin>
<plugin>
<groupId>net.revelc.code.formatter</groupId>
<artifactId>formatter-maven-plugin</artifactId>
<version>2.23.0</version>
<configuration>
<configFile>${rootlocation}/src/build/eclipse-codestyle.xml</configFile>
<excludes>
<exclude>**/thrift/*.java</exclude>
</excludes>
<lineEnding>LF</lineEnding>
<skipCssFormatting>true</skipCssFormatting>
<skipHtmlFormatting>true</skipHtmlFormatting>
<skipJsFormatting>true</skipJsFormatting>
<skipJsonFormatting>true</skipJsonFormatting>
<skipXmlFormatting>true</skipXmlFormatting>
</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>
<exclude>.vscode/**</exclude>
<exclude>.factorypath</exclude>
<exclude>.github/**</exclude>
<exclude>**/*.rf</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.9.0</version>
<configuration>
<removeUnused>true</removeUnused>
<groups>java.,javax.,jakarta.,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>
<!-- auto-service-annotations is transitive via auto-service -->
<undeclared>com.google.auto.service:auto-service-annotations:jar:*</undeclared>
<!-- used/undeclared child jars brought in by parents below -->
<undeclared>org.apache.curator:curator-client:jar:*</undeclared>
<undeclared>org.apache.hadoop:hadoop-common:jar:*</undeclared>
<undeclared>org.apache.hadoop:hadoop-hdfs:*:*</undeclared>
<undeclared>org.apache.hadoop:hadoop-mapreduce-client-core:jar:*</undeclared>
<undeclared>org.apache.hadoop:hadoop-auth:jar:*</undeclared>
<undeclared>org.apache.httpcomponents:httpcore:jar:*</undeclared>
<undeclared>org.powermock:powermock-core:jar:*</undeclared>
<undeclared>org.powermock:powermock-reflect:jar:*</undeclared>
</ignoredUsedUndeclaredDependencies>
<ignoredUnusedDeclaredDependencies>
<!-- auto-service isn't used in every module -->
<unused>com.google.auto.service:auto-service:jar:*</unused>
<!-- unused/declared implementation jars or parent jars that bring in children -->
<unused>org.apache.hadoop:hadoop-client:jar:*</unused>
<unused>org.apache.hadoop:hadoop-client-runtime:jar:*</unused>
<unused>org.apache.hadoop:hadoop-minicluster:jar:*</unused>
<unused>org.glassfish.jaxb:txw2:jar:*</unused>
<unused>org.glassfish.jersey.ext:jersey-bean-validation:jar:*</unused>
<unused>org.glassfish.jersey.inject:jersey-hk2:jar:*</unused>
<unused>org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2:jar:*</unused>
<unused>org.powermock:powermock-api-easymock:jar:*</unused>
<!-- spotbugs annotations may or may not be used in each module -->
<unused>com.github.spotbugs:spotbugs-annotations:jar:*</unused>
<!-- ignore unused native; analysis isn't possible with tar.gz dependency -->
<unused>org.apache.accumulo:accumulo-native:tar.gz:*</unused>
<!-- ignore runtime log4j dependencies at test scope -->
<unused>org.apache.logging.log4j:log4j-1.2-api:jar:*</unused>
<unused>org.apache.logging.log4j:log4j-slf4j2-impl:jar:*</unused>
<unused>org.apache.logging.log4j:log4j-web:jar:*</unused>
<!-- ignore log4j dep used for annotations and needed for compile time linting -->
<unused>biz.aQute.bnd:biz.aQute.bnd.annotation:jar:*</unused>
<unused>org.junit.jupiter:junit-jupiter-engine:jar:*</unused>
</ignoredUnusedDeclaredDependencies>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<!-- create property named 'rootlocation' to point to top of multi-module project -->
<id>create-rootlocation-property</id>
<goals>
<goal>rootlocation</goal>
</goals>
</execution>
<execution>
<id>create-automatic-module-name</id>
<goals>
<goal>regex-property</goal>
</goals>
<configuration>
<name>accumulo.module.name</name>
<regex>-</regex>
<replacement>.</replacement>
<value>org-apache-${project.artifactId}</value>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-accumulo-rules</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>validate</phase>
<configuration>
<rules>
<reactorModuleConvergence />
<banDuplicatePomDependencyVersions />
<dependencyConvergence />
<bannedDependencies>
<excludes>
<!-- we redirect logging to log4j2, so we should have those bridges instead -->
<!-- commons-logging is allowed because log4j-jcl uses it as a dependency -->
<exclude>ch.qos.logback:*</exclude>
<exclude>ch.qos.reload4j:*</exclude>
<exclude>log4j:*</exclude>
<!-- exclude log4j-slf4j-impl to prefer log4j-slf4j2-impl -->
<exclude>org.apache.logging.log4j:log4j-slf4j-impl</exclude>
<exclude>org.apache.logging.log4j:log4j-to-slf4j</exclude>
<exclude>org.slf4j:*</exclude>
</excludes>
<includes>
<!-- only allow API jar for slf4j, but no other slf4j implementations -->
<include>org.slf4j:slf4j-api</include>
</includes>
</bannedDependencies>
</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 https://checkstyle.sourceforge.io/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="[@]Deprecated([^)]*forRemoval[^)]*)" />
<property name="message" value="forRemoval should not be used." />
</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="import org[.]apache[.]accumulo[.]core[.]util[.]LazySingletons;" />
<property name="message" value="Use static imports for LazySingletons for consistency" />
</module>
<module name="RegexpSinglelineJava">
<property name="format" value="org[.]junit[.]jupiter[.]api[.]Assertions;" />
<property name="message" value="Use static imports for Assertions.* methods for consistency" />
</module>
<module name="RegexpSinglelineJava">
<property name="format" value="org[.]junit[.]jupiter[.]api[.]Assumptions;" />
<property name="message" value="Use static imports for Assumptions.* methods for consistency" />
</module>
<module name="RegexpSinglelineJava">
<property name="format" value="import java[.]nio[.]charset[.]StandardCharsets;" />
<property name="message" value="Use static imports for StandardCharsets.* constants for consistency" />
</module>
<module name="RegexpSinglelineJava">
<!-- double escape quotes because checkstyle passes these through another xml parser -->
<property name="format" value="&amp;quot; [+] &amp;quot;" />
<property name="message" value="Unnecessary concatenation of string literals" />
</module>
<module name="RegexpSinglelineJava">
<property name="format" value="com[.]google[.]common[.]cache[.]" />
<property name="message" value="Please use Caffeine Cache, not Guava" />
</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="allowMissingParamTags" value="true" />
<property name="allowMissingReturnTag" value="true" />
<property name="allowedAnnotations" value="Override,Test,BeforeClass,AfterClass,Before,After,BeforeAll,AfterAll,BeforeEach,AfterEach" />
</module>
<module name="MissingOverrideCheck" />
<!--Require braces for all control statements -->
<module name="NeedBraces" />
</module>
</module>
</checkstyleRules>
<violationSeverity>warning</violationSeverity>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<excludes>**/thrift/*.java</excludes>
</configuration>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>10.12.6</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>
<phase>prepare-package</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.revelc.code</groupId>
<artifactId>warbucks-maven-plugin</artifactId>
<executions>
<execution>
<id>check-junit-tags-on-its</id>
<goals>
<goal>check</goal>
</goals>
<configuration>
<rules>
<rule>
<includeMainClasses>true</includeMainClasses>
<includeTestClasses>true</includeTestClasses>
<classPattern>.*IT</classPattern>
<classAnnotationPattern>org[.]junit[.]jupiter[.]api[.]Tag</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>
<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-dependency-plugin</artifactId>
<versionRange>[0,)</versionRange>
<goals>
<goal>analyze-only</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.koraktor</groupId>
<artifactId>mavanagaiata</artifactId>
<versionRange>[0,)</versionRange>
<goals>
<goal>commit</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<versionRange>[0,)</versionRange>
<goals>
<goal>check</goal>
<goal>format</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>
<!-- off by default, but enable with '-P verifyformat' or '-DverifyFormat' -->
<id>verifyformat</id>
<activation>
<property>
<name>verifyFormat</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<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>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<executions>
<execution>
<id>verify-license-headers</id>
<goals>
<goal>check</goal>
</goals>
<phase>process-test-resources</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.revelc.code.formatter</groupId>
<artifactId>formatter-maven-plugin</artifactId>
<executions>
<execution>
<id>verify-formatted-java-source</id>
<goals>
<goal>validate</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.revelc.code</groupId>
<artifactId>impsort-maven-plugin</artifactId>
<executions>
<execution>
<id>verify-sorted-imports</id>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</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>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<executions>
<execution>
<id>license-headers</id>
<goals>
<goal>format</goal>
</goals>
<phase>process-test-resources</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>SunnyDay</failsafe.groups>
</properties>
</profile>
<profile>
<!-- mvn clean package javadoc:aggregate -DskipTests -Paggregate-javadocs -->
<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/iterators/**/*.java</sourceFileInclude>
<sourceFileInclude>**/org/apache/accumulo/core/security/**/*.java</sourceFileInclude>
<sourceFileInclude>**/org/apache/accumulo/core/spi/**/*.java</sourceFileInclude>
<sourceFileInclude>**/org/apache/accumulo/hadoop/**/*.java</sourceFileInclude>
<sourceFileInclude>**/org/apache/accumulo/minicluster/**/*.java</sourceFileInclude>
</sourceFileIncludes>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>add-thrift-java-source</id>
<activation>
<file>
<exists>src/main/thrift-gen-java</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-thrift-java-source</id>
<goals>
<goal>add-source</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<sources>
<source>src/main/thrift-gen-java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</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>
<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.12.0</version>
</plugin>
</plugins>
</configuration>
</plugin>
</plugins>
</build>
</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>
<profile>
<id>reuseForks</id>
<activation>
<property>
<name>reuseForks</name>
</property>
</activation>
<properties>
<failsafe.reuseForks>${reuseForks}</failsafe.reuseForks>
<surefire.reuseForks>${reuseForks}</surefire.reuseForks>
</properties>
</profile>
<profile>
<!-- This profile uses the Google ErrorProne tool to perform static code analysis at
compile time. Auto-generated code is not checked.
See: https://errorprone.info/bugpatterns for list of available bug patterns.-->
<id>errorprone</id>
<properties>
<!-- forking is required for -J options to take effect -->
<maven.compiler.fork>true</maven.compiler.fork>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgs>
<arg>-XDcompilePolicy=simple</arg>
<arg>
-Xplugin:ErrorProne \
-XepExcludedPaths:.*/(thrift|generated-sources|src/test)/.* \
-XepDisableWarningsInGeneratedCode \
-XepDisableAllWarnings \
<!-- ERROR patterns to specifically ignore -->
-Xep:MustBeClosedChecker:OFF \
-Xep:UnicodeInCode:OFF \
<!-- WARNING patterns to specifically check -->
-Xep:ExpectedExceptionChecker \
<!-- treat following warning as an error -->
-Xep:FutureReturnValueIgnored:ERROR \
-Xep:MissingOverride \
<!--WARN if braces are missing for control statements -->
-Xep:MissingBraces:WARN \
<!-- Items containing 'OFF' are currently Errors flagged by ErrorProne. The 'OFF'
can be removed and the project recompiled to discover location of errors for
further analysis. @SuppressWarnings can be used to ignore errors if desired. -->
</arg>
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</arg>
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg>
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg>
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg>
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg>
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg>
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg>
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg>
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg>
</compilerArgs>
<annotationProcessorPaths>
<path>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_core</artifactId>
<version>${version.errorprone}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>