<?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-${hbase.artifactId.suffix}</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>
        <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>

        <!-- 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.10.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.10.19</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.codehaus.mojo</groupId>
                <artifactId>flatten-maven-plugin</artifactId>
                <version>1.2.5</version>
                <configuration>
                    <updatePomFile>true</updatePomFile>
                </configuration>
                <executions>
                    <!-- enable flattening -->
                    <execution>
                        <id>flatten</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>flatten</goal>
                        </goals>
                    </execution>
                    <!-- ensure proper cleanup -->
                    <execution>
                        <id>flatten.clean</id>
                        <phase>clean</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <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>
            <!-- Empty profile to prevent warning when compiling with -Phbase-1 -->
        </profile>

        <profile>
            <id>hbase-2</id>
            <properties>
                <shims.artifactId>${shims2.artifactId}</shims.artifactId>
                <shims.module>hbase-2</shims.module>
                <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>
            </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>
