<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.commons</groupId>
    <artifactId>commons-sandbox-parent</artifactId>
    <version>4</version>
  </parent>

  <artifactId>commons-compress</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>Commons Compress (Sandbox)</name>
  <url>http://commons.apache.org/sandbox/compress/</url>
  <description>Commons Compress is a component that contains Tar, Zip and BZip2 packages</description>
  
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <developers>
    <developer>
      <!-- In that I moved them to their new location -->
      <name>Henri Yandell</name>
      <id>bayard</id>
      <email>bayard@apache.org</email>
      <organization></organization>
      <roles>
        <role>Java Developer</role>
      </roles>
    </developer>
    <developer>
      <name>Dirk Verbeeck</name>
      <id>dirkv</id>
      <email></email>
      <organization></organization>
      <roles>
        <role>Java Developer</role>
      </roles>
    </developer>
  </developers>
    
  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/commons/sandbox/compress/trunk</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/commons/sandbox/compress/trunk</developerConnection>
    <url>http://svn.apache.org/repos/asf/commons/sandbox/compress/trunk</url>
  </scm>

  <distributionManagement>
    <site>
      <id>website</id>
      <name>Apache Website</name>
      <url>scp://people.apache.org/www/commons.apache.org/sandbox/compress/</url>
    </site>
  </distributionManagement>

  <properties>
    <commons.componentid>compress</commons.componentid>
    <commons.jira.componentid>12311183</commons.jira.componentid>
  </properties> 

  <build>
      <sourceDirectory>src/main/java</sourceDirectory>
      <testSourceDirectory>src/test/test</testSourceDirectory> 

    <!-- turn off cobertura until we figure out why it's hanging -->
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <configuration>
          <instrumentation>
            <excludes>
            <exclude>org/apache/commons/compress/bzip2/**/*.class</exclude>
            <exclude>org/apache/commons/compress/compressors/bzip2/**/*.class</exclude>
            </excludes>
          </instrumentation>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>clean</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
      
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <configuration>
          <configLocation>checkstyle.xml</configLocation>
        </configuration>
      </plugin>
    </plugins>
  </reporting>

</project>
