blob: 4c23bfedd256147e9fec84f6ae4609b0a61023c5 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- ========================================================================================================== -->
<!-- Project description -->
<!-- ========================================================================================================== -->
<name>Omid</name>
<description>Apache Omid provides multi-row/multi-table transactional support for HBase-based applications</description>
<inceptionYear>2011</inceptionYear>
<url>http://omid.incubator.apache.org</url>
<groupId>org.apache.omid</groupId>
<artifactId>omid</artifactId>
<packaging>pom</packaging>
<!-- WARNING: do not update version manually, use mvn versions:set -->
<version>1.1.3-SNAPSHOT</version>
<organization>
<name>Apache Software Foundation</name>
<url>http://www.apache.org</url>
</organization>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>30</version>
</parent>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<id>daijy</id>
<name>Daniel Dai</name>
<email>daijy@apache.org</email>
<timezone>-8</timezone>
<organization>Hortonworks</organization>
<organizationUrl>http://www.hortonworks.com</organizationUrl>
</developer>
<developer>
<id>fperezsorrosal</id>
<name>Francisco Perez-Sorrosal</name>
<email>fperezsorrosal@apache.org</email>
<timezone>-8</timezone>
<organization>Yahoo Inc.</organization>
<organizationUrl>http://www.yahoo.com</organizationUrl>
</developer>
<developer>
<id>ikatkov</id>
<name>Igor Katkov</name>
<email>ikatkov@apache.org</email>
<timezone>-8</timezone>
<organization>Yahoo Inc.</organization>
<organizationUrl>http://www.yahoo.com</organizationUrl>
</developer>
<developer>
<id>ohads</id>
<name>Ohad Shacham</name>
<email>ohads@apache.org</email>
<timezone>+2</timezone>
<organization>Yahoo Inc.</organization>
<organizationUrl>http://www.yahoo.com</organizationUrl>
</developer>
<developer>
<id>sameerp</id>
<name>Sameer Paranjpye</name>
<email>sameerp@apache.org</email>
<timezone>-8</timezone>
<organization>Arimo</organization>
<organizationUrl>https://www.arimo.com</organizationUrl>
</developer>
<developer>
<id>yonigo</id>
<name>Yonatan Gottesman</name>
<email>yonigo@apache.org</email>
<timezone>+2</timezone>
<organization>Yahoo Inc</organization>
<organizationUrl>http://www.yahoo.com</organizationUrl>
</developer>
</developers>
<modules>
<module>benchmarks</module>
<module>common</module>
<module>statemachine</module>
<module>metrics</module>
<module>codahale-metrics</module>
<module>transaction-client</module>
<module>timestamp-storage</module>
<module>commit-table</module>
<module>tso-server</module>
<module>hbase-common</module>
<module>hbase-commit-table</module>
<module>hbase-client</module>
<module>hbase-coprocessor</module>
<module>hbase-tools</module>
<module>examples</module>
</modules>
<repositories>
<repository>
<id>apache release</id>
<url>https://repository.apache.org/content/repositories/releases/</url>
</repository>
</repositories>
<scm>
<connection>scm:git:https://gitbox.apache.org/repos/asf/phoenix-omid.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/phoenix-omid.git</developerConnection>
<url>scm:git:https://gitbox.apache.org/repos/asf/phoenix-omid.git</url>
<tag>master</tag>
</scm>
<distributionManagement>
<site>
<id>apache-omid-site</id>
<!-- Wagon-git URL format:
protocol:branch://url
Do not forget the 2 backslashes before the url
-->
<url>git:asf-site://https://gitbox.apache.org/repos/asf/phoenix-omid-site.git</url>
</site>
</distributionManagement>
<properties>
<java.version>1.8</java.version>
<!-- Basic properties -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 3rd-Party Library Versioning -->
<hbase.version>2.5.7-hadoop3</hbase.version>
<hadoop.version>3.2.4</hadoop.version>
<phoenix.thirdparty.version>2.1.0</phoenix.thirdparty.version>
<guice.version>5.1.0</guice.version>
<testng.version>6.10</testng.version>
<slf4j.version>1.7.36</slf4j.version>
<log4j2.version>2.21.0</log4j2.version>
<netty4.version>4.1.108.Final</netty4.version>
<!-- com.google repo will be used except on Aarch64 platform. -->
<protobuf.group>com.google.protobuf</protobuf.group>
<protobuf-java.version>2.5.0</protobuf-java.version>
<protoc.version>2.5.0</protoc.version>
<protobuf.plugin.version>0.6.1</protobuf.plugin.version>
<junit.version>4.13.2</junit.version>
<mockito.version>2.28.2</mockito.version>
<disruptor.version>3.2.0</disruptor.version>
<metrics.version>3.0.1</metrics.version>
<jcommander.version>1.82</jcommander.version>
<commons.conf.version>1.10</commons.conf.version>
<hamcrest.version>1.3</hamcrest.version>
<guava.version>32.1.3-jre</guava.version>
<!-- 2.12+ shades guava -->
<curator.version>5.6.0</curator.version>
<snakeyaml.version>2.0</snakeyaml.version>
<beanutils.version>1.9.4</beanutils.version>
<commons-io.version>2.11.0</commons-io.version>
<commons-pool2.version>2.4.2</commons-pool2.version>
<commons-lang3.version>3.13.0</commons-lang3.version>
<bouncycastle.version>1.78</bouncycastle.version>
<!-- Build related plugins -->
<os.plugin.version>1.7.1</os.plugin.version>
<google.findbugs.version>3.0.2</google.findbugs.version>
<!-- Maven Plugin Versioning -->
<maven-coveralls-plugin.version>4.1.0</maven-coveralls-plugin.version>
<maven-cobertura-plugin.version>2.7</maven-cobertura-plugin.version>
<maven-license-plugin.version>4.3</maven-license-plugin.version>
<maven-pmd-plugin.version>3.21.0</maven-pmd-plugin.version>
<maven-checkstyle-plugin.version>3.3.0</maven-checkstyle-plugin.version>
<maven-jxr-plugin.version>3.3.0</maven-jxr-plugin.version>
<maven-findbugs-maven-plugin.version>3.0.5</maven-findbugs-maven-plugin.version>
<maven-owasp-plugin.version>8.4.0</maven-owasp-plugin.version>
<restrict-imports.enforcer.version>2.4.0</restrict-imports.enforcer.version>
<!-- Code coverage properties -->
<maven-clover-plugin.version>4.5.0</maven-clover-plugin.version>
<maven-sonar-plugin.version>3.10.0.2594</maven-sonar-plugin.version>
<!-- Licensing properties (for license-maven-plugins) -->
<LicenseSet.header>misc/header.txt</LicenseSet.header>
<!-- Harmless extension default-->
<harmless.groupId>org.apache.hbase</harmless.groupId>
<harmless.artifactId>hbase-client</harmless.artifactId>
<harmless.version>${hbase.version}</harmless.version>
<additionalparam>-Xdoclint:none</additionalparam>
<!-- JDK module options, copied from HBase. Not all of these are strictly necessary for Omid -->
<surefire.Xmx>2200m</surefire.Xmx>
<surefire.Xms>1000m</surefire.Xms>
<omid-surefire.argLine>-enableassertions -Xmx${surefire.Xmx}
-Xms${surefire.Xms} -Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true
-Djava.awt.headless=true -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-Dorg.apache.hbase.thirdparty.io.netty.leakDetection.level=advanced
-Dio.netty.eventLoopThreads=3 -Dio.opentelemetry.context.enableStrictContext=true</omid-surefire.argLine>
<!-- Keep these options in sync with add_jdk11_jvm_flags() in bin/omid.sh.
Currently, all of these options are known to be required by HBase, and not the test cases -->
<omid-surefire.jdk11.flags>-Dorg.apache.hbase.thirdparty.io.netty.tryReflectionSetAccessible=true
--add-modules jdk.unsupported
--add-opens java.base/java.io=ALL-UNNAMED
--add-opens java.base/java.nio=ALL-UNNAMED
--add-opens java.base/sun.nio.ch=ALL-UNNAMED
--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/jdk.internal.ref=ALL-UNNAMED
--add-opens java.base/java.lang.reflect=ALL-UNNAMED
--add-opens java.base/java.util=ALL-UNNAMED
--add-opens java.base/java.util.concurrent=ALL-UNNAMED
--add-exports java.base/jdk.internal.misc=ALL-UNNAMED
--add-exports java.security.jgss/sun.security.krb5=ALL-UNNAMED
--add-exports java.base/sun.net.dns=ALL-UNNAMED
--add-exports java.base/sun.net.util=ALL-UNNAMED</omid-surefire.jdk11.flags>
<!-- java.base/jdk.internal.util.random=ALL-UNNAMED is required by the HBase test code, so we do
not need this in bin/ -->
<!-- We probably do not need this at all for Omid, but it's easier to keep in sync with
HBase this way -->
<omid-surefire.jdk17.flags>--add-opens java.base/jdk.internal.util.random=ALL-UNNAMED</omid-surefire.jdk17.flags>
<argLine>${omid-surefire.argLine}</argLine>
</properties>
<build>
<pluginManagement>
<plugins>
<!-- ============================================================================================== -->
<!-- Basic plugins -->
<!-- ============================================================================================== -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory"/>
<forkCount>1C</forkCount>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<trimStackTrace>false</trimStackTrace>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<skipAssembly>true</skipAssembly>
<descriptors>
<descriptor>tso-server/maven/assembly/bin.xml</descriptor>
</descriptors>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<scmCommentPrefix>[ci skip]</scmCommentPrefix>
<useReleaseProfile>false</useReleaseProfile>
<releaseProfiles>release_profile</releaseProfiles>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<dependencies>
<dependency>
<groupId>de.skuzzle.enforcer</groupId>
<artifactId>restrict-imports-enforcer-rule</artifactId>
<version>${restrict-imports.enforcer.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>banned-illegal-imports</id>
<phase>process-sources</phase>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<RestrictImports>
<includeTestCode>true</includeTestCode>
<reason>Use SLF4j for logging</reason>
<bannedImports>
<bannedImport>org.apache.commons.logging.Log</bannedImport>
<bannedImport>org.apache.commons.logging.LogFactory</bannedImport>
</bannedImports>
</RestrictImports>
<RestrictImports>
<includeTestCode>true</includeTestCode>
<reason>Use shaded version in phoenix-thirdparty</reason>
<bannedImports>
<bannedImport>com.google.common.**</bannedImport>
</bannedImports>
</RestrictImports>
<RestrictImports>
<includeTestCode>true</includeTestCode>
<reason>Use shaded version in phoenix-thirdparty</reason>
<bannedImports>
<bannedImport>org.apache.commons.cli.**</bannedImport>
</bannedImports>
</RestrictImports>
<RestrictImports>
<includeTestCode>true</includeTestCode>
<reason>Use commons lang 3</reason>
<bannedImports>
<bannedImport>org.apache.commons.lang.**</bannedImport>
</bannedImports>
</RestrictImports>
<RestrictImports>
<includeTestCode>true</includeTestCode>
<reason>Use edu.umd.cs.findbugs.annotations</reason>
<bannedImports>
<bannedImport>com.sun.istack.**</bannedImport>
</bannedImports>
</RestrictImports>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<!-- ============================================================================================== -->
<!-- Code coverage plugins -->
<!-- ============================================================================================== -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>${maven-cobertura-plugin.version}</version>
<configuration>
<check>
<haltOnFailure>true</haltOnFailure>
<branchRate>0</branchRate>
<lineRate>0</lineRate>
<totalBranchRate>0</totalBranchRate>
<totalLineRate>0</totalLineRate>
<packageLineRate>0</packageLineRate>
<packageBranchRate>0</packageBranchRate>
</check>
<aggregate>true</aggregate>
<formats>
<format>xml</format>
<format>html</format>
</formats>
<instrumentation>
<excludes>
<exclude>org/apache/omid/proto/*.class</exclude>
</excludes>
</instrumentation>
</configuration>
</plugin>
<!-- Show Coverage reports in https://coveralls.io/ -->
<plugin>
<groupId>org.eluder.coveralls</groupId>
<artifactId>coveralls-maven-plugin</artifactId>
<version>${maven-coveralls-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>${maven-findbugs-maven-plugin.version}</version>
<configuration>
<findbugsXmlOutput>true</findbugsXmlOutput>
<xmlOutput>true</xmlOutput>
<threshold>low</threshold>
<excludeFilterFile>misc/findbugs-exclude.xml</excludeFilterFile>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory"/>
<reuseForks>false</reuseForks>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.eluder.coveralls</groupId>
<artifactId>coveralls-maven-plugin</artifactId>
<configuration>
<repoToken>${COVERALLS_TOKEN}</repoToken>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
</plugin>
<!-- ============================================================================================== -->
<!-- License Management plugins -->
<!-- ============================================================================================== -->
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>${maven-license-plugin.version}</version>
<inherited>true</inherited> <!-- for multi-module config -->
<configuration>
<aggregate>true</aggregate> <!-- for multi-module config -->
<skipExistingHeaders>false</skipExistingHeaders>
<!-- Add comment style for protocol buffers -->
<mapping>
<java>SLASHSTAR_STYLE</java>
<proto>DOUBLESLASH_STYLE</proto>
</mapping>
<licenseSets>
<licenseSet>
<header>${LicenseSet.header}</header>
<includes>
<!-- Add files where to include licensing -->
<include>src/**/*.java</include>
<include>src/**/*.xml</include>
<include>src/**/*.proto</include>
<include>**/*.css</include>
<include>**/*.sh</include>
</includes>
<excludes>
<!-- Add files to exclude from licensing -->
<!-- Exclude pom -->
<exclude>**/pom.xml</exclude>
<!-- Exclude config and scripts -->
<exclude>**/dev-utils/*</exclude>
<exclude>dev-support/artifacts/**</exclude>
<exclude>dev-support/work/**</exclude>
<!-- Exclude assembly -->
<exclude>**/maven/assembly/*</exclude>
<!-- Project specific exclusions (e.g. they've been copied/modified from other open-source projects -->
<!-- Protocol buffers generated classes -->
<exclude>**/src/main/java/org/apache/omid/proto/TSOProto.java</exclude>
<!-- Taken from https://github.com/brianfrankcooper/YCSB -->
<exclude>**/src/main/java/org/apache/omid/benchmarks/utils/Generator.java</exclude>
<exclude>**/src/main/java/org/apache/omid/benchmarks/utils/IntegerGenerator.java</exclude>
<exclude>**/src/main/java/org/apache/omid/benchmarks/utils/ZipfianGenerator.java</exclude>
<exclude>**/src/main/java/org/apache/omid/benchmarks/utils/ScrambledZipfianGenerator.java
</exclude>
<!-- Taken from https://github.com/apache/hbase -->
<exclude>**/src/main/java/org/apache/omid/committable/hbase/RegionSplitter.java</exclude>
</excludes>
</licenseSet>
</licenseSets>
</configuration>
<executions>
<execution>
<id>check-license</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<configuration>
<siteDirectory>${basedir}/doc/site</siteDirectory>
<outputDirectory>${basedir}/generated-website</outputDirectory>
<stagingDirectory>${basedir}/generated-website-staging</stagingDirectory>
</configuration>
<dependencies>
<dependency><!-- add support for ssh/scp -->
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/*.yml</exclude>
<exclude>**/*.properties</exclude>
<exclude>**/hbase-site.xml</exclude>
<exclude>**/test-output/**</exclude>
<exclude>doc/site/site.xml</exclude>
<exclude>doc/images/ModuleDependencies.graffle</exclude>
<exclude>misc/findbugs-exclude.xml</exclude>
<exclude>misc/omid_checks.xml</exclude>
<exclude>dev-support/artifacts/**</exclude>
<exclude>dev-support/work/**</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
<extensions>
<extension>
<groupId>${harmless.groupId}</groupId>
<artifactId>${harmless.artifactId}</artifactId>
<version>${harmless.version}</version>
</extension>
</extensions>
</build>
<profiles>
<profile>
<id>build-with-jdk11</id>
<activation>
<jdk>[11,)</jdk>
</activation>
<properties>
<maven.compiler.release>${releaseTarget}</maven.compiler.release>
<!-- TODO: replicate logic for windows support -->
<argLine>${omid-surefire.jdk11.flags}
${omid-surefire.argLine}</argLine>
</properties>
</profile>
<profile>
<id>build-with-jdk17</id>
<activation>
<jdk>[17,)</jdk>
</activation>
<properties>
<argLine>${omid-surefire.jdk11.flags}
${omid-surefire.jdk17.flags}
${omid-surefire.argLine}</argLine>
</properties>
</profile>
<profile>
<id>site-deploy</id>
<pluginRepositories>
<pluginRepository>
<id>synergian-repo</id>
<url>https://raw.githubusercontent.com/synergian/wagon-git/releases</url>
</pluginRepository>
</pluginRepositories>
<properties>
<harmless.groupId>ar.com.synergian</harmless.groupId>
<harmless.artifactId>wagon-git</harmless.artifactId>
<harmless.version>0.2.5</harmless.version>
</properties>
</profile>
<profile>
<id>release_profile</id>
<activation>
<property>
<name>release_profile</name>
</property>
</activation>
<properties>
<buildtype>release</buildtype>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.eluder.coveralls</groupId>
<artifactId>coveralls-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>hbase-1</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<AlwaysFail/>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>hbase-2</id>
<!-- Empty profile to prevent warning when compiling with -Phbase-2 -->
</profile>
<profile>
<id>owasp-dependency-check</id>
<build>
<plugins>
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>${maven-owasp-plugin.version}</version>
<configuration>
<skipProvidedScope>true</skipProvidedScope>
<skipRuntimeScope>true</skipRuntimeScope>
<skipSystemScope>true</skipSystemScope>
</configuration>
<executions>
<execution>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>linux-aarch64</id>
<activation>
<os>
<family>linux</family>
<arch>aarch64</arch>
</os>
</activation>
<properties>
<!-- PHOENIX-6475 Use custom protoc for Linux ARM64 -->
<protobuf.group>org.openlabtesting.protobuf</protobuf.group>
<protoc.version>2.5.0.2</protoc.version>
</properties>
</profile>
<profile>
<!-- Use Mac x64 version of protoc for Apple Silicon (aarch64) Macs -->
<id>osx-aarch64</id>
<activation>
<os>
<family>mac</family>
<arch>aarch64</arch>
</os>
</activation>
<properties>
<os.detected.classifier>osx-x86_64</os.detected.classifier>
</properties>
</profile>
<profile>
<id>code-coverage</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<cloverDatabase>${project.build.directory}/clover/code-coverage.db</cloverDatabase>
<sonar.core.codeCoveragePlugin>clover</sonar.core.codeCoveragePlugin>
<sonar.clover.version>${maven-clover-plugin.version}</sonar.clover.version>
<sonar.clover.reportPath>${project.build.directory}/clover/clover.xml</sonar.clover.reportPath>
<sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.openclover</groupId>
<artifactId>clover-maven-plugin</artifactId>
<version>${maven-clover-plugin.version}</version>
<configuration>
<cloverDatabase>${cloverDatabase}</cloverDatabase>
<cloverMergeDatabase>${cloverDatabase}</cloverMergeDatabase>
<outputDirectory>${project.build.directory}/clover</outputDirectory>
<alwaysReport>true</alwaysReport>
<generateHistorical>false</generateHistorical>
<generateHtml>true</generateHtml>
<generateXml>true</generateXml>
<includesTestSourceRoots>true</includesTestSourceRoots>
<includesAllSourceRoots>true</includesAllSourceRoots>
<includes>
<include>**/org/apache/**/*.java</include>
</includes>
</configuration>
<executions>
<execution>
<id>clover-setup</id>
<goals>
<goal>setup</goal>
</goals>
<phase>process-sources</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>${maven-sonar-plugin.version}</version>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-common</artifactId>
<version>${hbase.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>${hbase.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-testing-util</artifactId>
<version>${hbase.version}</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-server</artifactId>
<version>${hbase.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-endpoint</artifactId>
<version>${hbase.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-annotations</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-auth</artifactId>
<version>${hadoop.version}</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-distcp</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs-client</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>${hadoop.version}</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>${hadoop.version}</version>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-app</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-common</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>${hadoop.version}</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-hs</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-jobclient</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-jobclient</artifactId>
<version>${hadoop.version}</version>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-shuffle</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-yarn-api</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-client</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-common</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-registry</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-server-applicationhistoryservice</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-server-common</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-server-nodemanager</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-server-resourcemanager</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-server-tests</artifactId>
<version>${hadoop.version}</version>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-server-timelineservice</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-server-timelineservice</artifactId>
<version>${hadoop.version}</version>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-server-web-proxy</artifactId>
<version>${hadoop.version}</version>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-client</artifactId>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
<version>${curator.version}</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
<version>${curator.version}</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
<version>${curator.version}</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-test</artifactId>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
<exclusion>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
</exclusion>
</exclusions>
<version>${curator.version}</version>
</dependency>
<!-- These are directly used -->
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport</artifactId>
<version>${netty4.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-common</artifactId>
<version>${netty4.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-codec</artifactId>
<version>${netty4.version}</version>
</dependency>
<!-- These are to manage the indirect dependencies -->
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-buffer</artifactId>
<version>${netty4.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-handler</artifactId>
<version>${netty4.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport-native-epoll</artifactId>
<version>${netty4.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport-native-unix-common</artifactId>
<version>${netty4.version}</version>
</dependency>
<!-- set version for snakeyaml transitive dependencies -->
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>${snakeyaml.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- log4j2 dependencies -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>${log4j2.version}</version>
</dependency>
<!-- Other test dependencies -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>${hamcrest.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk18on</artifactId>
<version>${bouncycastle.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
<version>${bouncycastle.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
</plugin>
<!-- Required for generating cross references with sources on reports: e.g. line numbers... -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>${maven-jxr-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven-checkstyle-plugin.version}</version>
<configuration>
<configLocation>misc/omid_checks.xml</configLocation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${maven-pmd-plugin.version}</version>
<configuration>
<aggregate>true</aggregate>
</configuration>
</plugin>
</plugins>
</reporting>
</project>