Maven Repository - POM file for Database hadoop-common 2.4.1 2.4.1

Summary

Apache Hadoop Common.

Declaration

Here is the list of declaration for hadoop-common. If you use Maven you can use the following code to add the dependency for this POM file.

<dependency>
   <groupId>org.apache.hadoop</groupId>
   <artifactId>hadoop-common</artifactId>
   <version>2.4.1</version>
</dependency>

If you think this Maven repository POM file listing for hadoop-common is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

License

Apache License.

Plugin

The following plugins are used in the hadoop-common-2.4.1.jar

  1. apache-rat-plugin
  2. avro-maven-plugin
  3. hadoop-maven-plugins
  4. maven-antrun-plugin
  5. maven-surefire-plugin
  6. maven-surefire-plugin




Packages

The following packages are defined in the hadoop-common-2.4.1.jar

org.apache.hadoop
org.apache.hadoop.conf
org.apache.hadoop.fs
org.apache.hadoop.fs.ftp
org.apache.hadoop.fs.local
org.apache.hadoop.fs.permission
org.apache.hadoop.fs.s3
org.apache.hadoop.fs.s3native
org.apache.hadoop.fs.shell
org.apache.hadoop.fs.viewfs
org.apache.hadoop.ha
org.apache.hadoop.ha.proto
org.apache.hadoop.ha.protocolPB
org.apache.hadoop.http
org.apache.hadoop.http.lib
org.apache.hadoop.io
org.apache.hadoop.io.compress
org.apache.hadoop.io.compress.bzip2
org.apache.hadoop.io.compress.lz4
org.apache.hadoop.io.compress.snappy
org.apache.hadoop.io.compress.zlib
org.apache.hadoop.io.file.tfile
org.apache.hadoop.io.nativeio
org.apache.hadoop.io.retry
org.apache.hadoop.io.serializer
org.apache.hadoop.io.serializer.avro
org.apache.hadoop.ipc
org.apache.hadoop.ipc.metrics
org.apache.hadoop.ipc.proto
org.apache.hadoop.ipc.protobuf
org.apache.hadoop.ipc.protocolPB
org.apache.hadoop.jmx
org.apache.hadoop.log
org.apache.hadoop.log.metrics
org.apache.hadoop.metrics
org.apache.hadoop.metrics.file
org.apache.hadoop.metrics.ganglia
org.apache.hadoop.metrics.jvm
org.apache.hadoop.metrics.spi
org.apache.hadoop.metrics.util
org.apache.hadoop.metrics2
org.apache.hadoop.metrics2.annotation
org.apache.hadoop.metrics2.filter
org.apache.hadoop.metrics2.impl
org.apache.hadoop.metrics2.lib
org.apache.hadoop.metrics2.sink
org.apache.hadoop.metrics2.sink.ganglia
org.apache.hadoop.metrics2.source
org.apache.hadoop.metrics2.util
org.apache.hadoop.net
org.apache.hadoop.net.unix
org.apache.hadoop.record
org.apache.hadoop.record.compiler
org.apache.hadoop.record.compiler.ant
org.apache.hadoop.record.compiler.generated
org.apache.hadoop.record.meta
org.apache.hadoop.security
org.apache.hadoop.security.authorize
org.apache.hadoop.security.proto
org.apache.hadoop.security.protocolPB
org.apache.hadoop.security.ssl
org.apache.hadoop.security.token
org.apache.hadoop.security.token.delegation
org.apache.hadoop.service
org.apache.hadoop.tools
org.apache.hadoop.tools.proto
org.apache.hadoop.tools.protocolPB
org.apache.hadoop.util
org.apache.hadoop.util.bloom
org.apache.hadoop.util.hash




POM File Source

Here is the content of the POM file.

