<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you 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>

  <parent>
    <groupId>org.apache.giraph</groupId>
    <artifactId>giraph-parent</artifactId>
    <version>1.1.0</version>
  </parent>
  <artifactId>giraph-core</artifactId>
  <packaging>jar</packaging>

  <name>Apache Giraph Core</name>
  <url>http://giraph.apache.org/giraph-core/</url>
  <description>Giraph core classes</description>

  <properties>
    <export-target.dir>export/target</export-target.dir>
    <top.dir>${project.basedir}/..</top.dir>
    <project.jar>${project.basedir}/target/giraph-${project.version}-${forHadoop}-jar-with-dependencies.jar</project.jar>
  </properties>

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
    <finalName>giraph-${project.version}-${forHadoop}</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <id>make-assembly</id>
            <!-- this is used for inheritance merges -->
            <phase>package</phase>
            <!-- append to the packaging phase. -->
            <configuration>
              <!-- Specifies the configuration file of the assembly plugin -->
              <descriptors>
                <descriptor>src/main/assembly/assembly.xml</descriptor>
              </descriptors>
              <outputDirectory>target</outputDirectory>
            </configuration>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <configuration>
          <siteDirectory>${project.basedir}/src/site</siteDirectory>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <systemProperties>
            <property>
              <name>prop.jarLocation</name>
              <value>${project.jar}</value>
            </property>
          </systemProperties>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.6</version>
        <executions>
          <execution>
            <phase>compile</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <java classname="org.apache.giraph.conf.AllOptions">
                  <classpath>
                    <pathelement location="${project.jar}"/>
                    <pathelement path="${maven.dependency.org.apache.hadoop.hadoop-common.jar.path}"/>
                    <pathelement path="${maven.dependency.org.apache.hadoop.hadoop-core.jar.path}"/>
                  </classpath>
                  <arg value="${top.dir}/src/site/xdoc/options.xml" />
                </java>
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>2.5.1</version>
        <configuration>
          <xmlOutput>true</xmlOutput>
          <findbugsXmlOutput>false</findbugsXmlOutput>
          <excludeFilterFile>${top.dir}/findbugs-exclude.xml</excludeFilterFile>
        </configuration>
        <executions>
          <execution>
            <phase>verify</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>hadoop_0.20.203</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <excludes>
                <exclude>**/yarn/**</exclude>
              </excludes>
              <testExcludes>
                <exclude>**/yarn/**</exclude>
              </testExcludes>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>munge-maven-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>hadoop_1</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <excludes>
                <exclude>**/yarn/**</exclude>
              </excludes>
              <testExcludes>
                <exclude>**/yarn/**</exclude>
              </testExcludes>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>munge-maven-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>hadoop_non_secure</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <excludes>
                <exclude>**/yarn/**</exclude>
              </excludes>
              <testExcludes>
                <exclude>**/yarn/**</exclude>
              </testExcludes>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>munge-maven-plugin</artifactId>
            <configuration>
              <excludes>
                **/comm/netty/SaslNettyClient.java,
                **/comm/netty/SaslNettyServer.java,
                **/comm/netty/handler/AuthorizeServerHandler.java,
                **/comm/netty/handler/SaslClientHandler.java,
                **/comm/netty/handler/SaslServerHandler.java,
                **/comm/requests/SaslCompleteRequest.java,
                **/comm/requests/SaslTokenMessageRequest.java,
                **/comm/SaslConnectionTest.java
              </excludes> 
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>hadoop_facebook</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <excludes>
                <exclude>**/yarn/**</exclude>
              </excludes>
              <testExcludes>
                <exclude>**/yarn/**</exclude>
              </testExcludes>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>munge-maven-plugin</artifactId>
            <configuration>
              <excludes>
                **/comm/netty/SaslNettyClient.java,
                **/comm/netty/SaslNettyServer.java,
                **/comm/netty/handler/AuthorizeServerHandler.java,
                **/comm/netty/handler/SaslClientHandler.java,
                **/comm/netty/handler/SaslServerHandler.java,
                **/comm/requests/SaslCompleteRequest.java,
                **/comm/requests/SaslTokenMessageRequest.java,
                **/comm/SaslConnectionTest.java
              </excludes>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>hadoop_0.23</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <excludes>
                <exclude>**/yarn/**</exclude>
              </excludes>
              <testExcludes>
                <exclude>**/yarn/**</exclude>
              </testExcludes>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>munge-maven-plugin</artifactId>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- Currently supports hadoop-2.0.3-alpha
      (see hadoop_yarn profile in giraph-parent POM to change) -->
    <profile>
      <id>hadoop_yarn</id>
      <build>
        <plugins>
          <plugin>
              <groupId>org.sonatype.plugins</groupId>
              <artifactId>munge-maven-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- Unmunged profiles are below. -->
    <profile>
      <id>hadoop_2</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <excludes>
                <exclude>**/yarn/**</exclude>
              </excludes>
              <testExcludes>
                <exclude>**/yarn/**</exclude>
              </testExcludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>hadoop_2.0.0</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <excludes>
                <exclude>**/yarn/**</exclude>
              </excludes>
              <testExcludes>
                <exclude>**/yarn/**</exclude>
              </testExcludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>hadoop_2.0.1</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <excludes>
                <exclude>**/yarn/**</exclude>
              </excludes>
              <testExcludes>
                <exclude>**/yarn/**</exclude>
              </testExcludes>
            </configuration>
          </plugin>
        </plugins>
      </build>

    </profile>

    <profile>
        <id>hadoop_2.0.2</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <excludes>
                <exclude>**/yarn/**</exclude>
              </excludes>
              <testExcludes>
                <exclude>**/yarn/**</exclude>
              </testExcludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>hadoop_2.0.3</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <excludes>
                <exclude>**/yarn/**</exclude>
              </excludes>
              <testExcludes>
                <exclude>**/yarn/**</exclude>
              </testExcludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
 
    <profile>
      <id>hadoop_trunk</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <excludes>
                <exclude>**/yarn/**</exclude>
              </excludes>
              <testExcludes>
                <exclude>**/yarn/**</exclude>
              </testExcludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <dependencies>
    <!-- compile dependencies. sorted lexicographically. -->
    <dependency>
      <groupId>com.facebook.nifty</groupId>
      <artifactId>nifty-client</artifactId>
    </dependency>
    <dependency>
      <groupId>com.facebook.swift</groupId>
      <artifactId>swift-annotations</artifactId>
    </dependency>
    <dependency>
      <groupId>com.facebook.swift</groupId>
      <artifactId>swift-codec</artifactId>
    </dependency>
    <dependency>
      <groupId>com.facebook.swift</groupId>
      <artifactId>swift-service</artifactId>
    </dependency>
    <dependency>
      <groupId>com.facebook.thirdparty.yourkit-api</groupId>
      <artifactId>yjp-controller-api-redist</artifactId>
    </dependency>
    <dependency>
      <groupId>com.google.code.findbugs</groupId>
      <artifactId>annotations</artifactId>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
    </dependency>
    <dependency>
      <groupId>com.yammer.metrics</groupId>
      <artifactId>metrics-core</artifactId>
    </dependency>
    <dependency>
      <groupId>commons-cli</groupId>
      <artifactId>commons-cli</artifactId>
    </dependency>
    <dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
    </dependency>
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-all</artifactId>
    </dependency>
    <dependency>
      <groupId>net.iharder</groupId>
      <artifactId>base64</artifactId>
    </dependency>
    <dependency>
      <groupId>it.unimi.dsi</groupId>
      <artifactId>fastutil</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.zookeeper</groupId>
      <artifactId>zookeeper</artifactId>
    </dependency>
    <dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-core-asl</artifactId>
    </dependency>
    <dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-mapper-asl</artifactId>
    </dependency>
    <dependency>
      <groupId>org.jodah</groupId>
      <artifactId>typetools</artifactId>
    </dependency>
    <dependency>
      <groupId>org.json</groupId>
      <artifactId>json</artifactId>
    </dependency>
    <dependency>
      <groupId>org.python</groupId>
      <artifactId>jython</artifactId>
    </dependency>

    <!-- runtime dependency -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <scope>runtime</scope>
    </dependency>

    <!-- test dependencies. sorted lexicographically. -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <scope>test</scope>
    </dependency>

 </dependencies>
</project>
