<?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. See accompanying LICENSE file.
-->
<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">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-project</artifactId>
    <version>2.0.2-alpha</version>
    <relativePath>../hadoop-project</relativePath>
  </parent>
  <groupId>org.apache.hadoop</groupId>
  <artifactId>hadoop-project-dist</artifactId>
  <version>2.0.2-alpha</version>
  <description>Apache Hadoop Project Dist POM</description>
  <name>Apache Hadoop Project Dist POM</name>
  <packaging>pom</packaging>

  <properties>
    <hadoop.tmp.dir>${project.build.directory}/test</hadoop.tmp.dir>
    <test.build.data>${project.build.directory}/test/data</test.build.data>
    <hadoop.log.dir>${project.build.directory}/log</hadoop.log.dir>
    <test.build.webapps>${project.build.directory}/test-classes/webapps</test.build.webapps>
    <test.cache.data>${project.build.directory}/test-classes</test.cache.data>
    <test.build.classes>${project.build.directory}/test-classes</test.build.classes>

    <hadoop.component>UNDEF</hadoop.component>
    <bundle.snappy>false</bundle.snappy>
  </properties>
  
  <dependencies>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-annotations</artifactId>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
          <execution>
            <id>prepare-jar</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
          <execution>
            <id>prepare-test-jar</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>test-jar</goal>
            </goals>
            <configuration>
              <includes>
                <include>**/*.class</include>
                <include>webapps/**</include>
              </includes>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <phase>prepare-package</phase>
            <goals>
              <goal>jar</goal>
              <goal>test-jar</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <attach>true</attach>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <configuration>
          <excludeFilterFile>${basedir}/dev-support/findbugsExcludeFile.xml</excludeFilterFile>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <configuration>
          <configLocation>file://${basedir}/dev-support/checkstyle.xml</configLocation>
          <failOnViolation>false</failOnViolation>
          <format>xml</format>
          <format>html</format>
          <outputFile>${project.build.directory}/test/checkstyle-errors.xml</outputFile>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <linksource>true</linksource>
          <maxmemory>512m</maxmemory>
          <quiet>true</quiet>
          <verbose>false</verbose>
          <source>${maven.compile.source}</source>
          <charset>${maven.compile.encoding}</charset>
          <reportOutputDirectory>${project.build.directory}/site</reportOutputDirectory>
          <destDir>api</destDir>
          <groups>
            <group>
              <title>${project.name} API</title>
              <packages>org.apache.hadoop*</packages>
            </group>
          </groups>
          <doclet>org.apache.hadoop.classification.tools.ExcludePrivateAnnotationsStandardDoclet</doclet>
          <docletArtifacts>
            <docletArtifact>
              <groupId>org.apache.hadoop</groupId>
              <artifactId>hadoop-annotations</artifactId>
              <version>${project.version}</version>
            </docletArtifact>
          </docletArtifacts>
          <useStandardDocletOptions>true</useStandardDocletOptions>

          <!-- switch on dependency-driven aggregation -->
          <includeDependencySources>false</includeDependencySources>

          <dependencySourceIncludes>
            <!-- include ONLY dependencies I control -->
            <dependencySourceInclude>org.apache.hadoop:hadoop-annotations</dependencySourceInclude>
          </dependencySourceIncludes>

        </configuration>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>docs</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <jdiff.stable.api>0.20.2</jdiff.stable.api>
        <jdiff.stability>-unstable</jdiff.stability>
        <jdiff.compatibility></jdiff.compatibility>
        <jdiff.javadoc.maxmemory>512m</jdiff.javadoc.maxmemory>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>javadoc</goal>
                </goals>
                <phase>prepare-package</phase>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>findbugs-maven-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>findbugs</goal>
                </goals>
                <phase>prepare-package</phase>
              </execution>
            </executions>
            <configuration>
              <excludeFilterFile>${basedir}/dev-support/findbugsExcludeFile.xml</excludeFilterFile>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
              <execution>
                <id>site</id>
                <phase>prepare-package</phase>
                <goals>
                  <goal>copy</goal>
                </goals>
                <configuration>
                  <artifactItems>
                    <artifactItem>
                      <groupId>jdiff</groupId>
                      <artifactId>jdiff</artifactId>
                      <version>${jdiff.version}</version>
                      <overWrite>false</overWrite>
                      <outputDirectory>${project.build.directory}</outputDirectory>
                      <destFileName>jdiff.jar</destFileName>
                    </artifactItem>
                    <artifactItem>
                      <groupId>org.apache.hadoop</groupId>
                      <artifactId>hadoop-annotations</artifactId>
                      <version>${project.version}</version>
                      <overWrite>false</overWrite>
                      <outputDirectory>${project.build.directory}</outputDirectory>
                      <destFileName>hadoop-annotations.jar</destFileName>
                    </artifactItem>
                  </artifactItems>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>site</id>
                <phase>prepare-package</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target if="is.hadoop.component">

                    <mkdir dir="${project.build.directory}/docs-src"/>

                    <copy todir="${project.build.directory}/docs-src">
                      <fileset dir="${basedir}/src/main/docs"/>
                    </copy>

                    <!-- Docs -->
                    <exec dir="${project.build.directory}/docs-src"
                          executable="${env.FORREST_HOME}/bin/forrest"
                          failonerror="true">
                    </exec>
                    <copy todir="${project.build.directory}/site">
                      <fileset dir="${project.build.directory}/docs-src/build/site"/>
                    </copy>
                    <copy file="${project.build.directory}/docs-src/releasenotes.html"
                          todir="${project.build.directory}/site"/>
                    <style basedir="${basedir}/src/main/resources"
                           destdir="${project.build.directory}/site"
                           includes="core-default.xml"
                           style="${basedir}/src/main/xsl/configuration.xsl"/>

                    <!-- Convert 'CHANGES.txt' to 'changes.html" -->
                    <exec executable="perl" input="${basedir}/../CHANGES.txt"
                          output="${project.build.directory}/site/changes.html"
                          failonerror="true">
                      <arg value="${project.build.directory}/docs-src/changes/changes2html.pl"/>
                    </exec>
                    <copy todir="${project.build.directory}/site">
                      <fileset dir="${project.build.directory}/docs-src/changes" includes="*.css"/>
                    </copy>

                    <!-- Jdiff -->
                    <mkdir dir="${project.build.directory}/site/jdiff/xml"/>

                    <javadoc maxmemory="${jdiff.javadoc.maxmemory}" verbose="yes">
                      <doclet name="org.apache.hadoop.classification.tools.ExcludePrivateAnnotationsJDiffDoclet"
                              path="${project.build.directory}/hadoop-annotations.jar:${project.build.directory}/jdiff.jar">
                        <param name="-apidir" value="${project.build.directory}/site/jdiff/xml"/>
                        <param name="-apiname" value="hadoop-core ${project.version}"/>
                        <param name="${jdiff.stability}"/>
                      </doclet>
                      <packageset dir="${basedir}/src/main/java"/>
                      <classpath>
                        <path refid="maven.compile.classpath"/>
                      </classpath>
                    </javadoc>
                    <javadoc sourcepath="${basedir}/src/main/java"
                             destdir="${project.build.directory}/site/jdiff/xml"
                             sourceFiles="${basedir}/dev-support/jdiff/Null.java"
                             maxmemory="${jdiff.javadoc.maxmemory}">
                      <doclet name="org.apache.hadoop.classification.tools.ExcludePrivateAnnotationsJDiffDoclet"
                              path="${project.build.directory}/hadoop-annotations.jar:${project.build.directory}/jdiff.jar">
                        <param name="-oldapi" value="hadoop-core ${jdiff.stable.api}"/>
                        <param name="-newapi" value="hadoop-core ${project.version}"/>
                        <param name="-oldapidir" value="${basedir}/dev-support/jdiff"/>
                        <param name="-newapidir" value="${project.build.directory}/site/jdiff/xml"/>
                        <param name="-javadocold"
                               value="http://hadoop.apache.org/docs/${jdiff.stable.api}/api/"/>
                        <param name="-javadocnew" value="${project.build.directory}/site/api"/>
                        <param name="-stats"/>
                        <param name="${jdiff.stability}"/>
                        <param name="${jdiff.compatibility}"/>
                      </doclet>
                      <classpath>
                        <path refid="maven.compile.classpath"/>
                      </classpath>
                    </javadoc>

                    <xslt style="${env.FINDBUGS_HOME}/src/xsl/default.xsl"
                          in="${project.build.directory}/findbugsXml.xml"
                          out="${project.build.directory}/site/findbugs.html"/>

                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>dist</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>pre-dist</id>
                <phase>prepare-package</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <!-- Using Unix script to preserve symlinks -->
                    <echo file="${project.build.directory}/dist-copynativelibs.sh">

                      which cygpath 2&gt; /dev/null
                      if [ $? = 1 ]; then
                        BUILD_DIR="${project.build.directory}"
                      else
                        BUILD_DIR=`cygpath --unix '${project.build.directory}'`
                      fi
                      TAR='tar cf -'
                      UNTAR='tar xfBp -'
                      LIB_DIR="${BUILD_DIR}/native/target/usr/local/lib"
                      if [ -d $${LIB_DIR} ] ; then
                        TARGET_DIR="${BUILD_DIR}/${project.artifactId}-${project.version}/lib/native"
                        mkdir -p $${TARGET_DIR}
                        cd $${LIB_DIR}
                        $$TAR lib* | (cd $${TARGET_DIR}/; $$UNTAR)
                        if [ "${bundle.snappy}" = "true" ] ; then
                          cd ${snappy.lib}
                          $$TAR *snappy* | (cd $${TARGET_DIR}/; $$UNTAR)
                        fi
                      fi
                    </echo>
                    <exec executable="sh" dir="${project.build.directory}" failonerror="true">
                      <arg line="./dist-copynativelibs.sh"/>
                    </exec>
                  </target>
                </configuration>
              </execution>
              <execution>
                <id>tar</id>
                <phase>package</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target if="tar">
                    <!-- Using Unix script to preserve symlinks -->
                    <echo file="${project.build.directory}/dist-maketar.sh">

                      which cygpath 2&gt; /dev/null
                      if [ $? = 1 ]; then
                        BUILD_DIR="${project.build.directory}"
                      else
                        BUILD_DIR=`cygpath --unix '${project.build.directory}'`
                      fi
                      cd ${BUILD_DIR}
                      tar czf ${project.artifactId}-${project.version}.tar.gz ${project.artifactId}-${project.version}
                    </echo>
                    <exec executable="sh" dir="${project.build.directory}" failonerror="true">
                      <arg line="./dist-maketar.sh"/>
                    </exec>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <dependencies>
              <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-assemblies</artifactId>
                <version>${project.version}</version>
              </dependency>
            </dependencies>
            <executions>
              <execution>
                <id>dist</id>
                <phase>prepare-package</phase>
                <goals>
                  <goal>single</goal>
                </goals>
                <configuration>
                  <appendAssemblyId>false</appendAssemblyId>
                  <attach>false</attach>
                  <finalName>${project.artifactId}-${project.version}</finalName>
                  <descriptorRefs>
                    <descriptorRef>hadoop-dist</descriptorRef>
                  </descriptorRefs>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
