blob: 69182831d5ba2fcff4612669c38392c0cc7f2257 [file] [log] [blame]
<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>The Omid project provides transactional support for HBase-based applications</description>
<inceptionYear>2011</inceptionYear>
<url>http://www.github.com/yahoo/omid</url>
<groupId>com.yahoo.omid</groupId>
<artifactId>omid</artifactId>
<packaging>pom</packaging>
<!-- WARNING: do not update version manually, use mvn versions:set -->
<version>0.8.1.14-SNAPSHOT</version>
<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>
<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-shims</module>
<module>hbase-common</module>
<module>hbase-commit-table</module>
<module>hbase-client</module>
<module>hbase-coprocessor</module>
<module>examples</module>
</modules>
<scm>
<connection>scm:git:git://github.com/yahoo/omid.git</connection>
<developerConnection>scm:git:https://${GH_TOKEN}@github.com/yahoo/omid.git</developerConnection>
<url>https://github.com/yahoo/omid</url>
<tag>HEAD</tag>
</scm>
<distributionManagement>
<repository>
<id>bintray</id>
<url>https://api.bintray.com/maven/yahoo/maven/omid</url>
</repository>
</distributionManagement>
<properties>
<!-- Basic properties -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Java Version -->
<java.version>1.7</java.version>
<!-- 3rd-Party Library Versioning -->
<hbase0.version>0.98.10.1-hadoop1</hbase0.version>
<hbase1.version>1.1.1</hbase1.version>
<guava.version>11.0.2</guava.version>
<guice.version>3.0</guice.version>
<testng.version>6.8.8</testng.version>
<slf4j.version>1.7.7</slf4j.version>
<log4j.version>1.2.14</log4j.version>
<netty.version>3.2.6.Final</netty.version>
<protobuf.version>2.5.0</protobuf.version>
<mockito.version>1.9.5</mockito.version>
<disruptor.version>3.2.0</disruptor.version>
<metrics.version>3.0.1</metrics.version>
<jcommander.version>1.35</jcommander.version>
<commons.conf.version>1.10</commons.conf.version>
<hamcrest.version>1.3</hamcrest.version>
<curator.version>2.6.0</curator.version>
<zookeeper.version>3.4.3</zookeeper.version>
<!-- Maven Plugin Versioning -->
<maven-antrun-plugin.version>1.7</maven-antrun-plugin.version>
<maven-source-plugin.version>2.4</maven-source-plugin.version>
<maven-clean-plugin.version>2.5</maven-clean-plugin.version>
<maven-compiler-plugin.version>3.5</maven-compiler-plugin.version>
<maven-assembly-plugin.version>2.4</maven-assembly-plugin.version>
<maven-shade-plugin.version>2.3</maven-shade-plugin.version>
<maven-release-plugin.version>2.3.2</maven-release-plugin.version>
<maven-javadoc-plugin.version>2.10.3</maven-javadoc-plugin.version>
<maven-jar-plugin.version>2.5</maven-jar-plugin.version>
<maven-surefire-plugin.version>2.19</maven-surefire-plugin.version>
<maven-surefire-report-plugin.version>2.19</maven-surefire-report-plugin.version>
<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>2.11</maven-license-plugin.version>
<!-- Licensing properties (for license-maven-plugins) -->
<license.header>misc/header.txt</license.header>
<license.owner>Yahoo Inc.</license.owner>
<license.inceptionYear>${project.inceptionYear}</license.inceptionYear>
<license.currentYear>2016</license.currentYear> <!-- Manually assigned -->
</properties>
<build>
<pluginManagement>
<plugins>
<!-- ============================================================================================== -->
<!-- Basic plugins -->
<!-- ============================================================================================== -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven-clean-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<compilerArgs>
<!-- We had to comment this due to the use of some deprecated APIs in HBase 1.x -->
<!-- As example, we extensively use HTable along the code and is not used anymore in 1.x-->
<!-- TODO Try to restore the parameter when possible -->
<!--arg>-Werror</arg-->
<arg>-Xlint:deprecation</arg>
<arg>-Xlint:unchecked</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<forkCount>1C</forkCount>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${maven-surefire-report-plugin.version}</version>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>${maven-assembly-plugin.version}</version>
<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>
<version>${maven-release-plugin.version}</version>
<configuration>
<scmCommentPrefix>[ci skip]</scmCommentPrefix>
<useReleaseProfile>false</useReleaseProfile>
<releaseProfiles>release_profile</releaseProfiles>
</configuration>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<configuration>
<additionalparam>-Xdoclint:none</additionalparam>
</configuration>
</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>com/yahoo/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>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<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>
<!-- ============================================================================================== -->
<!-- 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>
<header>${license.header}</header>
<aggregate>true</aggregate> <!-- for multi-module config -->
<skipExistingHeaders>false</skipExistingHeaders>
<properties>
<owner>${license.owner}</owner>
<inceptionYear>${project.inceptionYear}</inceptionYear>
<latestYearOfContribution>${license.currentYear}</latestYearOfContribution>
</properties>
<includes>
<!-- Add files where to include licensing -->
<include>src/**/*.java</include>
<include>src/**/*.xml</include>
<include>src/**/*.proto</include>
</includes>
<excludes>
<!-- Add files to exclude from licensing -->
<!-- Exclude pom -->
<exclude>**/pom.xml</exclude>
<!-- Exclude config and scripts -->
<exclude>**/doc/*</exclude>
<exclude>**/dev-utils/*</exclude>
<exclude>**/bin/*</exclude>
<exclude>**/conf/*</exclude>
<!-- Exclude assembly -->
<exclude>**/maven/assembly/*</exclude>
<!-- Exclude tests -->
<exclude>**/src/test/**/*</exclude>
<!-- Project specific exclusions (e.g. they've been copied/modified from other open-source projects -->
<!-- Protocol buffers generated classes -->
<exclude>**/src/main/java/com/yahoo/omid/proto/TSOProto.java</exclude>
<!-- Taken from https://github.com/brianfrankcooper/YCSB -->
<exclude>**/src/main/java/com/yahoo/omid/benchmarks/tso/Generator.java</exclude>
<exclude>**/src/main/java/com/yahoo/omid/benchmarks/tso/IntegerGenerator.java</exclude>
<exclude>**/src/main/java/com/yahoo/omid/benchmarks/tso/ZipfianGenerator.java</exclude>
<exclude>**/src/main/java/com/yahoo/omid/benchmarks/tso/ScrambledZipfianGenerator.java</exclude>
<!-- Taken from https://github.com/apache/hbase -->
<exclude>**/src/main/java/com/yahoo/omid/committable/hbase/RegionSplitter.java</exclude>
</excludes>
<!-- Add comment style for protocol buffers -->
<mapping>
<proto>DOUBLESLASH_STYLE</proto>
</mapping>
</configuration>
<executions>
<execution>
<id>check-license</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>release_profile</id>
<activation>
<property>
<name>release_profile</name>
</property>
</activation>
<properties>
<buildtype>release</buildtype>
</properties>
<build>
<plugins>
<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-0</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<hbase.version>${hbase0.version}</hbase.version>
</properties>
</profile>
<profile>
<id>hbase-1</id>
<properties>
<hbase.version>${hbase1.version}</hbase.version>
</properties>
</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>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-server</artifactId>
<version>${hbase.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>