<?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.0.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>23</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-shims</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>


        <hbase1.artifactId.suffix>hbase1.x</hbase1.artifactId.suffix>
        <hbase2.artifactId.suffix>hbase2.x</hbase2.artifactId.suffix>

        <shims1.artifactId>omid-hbase-shims-${hbase1.artifactId.suffix}</shims1.artifactId>
        <shims2.artifactId>omid-hbase-shims-${hbase2.artifactId.suffix}</shims2.artifactId>

        <!-- hbase-1 profile props are here and not in profile section to work better with intelij-->
        <shims.artifactId>${shims1.artifactId}</shims.artifactId>
        <shims.exclude.artifactId>${shims2.artifactId}</shims.exclude.artifactId>
        <java.version>1.7</java.version>
        <hadoop.version>${hadoop1.version}</hadoop.version>
        <hbase.version>${hbase1.version}</hbase.version>
        <shims.module>hbase-1</shims.module>
        <hbase.artifactId.suffix>${hbase1.artifactId.suffix}</hbase.artifactId.suffix>
        <hbase.exclude.artifactId.suffix>${hbase2.artifactId.suffix}</hbase.exclude.artifactId.suffix>


        <!-- Basic properties -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <!-- 3rd-Party Library Versioning -->
        <hbase1.version>1.3.1</hbase1.version>
        <hbase2.version>2.0.1</hbase2.version>
        <hadoop1.version>2.7.5</hadoop1.version>
        <hadoop2.version>3.0.0</hadoop2.version>
        <phoenix.thirdparty.version>1.0.0</phoenix.thirdparty.version>
        <guice.version>3.0</guice.version>
        <testng.version>6.10</testng.version>
        <slf4j.version>1.7.7</slf4j.version>
        <log4j.version>1.2.17</log4j.version>
        <netty.version>3.2.6.Final</netty.version>
        <protobuf.version>2.5.0</protobuf.version>
        <protobuf.plugin.version>0.6.1</protobuf.plugin.version>
        <os.plugin.version>1.6.2</os.plugin.version>
        <junit.version>4.13</junit.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>
        <!-- 2.12+ shades guava -->
        <curator.version>2.13.0</curator.version>
        <zookeeper.version>3.4.9</zookeeper.version>
        <snakeyaml.version>1.11</snakeyaml.version>
        <beanutils.version>1.9.4</beanutils.version>
        <commons-io.version>2.4</commons-io.version>
        <google.findbugs.version>3.0.1</google.findbugs.version>
        <commons-pool2.version>2.4.2</commons-pool2.version>

        <!-- Maven Plugin Versioning -->
        <maven-assembly-plugin-version>3.1.1</maven-assembly-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>
        <maven-pmd-plugin.version>3.4</maven-pmd-plugin.version>
        <maven-checkstyle-plugin.version>2.17</maven-checkstyle-plugin.version>
        <maven-jxr-plugin.version>2.3</maven-jxr-plugin.version>
        <maven-findbugs-maven-plugin.version>3.0.1</maven-findbugs-maven-plugin.version>
        <maven-owasp-plugin.version>5.3.2</maven-owasp-plugin.version>

        <!-- Licensing properties (for license-maven-plugins) -->
        <license.header>misc/header.txt</license.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>
    </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>
                        <forkCount>1C</forkCount>
                        <redirectTestOutputToFile>true</redirectTestOutputToFile>
                        <trimStackTrace>false</trimStackTrace>
                    </configuration>
                </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>
                    <configuration>
                        <scmCommentPrefix>[ci skip]</scmCommentPrefix>
                        <useReleaseProfile>false</useReleaseProfile>
                        <releaseProfiles>release_profile</releaseProfiles>
                    </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>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>
                    <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>
                    <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 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>
                    <!-- Add comment style for protocol buffers -->
                    <mapping>
                        <java>SLASHSTAR_STYLE</java>
                        <proto>DOUBLESLASH_STYLE</proto>
                    </mapping>
                </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>

        </plugins>

        <extensions>
            <extension>
                <groupId>${harmless.groupId}</groupId>
                <artifactId>${harmless.artifactId}</artifactId>
                <version>${harmless.version}</version>
            </extension>
        </extensions>

    </build>


    <profiles>

        <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>
                        <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>
                           </excludes>
                        </configuration>
                        <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>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>

            </properties>
        </profile>

        <profile>
            <id>hbase-2</id>
            <properties>
                <shims.artifactId>${shims2.artifactId}</shims.artifactId>
                <shims.exclude.artifactId>${shims1.artifactId}</shims.exclude.artifactId>
                <shims.module>hbase-2</shims.module>
                <shims.artifactId>${shims2.artifactId}</shims.artifactId>
                <java.version>1.8</java.version>
                <hadoop.version>${hadoop2.version}</hadoop.version>
                <hbase.version>${hbase2.version}</hbase.version>
                <hbase.artifactId.suffix>${hbase2.artifactId.suffix}</hbase.artifactId.suffix>
                <hbase.exclude.artifactId.suffix>${hbase1.artifactId.suffix}</hbase.exclude.artifactId.suffix>

            </properties>
        </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>

    </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>

            <!-- Other test dependencies -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </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>
