<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
  <parent>
    <groupId>org.sonatype.oss</groupId>
    <artifactId>oss-parent</artifactId>
    <version>7</version>
    <relativePath />
  </parent>
  
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.bdgenomics.utils</groupId>
  <artifactId>utils-parent_2.10</artifactId>
  <version>0.2.2</version>
  <packaging>pom</packaging>
  <name>utils</name>
  <description>General utility code used across BDG projects</description>
  <url>http://bdgenomics.org/</url>

  <properties>
    <java.version>1.7</java.version>
    <spark.version>1.2.0</spark.version>
    <parquet.version>1.7.0</parquet.version>
    <!-- Edit the following line to configure the Hadoop (HDFS) version. -->
    <hadoop.version>2.2.0</hadoop.version>
    <scoverage.version>0.99.2</scoverage.version>
  </properties>
  
  <modules>
    <module>utils-misc</module>
    <module>utils-minhash</module>
    <module>utils-metrics</module>
    <module>utils-io</module>
    <module>utils-statistics</module>
    <module>utils-cli</module>
    <module>utils-serialization</module>
  </modules>
  
  <licenses>
    <license>
      <name>Apache License</name>
      <url>https://raw.github.com/bigdatagenomics/utils/master/LICENSE.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <scm>
    <connection>scm:git:git@github.com:bigdatagenomics/utils.git</connection>
    <developerConnection>scm:git:git@github.com:bigdatagenomics/utils.git</developerConnection>
    <url>scm:git:git@github.com:bigdatagenomics/utils.git</url>
    <tag>utils-parent-0.2.2_2.10</tag>
  </scm>
  <developers>
    <developer>
      <id>massie</id>
      <name>Matt Massie</name>
      <email>massie@cs.berkeley.edu</email>
      <url>http://www.cs.berkeley.edu/~massie</url>
      <organization>U.C. Berkeley Computer Science</organization>
      <organizationUrl>http://www.cs.berkeley.edu/</organizationUrl>
    </developer>
  </developers>
  <issueManagement>
    <system>github</system>
    <url>https://github.com/bigdatagenomics/utils/issues</url>
  </issueManagement>

  <build>
    <outputDirectory>target/scala-2.10.4/classes</outputDirectory>
    <testOutputDirectory>target/scala-2.10.4/test-classes</testOutputDirectory>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.9.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.5</version>
          <configuration>
            <mavenExecutorId>forked-path</mavenExecutorId>
            <useReleaseProfile>false</useReleaseProfile>
            <arguments>-Psonatype-oss-release</arguments>
            <tagNameFormat>utils-parent-${project.version}_2.10</tagNameFormat>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>1.5</version>
        </plugin>
        <plugin>
          <groupId>net.alchim31.maven</groupId>
          <artifactId>scala-maven-plugin</artifactId>
          <version>3.1.5</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>2.5</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.1</version>
          <configuration>
            <source>${java.version}</source>
            <target>${java.version}</target>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.7</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>1.3.1</version>
          <executions>
            <execution>
              <id>enforce-versions</id>
              <goals>
                <goal>enforce</goal>
              </goals>
              <configuration>
                <rules>
                  <requireMavenVersion>
                    <version>[3.1.1,)</version>
                    <message>UTILS requires Maven 3.1.1 or greater</message>
                  </requireMavenVersion>
                  <requireJavaVersion>
                    <version>[1.7,)</version>
                    <message>UTILS requires Java 1.7 or greater</message>
                  </requireJavaVersion>
                </rules>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>2.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>2.6</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.17</version>
        </plugin>
        <plugin>
          <groupId>org.scalatest</groupId>
          <artifactId>scalatest-maven-plugin</artifactId>
          <version>1.0-RC2</version>
        </plugin>
        <plugin>
          <groupId>pl.project13.maven</groupId>
          <artifactId>git-commit-id-plugin</artifactId>
          <version>2.1.9</version>
        </plugin>
        <plugin>
          <groupId>com.mycila.maven-license-plugin</groupId>
          <artifactId>maven-license-plugin</artifactId>
          <version>1.10.b1</version>
          <configuration>
            <header>LICENSE_header.txt</header>
            <strictCheck>true</strictCheck>
            <properties>
              <owner>Big Data Genomics Developers</owner>
              <email>adam-developers@googlegroups.com</email>
            </properties>
            <includes>
              <include>**/src/main/scala/**</include>
              <include>**/src/test/scala/**</include>
              <include>**/src/main/java/**</include>
              <include>**/src/test/scala/**</include>
            </includes>
          </configuration>
          <executions>
            <execution>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>1.7</version>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>scala-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>scala-compile-first</id>
            <phase>process-resources</phase>
            <goals>
              <goal>compile</goal>
            </goals>
            <configuration>
              <args>
                <arg>-g:vars</arg>
              </args>
            </configuration>
          </execution>
          <execution>
            <id>scala-test-compile-first</id>
            <phase>process-test-resources</phase>
            <goals>
              <goal>testCompile</goal>
            </goals>
          </execution>
          <execution>
            <id>attach-scaladocs</id>
            <phase>verify</phase>
            <goals>
              <goal>doc-jar</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <scalaVersion>2.10.4</scalaVersion>
          <useZincServer>true</useZincServer>
          <args>
            <arg>-unchecked</arg>
            <arg>-optimise</arg>
            <arg>-deprecation</arg>
          </args>
          <jvmArgs>
            <jvmArg>-Xms64m</jvmArg>
            <jvmArg>-Xms1024m</jvmArg>
            <jvmArg>-Xmx1024m</jvmArg>
          </jvmArgs>
          <javacArgs>
            <javacArg>-source</javacArg>
            <javacArg>${java.version}</javacArg>
            <javacArg>-target</javacArg>
            <javacArg>${java.version}</javacArg>
          </javacArgs>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.scalariform</groupId>
        <artifactId>scalariform-maven-plugin</artifactId>
        <version>0.1.4</version>
        <executions>
          <execution>
            <id>default-cli</id>
            <goals>
              <goal>format</goal>
            </goals>
            <configuration>
              <alignParameters>true</alignParameters>
              <alignSingleLineCaseStatements>true</alignSingleLineCaseStatements>
              <doubleIndentClassDeclaration>true</doubleIndentClassDeclaration>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.esotericsoftware.kryo</groupId>
        <artifactId>kryo</artifactId>
        <version>2.21</version>
      </dependency>
      <dependency>
        <groupId>org.bdgenomics.utils</groupId>
        <artifactId>utils-misc_2.10</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.bdgenomics.utils</groupId>
        <artifactId>utils-misc_2.10</artifactId>
        <version>${project.version}</version>
        <scope>test</scope>
        <type>test-jar</type>
      </dependency>
      <dependency>
        <groupId>org.bdgenomics.utils</groupId>
        <artifactId>utils-io_2.10</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.bdgenomics.utils</groupId>
        <artifactId>utils-metrics_2.10</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>com.netflix.servo</groupId>
        <artifactId>servo-core</artifactId>
        <version>0.5.5</version>
      </dependency>
      <dependency>
        <groupId>org.scalatest</groupId>
        <artifactId>scalatest_2.10</artifactId>
        <version>2.2.2</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.scoverage</groupId>
        <artifactId>scalac-scoverage-plugin_2.10</artifactId>
        <version>${scoverage.version}</version>
      </dependency>
      <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-library</artifactId>
        <version>2.10.4</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>${hadoop.version}</version>
        <scope>provided</scope>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
          </exclusion>
          <exclusion>
            <groupId>asm</groupId>
            <artifactId>asm</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.jboss.netty</groupId>
            <artifactId>netty</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>*</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.sonatype.sisu.inject</groupId>
            <artifactId>*</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.10</artifactId>
        <version>${spark.version}</version>
        <scope>provided</scope>
        <exclusions>
          <exclusion>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.twitter</groupId>
            <artifactId>chill_2.10</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.scalanlp</groupId>
        <artifactId>breeze_2.10</artifactId>
        <version>0.10</version>
      </dependency>
      <dependency>
        <groupId>org.apache.parquet</groupId>
        <artifactId>parquet-avro</artifactId>
        <version>${parquet.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.3.2</version>
      </dependency>
      <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
        <version>1.7.5</version>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>1.9.5</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-mllib_2.10</artifactId>
        <version>${spark.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-math3</artifactId>
        <version>3.3</version>
      </dependency>
      <dependency>
        <groupId>args4j</groupId>
        <artifactId>args4j</artifactId>
        <version>2.0.23</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <profiles>
    <!-- Only build coverage in when we want to run coverage -->
    <profile>
      <id>coverage</id>
      <build>
        <plugins>
          <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>scala-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>scala-compile-first</id>
                <phase>process-resources</phase>
                <goals>
                  <goal>add-source</goal>
                  <goal>compile</goal>
                </goals>
                <configuration>
                  <args>
                    <arg>-g:vars</arg>
                    <arg>-Yrangepos</arg>
                    <arg>-P:scoverage:dataDir:${project.build.directory}</arg>
                  </args>
                </configuration>
              </execution>
              <execution>
                <id>scala-test-compile-first</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>testCompile</goal>
                </goals>
              </execution>
              <execution>
                <id>attach-scaladocs</id>
                <phase>verify</phase>
                <goals>
                  <goal>doc-jar</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <scalaVersion>2.10.4</scalaVersion>
              <useZincServer>true</useZincServer>
              <args>
                <arg>-unchecked</arg>
                <arg>-optimise</arg>
                <arg>-deprecation</arg>
                <arg>-Xlog-implicits</arg>
              </args>
              <jvmArgs>
                <jvmArg>-Xms64m</jvmArg>
                <jvmArg>-Xms1024m</jvmArg>
                <jvmArg>-Xmx1024m</jvmArg>
              </jvmArgs>
              <javacArgs>
                <javacArg>-source</javacArg>
                <javacArg>${java.version}</javacArg>
                <javacArg>-target</javacArg>
                <javacArg>${java.version}</javacArg>
              </javacArgs>
              <compilerPlugins>
                <compilerPlugin>
                  <groupId>org.scoverage</groupId>
                  <artifactId>scalac-scoverage-plugin_2.10</artifactId>
                  <version>${scoverage.version}</version>
                </compilerPlugin>
              </compilerPlugins>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- Only sign artifacts when we are performing a release, not snapshots -->
    <profile>
      <id>sonatype-oss-release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.2.1</version>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.9.1</version>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>1.5</version>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