<?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-dist</artifactId>
    <version>2.4.1</version>
    <relativePath>../../hadoop-project-dist</relativePath>
  </parent>
  <groupId>org.apache.hadoop</groupId>
  <artifactId>hadoop-common</artifactId>
  <version>2.4.1</version>
  <description>Apache Hadoop Common</description>
  <name>Apache Hadoop Common</name>
  <packaging>jar</packaging>

  <properties>
    <hadoop.component>common</hadoop.component>
    <is.hadoop.component>true</is.hadoop.component>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-annotations</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>commons-cli</groupId>
      <artifactId>commons-cli</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-math3</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>xmlenc</groupId>
      <artifactId>xmlenc</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>commons-httpclient</groupId>
      <artifactId>commons-httpclient</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>commons-net</groupId>
      <artifactId>commons-net</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty-util</artifactId>
      <scope>compile</scope>
    </dependency>

    <dependency>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-core</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <!-- Used, even though 'mvn dependency:analyze' doesn't find it -->
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-json</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-server</artifactId>
      <scope>compile</scope>
    </dependency>

    <dependency>
      <groupId>tomcat</groupId>
      <artifactId>jasper-compiler</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>tomcat</groupId>
      <artifactId>jasper-runtime</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>commons-el</groupId>
      <artifactId>commons-el</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>net.java.dev.jets3t</groupId>
      <artifactId>jets3t</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>commons-configuration</groupId>
      <artifactId>commons-configuration</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-core-asl</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-mapper-asl</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-all</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.avro</groupId>
      <artifactId>avro</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.ant</groupId>
      <artifactId>ant</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-auth</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.jcraft</groupId>
      <artifactId>jsch</artifactId>
    </dependency>
    <dependency>
      <groupId>com.google.code.findbugs</groupId>
      <artifactId>jsr305</artifactId>
      <scope>compile</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.zookeeper</groupId>
      <artifactId>zookeeper</artifactId>
      <exclusions>
        <exclusion>
          <groupId>jline</groupId>
          <artifactId>jline</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.jboss.netty</groupId>
          <artifactId>netty</artifactId>
        </exclusion>
        <exclusion>
          <!-- otherwise seems to drag in junit 3.8.1 via jline -->
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.sun.jdmk</groupId>
          <artifactId>jmxtools</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.sun.jmx</groupId>
          <artifactId>jmxri</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.zookeeper</groupId>
      <artifactId>zookeeper</artifactId>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-compress</artifactId>
    </dependency>
  </dependencies>

  <build>
    <!--
    Include all files in src/main/resources.  By default, do not apply property
    substitution (filtering=false), but do apply property substitution to
    common-version-info.properties (filtering=true).  This will substitute the
    version information correctly, but prevent Maven from altering other files
    like core-default.xml.
    -->
    <resources>
      <resource>
        <directory>${basedir}/src/main/resources</directory>
        <excludes>
          <exclude>common-version-info.properties</exclude>
        </excludes>
        <filtering>false</filtering>
      </resource>
      <resource>
        <directory>${basedir}/src/main/resources</directory>
        <includes>
          <include>common-version-info.properties</include>
        </includes>
        <filtering>true</filtering>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-maven-plugins</artifactId>
        <executions>
          <execution>
            <id>version-info</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>version-info</goal>
            </goals>
            <configuration>
              <source>
                <directory>${basedir}/src/main</directory>
                <includes>
                  <include>java/**/*.java</include>
                  <include>proto/**/*.proto</include>
                </includes>
              </source>
            </configuration>
          </execution>
          <execution>
            <id>compile-protoc</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>protoc</goal>
            </goals>
            <configuration>
              <protocVersion>${protobuf.version}</protocVersion>
              <protocCommand>${protoc.path}</protocCommand>
              <imports>
                <param>${basedir}/src/main/proto</param>
              </imports>
              <source>
                <directory>${basedir}/src/main/proto</directory>
                <includes>
                  <include>HAServiceProtocol.proto</include>
                  <include>IpcConnectionContext.proto</include>
                  <include>ProtocolInfo.proto</include>
                  <include>RpcHeader.proto</include>
                  <include>ZKFCProtocol.proto</include>
                  <include>ProtobufRpcEngine.proto</include>
                  <include>Security.proto</include>
                  <include>GetUserMappingsProtocol.proto</include>
                  <include>RefreshAuthorizationPolicyProtocol.proto</include>
                  <include>RefreshUserMappingsProtocol.proto</include>
                  <include>RefreshCallQueueProtocol.proto</include>
                </includes>
              </source>
              <output>${project.build.directory}/generated-sources/java</output>
            </configuration>
          </execution>
          <execution>
            <id>compile-test-protoc</id>
            <phase>generate-test-sources</phase>
            <goals>
              <goal>protoc</goal>
            </goals>
            <configuration>
              <protocVersion>${protobuf.version}</protocVersion>
              <protocCommand>${protoc.path}</protocCommand>
              <imports>
                <param>${basedir}/src/test/proto</param>
              </imports>
              <source>
                <directory>${basedir}/src/test/proto</directory>
                <includes>
                  <include>test.proto</include>
                  <include>test_rpc_service.proto</include>
                </includes>
              </source>
              <output>${project.build.directory}/generated-test-sources/java</output>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <systemPropertyVariables>
            <startKdc>${startKdc}</startKdc>
            <kdc.resource.dir>${kdc.resource.dir}</kdc.resource.dir>
          </systemPropertyVariables>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.avro</groupId>
        <artifactId>avro-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>generate-avro-test-sources</id>
            <phase>generate-test-sources</phase>
            <goals>
              <goal>schema</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <testOutputDirectory>${project.build.directory}/generated-test-sources/java</testOutputDirectory>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>create-log-dir</id>
            <phase>process-test-resources</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <!--
                TODO: there are tests (TestLocalFileSystem#testCopy) that fail if data
                TODO: from a previous run is present
                -->
                <delete dir="${test.build.data}"/>
                <mkdir dir="${test.build.data}"/>
                <mkdir dir="${hadoop.log.dir}"/>

                <copy toDir="${project.build.directory}/test-classes">
                  <fileset dir="${basedir}/src/main/conf"/>
                </copy>
              </target>
            </configuration>
          </execution>
          <execution>
            <id>copy-test-tarballs</id>
            <phase>process-test-resources</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <copy toDir="${test.cache.data}">
                  <fileset dir="${basedir}/src/test/java/org/apache/hadoop/fs">
                    <include name="test-untar.tar"/>
                    <include name="test-untar.tgz"/>
                  </fileset>
                </copy>
              </target>
            </configuration>
          </execution>
          <execution>
            <phase>pre-site</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <tasks>
                <copy file="src/main/resources/core-default.xml" todir="src/site/resources"/>
                <copy file="src/main/xsl/configuration.xsl" todir="src/site/resources"/>
              </tasks>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>CHANGES.txt</exclude>
            <exclude>.idea/**</exclude>
            <exclude>src/main/conf/*</exclude>
            <exclude>src/main/docs/**</exclude>
            <exclude>dev-support/jdiff/**</exclude>
            <exclude>src/main/native/*</exclude>
            <exclude>src/main/native/config/*</exclude>
            <exclude>src/main/native/m4/*</exclude>
            <exclude>src/test/empty-file</exclude>
            <exclude>src/test/all-tests</exclude>
            <exclude>src/test/resources/kdc/ldif/users.ldif</exclude>
            <exclude>src/main/native/src/org/apache/hadoop/io/compress/lz4/lz4.h</exclude>
            <exclude>src/main/native/src/org/apache/hadoop/io/compress/lz4/lz4.c</exclude>
            <exclude>src/main/native/src/org/apache/hadoop/io/compress/lz4/lz4_encoder.h</exclude>
            <exclude>src/main/native/src/org/apache/hadoop/io/compress/lz4/lz4hc.h</exclude>
            <exclude>src/main/native/src/org/apache/hadoop/io/compress/lz4/lz4hc.c</exclude>
            <exclude>src/main/native/src/org/apache/hadoop/io/compress/lz4/lz4hc_encoder.h</exclude>
            <exclude>src/test/java/org/apache/hadoop/fs/test-untar.tgz</exclude>
            <exclude>src/test/resources/test.har/_SUCCESS</exclude>
            <exclude>src/test/resources/test.har/_index</exclude>
            <exclude>src/test/resources/test.har/_masterindex</exclude>
            <exclude>src/test/resources/test.har/part-0</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <properties>
            <property>
              <name>listener</name>
              <value>org.apache.hadoop.test.TimedOutTestsListener</value>
            </property>
          </properties>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>native</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <require.bzip2>false</require.bzip2>
        <snappy.prefix></snappy.prefix>
        <snappy.lib></snappy.lib>
        <snappy.include></snappy.include>
        <require.snappy>false</require.snappy>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <executions>
              <execution>
                <id>enforce-os</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <configuration>
                  <rules>
                    <requireOS>
                      <family>mac</family>
                      <family>unix</family>
                      <message>native build only supported on Mac or Unix</message>
                    </requireOS>
                  </rules>  
                  <fail>true</fail>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>native-maven-plugin</artifactId>
            <executions>
              <execution>
                <phase>compile</phase>
                <goals>
                  <goal>javah</goal>
                </goals>
                <configuration>
                  <javahPath>${env.JAVA_HOME}/bin/javah</javahPath>
                  <javahClassNames>
                    <javahClassName>org.apache.hadoop.io.compress.zlib.ZlibCompressor</javahClassName>
                    <javahClassName>org.apache.hadoop.io.compress.zlib.ZlibDecompressor</javahClassName>
                    <javahClassName>org.apache.hadoop.io.compress.bzip2.Bzip2Compressor</javahClassName>
                    <javahClassName>org.apache.hadoop.io.compress.bzip2.Bzip2Decompressor</javahClassName>
                    <javahClassName>org.apache.hadoop.security.JniBasedUnixGroupsMapping</javahClassName>
                    <javahClassName>org.apache.hadoop.io.nativeio.NativeIO</javahClassName>
                    <javahClassName>org.apache.hadoop.io.nativeio.SharedFileDescriptorFactory</javahClassName>
                    <javahClassName>org.apache.hadoop.security.JniBasedUnixGroupsNetgroupMapping</javahClassName>
                    <javahClassName>org.apache.hadoop.io.compress.snappy.SnappyCompressor</javahClassName>
                    <javahClassName>org.apache.hadoop.io.compress.snappy.SnappyDecompressor</javahClassName>
                    <javahClassName>org.apache.hadoop.io.compress.lz4.Lz4Compressor</javahClassName>
                    <javahClassName>org.apache.hadoop.io.compress.lz4.Lz4Decompressor</javahClassName>
                    <javahClassName>org.apache.hadoop.util.NativeCrc32</javahClassName>
                    <javahClassName>org.apache.hadoop.net.unix.DomainSocket</javahClassName>
                    <javahClassName>org.apache.hadoop.net.unix.DomainSocketWatcher</javahClassName>
                  </javahClassNames>
                  <javahOutputDirectory>${project.build.directory}/native/javah</javahOutputDirectory>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>make</id>
                <phase>compile</phase>
                <goals><goal>run</goal></goals>
                <configuration>
                  <target>
                    <exec executable="cmake" dir="${project.build.directory}/native" failonerror="true">
                      <arg line="${basedir}/src/ -DGENERATED_JAVAH=${project.build.directory}/native/javah -DJVM_ARCH_DATA_MODEL=${sun.arch.data.model} -DREQUIRE_BZIP2=${require.bzip2} -DREQUIRE_SNAPPY=${require.snappy} -DCUSTOM_SNAPPY_PREFIX=${snappy.prefix} -DCUSTOM_SNAPPY_LIB=${snappy.lib} -DCUSTOM_SNAPPY_INCLUDE=${snappy.include}"/>
                    </exec>
                    <exec executable="make" dir="${project.build.directory}/native" failonerror="true">
                      <arg line="VERBOSE=1"/>
                    </exec>
                    <!-- The second make is a workaround for HADOOP-9215.  It can
                         be removed when version 2.6 of cmake is no longer supported . -->
                    <exec executable="make" dir="${project.build.directory}/native" failonerror="true"></exec>
                  </target>
                </configuration>
              </execution>
              <execution>
                <id>native_tests</id>
                <phase>test</phase>
                <goals><goal>run</goal></goals>
                <configuration>
                  <target>
                    <exec executable="sh" failonerror="true" dir="${project.build.directory}/native">
                      <arg value="-c"/>
                      <arg value="[ x$SKIPTESTS = xtrue ] || ${project.build.directory}/native/test_bulk_crc32"/>
                      <env key="SKIPTESTS" value="${skipTests}"/>
                    </exec>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>native-win</id>
      <activation>
        <os>
          <family>Windows</family>
        </os>
      </activation>
      <properties>
        <snappy.prefix></snappy.prefix>
        <snappy.lib></snappy.lib>
        <snappy.include></snappy.include>
        <require.snappy>false</require.snappy>
        <bundle.snappy.in.bin>true</bundle.snappy.in.bin>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <executions>
              <execution>
                <id>enforce-os</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <configuration>
                  <rules>
                    <requireOS>
                      <family>windows</family>
                      <message>native-win build only supported on Windows</message>
                    </requireOS>
                  </rules>  
                  <fail>true</fail>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>native-maven-plugin</artifactId>
            <executions>
              <execution>
                <phase>compile</phase>
                <goals>
                  <goal>javah</goal>
                </goals>
                <configuration>
                  <javahPath>${env.JAVA_HOME}/bin/javah</javahPath>
                  <javahClassNames>
                    <javahClassName>org.apache.hadoop.io.compress.zlib.ZlibCompressor</javahClassName>
                    <javahClassName>org.apache.hadoop.io.compress.zlib.ZlibDecompressor</javahClassName>
                    <javahClassName>org.apache.hadoop.security.JniBasedUnixGroupsMapping</javahClassName>
                    <javahClassName>org.apache.hadoop.io.nativeio.NativeIO</javahClassName>
                    <javahClassName>org.apache.hadoop.security.JniBasedUnixGroupsNetgroupMapping</javahClassName>
                    <javahClassName>org.apache.hadoop.io.compress.snappy.SnappyCompressor</javahClassName>
                    <javahClassName>org.apache.hadoop.io.compress.snappy.SnappyDecompressor</javahClassName>
                    <javahClassName>org.apache.hadoop.io.compress.lz4.Lz4Compressor</javahClassName>
                    <javahClassName>org.apache.hadoop.io.compress.lz4.Lz4Decompressor</javahClassName>
                    <javahClassName>org.apache.hadoop.util.NativeCrc32</javahClassName>
                  </javahClassNames>
                  <javahOutputDirectory>${project.build.directory}/native/javah</javahOutputDirectory>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>compile-ms-winutils</id>
                <phase>compile</phase>
                <goals>
                  <goal>exec</goal>
                </goals>
                <configuration>
                  <executable>msbuild</executable>
                  <arguments>
                    <argument>${basedir}/src/main/winutils/winutils.sln</argument>
                    <argument>/nologo</argument>
                    <argument>/p:Configuration=Release</argument>
                    <argument>/p:OutDir=${project.build.directory}/bin/</argument>
                  </arguments>
                </configuration>
              </execution>
              <execution>
                <id>compile-ms-native-dll</id>
                <phase>compile</phase>
                <goals>
                  <goal>exec</goal>
                </goals>
                <configuration>
                  <executable>msbuild</executable>
                  <arguments>
                    <argument>${basedir}/src/main/native/native.sln</argument>
                    <argument>/nologo</argument>
                    <argument>/p:Configuration=Release</argument>
                    <argument>/p:OutDir=${project.build.directory}/bin/</argument>
                    <argument>/p:CustomSnappyPrefix=${snappy.prefix}</argument>
                    <argument>/p:CustomSnappyLib=${snappy.lib}</argument>
                    <argument>/p:CustomSnappyInclude=${snappy.include}</argument>
                    <argument>/p:RequireSnappy=${require.snappy}</argument>
                  </arguments>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>parallel-tests</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <forkCount>${testsThreadCount}</forkCount>
              <argLine>-Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -DminiClusterDedicatedDirs=true</argLine>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>