<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</groupId>
    <artifactId>apache</artifactId>
    <version>16</version>
  </parent>

  <groupId>org.apache.parquet</groupId>
  <artifactId>parquet</artifactId>
  <version>1.8.2-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Apache Parquet MR</name>
  <url>https://parquet.apache.org</url>
  <description>Parquet is a columnar storage format that supports nested data. This provides the java implementation.</description>

  <scm>
    <connection>scm:git:git@github.com:apache/parquet-mr.git</connection>
    <url>scm:git:git@github.com:apache/parquet-mr.git</url>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/parquet-mr.git</developerConnection>
    <tag>HEAD</tag>
  </scm>

  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
    </license>
  </licenses>

  <issueManagement>
    <system>JIRA</system>
    <url>https://issues.apache.org/jira/browse/PARQUET</url>
  </issueManagement>

  <mailingLists>
    <mailingList>
      <name>Dev Mailing List</name>
      <post>dev@parquet.apache.org</post>
      <subscribe>dev-subscribe@parquet.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@parquet.apache.org</unsubscribe>
    </mailingList>
    <mailingList>
      <name>Commits Mailing List</name>
      <post>commits@parquet.apache.org</post>
      <subscribe>commits-subscribe@parquet.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@parquet.apache.org</unsubscribe>
    </mailingList>
  </mailingLists>

  <developers>
    <developer>
      <name>Julien Le Dem</name>
      <email>julien@twitter.com</email>
    </developer>
  </developers>

  <properties>
    <targetJavaVersion>1.6</targetJavaVersion>
    <maven.compiler.source>1.6</maven.compiler.source>
    <maven.compiler.target>${targetJavaVersion}</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <github.global.server>github</github.global.server>
    <maven-jar-plugin.version>2.4</maven-jar-plugin.version>
    <maven-thrift-plugin.version>0.1.11</maven-thrift-plugin.version>
    <jackson.groupId>org.codehaus.jackson</jackson.groupId>
    <jackson.version>1.9.11</jackson.version>
    <jackson.package>org.codehaus.jackson</jackson.package>
    <shade.prefix>shaded.parquet</shade.prefix>
    <hadoop.version>1.1.0</hadoop.version>
    <cascading.version>2.5.3</cascading.version>
    <cascading3.version>3.0.3</cascading3.version>
    <parquet.format.version>2.3.1</parquet.format.version>
    <previous.version>1.7.0</previous.version>
    <thrift.executable>thrift</thrift.executable>
    <scala.version>2.10.4</scala.version>
    <!-- scala.binary.version is used for projects that fetch dependencies that are in scala -->
    <scala.binary.version>2.10</scala.binary.version>
    <scala.maven.test.skip>false</scala.maven.test.skip>
    <pig.version>0.14.0</pig.version>
    <pig.classifier/>
    <thrift.version>0.7.0</thrift.version>
    <fastutil.version>6.5.7</fastutil.version>
    <semver.api.version>0.9.33</semver.api.version>
    <slf4j.version>1.7.5</slf4j.version>
    <avro.version>1.8.0</avro.version>
  </properties>

  <modules>
    <module>parquet-avro</module>
    <module>parquet-benchmarks</module>
    <module>parquet-cascading</module>
    <module>parquet-cascading3</module>
    <module>parquet-column</module>
    <module>parquet-common</module>
    <module>parquet-encoding</module>
    <module>parquet-generator</module>
    <module>parquet-hadoop</module>
    <module>parquet-jackson</module>
    <module>parquet-pig</module>
    <module>parquet-pig-bundle</module>
    <module>parquet-protobuf</module>
    <module>parquet-scala</module>
    <module>parquet-scrooge</module>
    <module>parquet-thrift</module>
    <module>parquet-hadoop-bundle</module>
    <module>parquet-hive</module>
    <module>parquet-hive-bundle</module>
    <module>parquet-tools</module>
  </modules>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.10</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.easymock</groupId>
      <artifactId>easymock</artifactId>
      <version>3.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>commons-httpclient</groupId>
      <artifactId>commons-httpclient</artifactId>
      <version>3.0.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.9</version>
        <reportSets>
          <reportSet><!-- by default, id = "default" -->
            <reports><!-- select non-aggregate reports -->
              <report>javadoc</report>
              <report>test-javadoc</report>
            </reports>
          </reportSet>
          <reportSet><!-- aggregate reportSet, to define in poms having modules -->
            <id>aggregate</id>
            <inherited>false</inherited><!-- don't run aggregate in child modules -->
            <reports>
              <report>aggregate</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>2.5.2</version>
        <configuration>
          <formats>
            <format>html</format>
          </formats>
          <aggregate>true</aggregate>
          <instrumentation>
            <ignores>
              <ignore>org.apache.parquet.Log.*</ignore>
              <ignore>java.lang.UnsupportedOperationException.*</ignore>
            </ignores>
            <excludes>
              <exclude>parquet/Log.class</exclude>
              <exclude>**/*Exception.class</exclude>
              <exclude>parquet/example/**/*.class</exclude>
            </excludes>
          </instrumentation>
        </configuration>
      </plugin>
    </plugins>
  </reporting>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <!-- Disable the source artifact from ASF parent -->
          <artifactId>maven-assembly-plugin</artifactId>
          <executions>
            <execution>
              <id>source-release-assembly</id>
              <phase>none</phase>
            </execution>
          </executions>
        </plugin>
        
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>2.7</version>
        </plugin>
              
        <plugin>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>1.3.1</version>
          <dependencies>
            <dependency>
              <groupId>org.semver</groupId>
              <artifactId>enforcer-rule</artifactId>
              <version>0.9.28</version>
            </dependency>
         </dependencies>
         <executions>
           <execution>
             <id>check</id>
             <phase>verify</phase>
             <goals>
               <goal>enforce</goal>
             </goals>
             <configuration>
               <rules>
                 <requireBackwardCompatibility implementation="org.semver.enforcer.RequireSemanticVersioningConformance">
                   <dumpDetails>true</dumpDetails>
                   <previousVersion>${previous.version}</previousVersion>
                   <excludes>
                     <exclude>org/apache/parquet/thrift/projection/**</exclude>
                     <exclude>org/apache/parquet/thrift/ThriftSchemaConverter</exclude>
                     <exclude>org/apache/parquet/filter2/**</exclude>
                     <exclude>org/apache/parquet/column/**</exclude>
                     <exclude>org/apache/parquet/hadoop/ParquetInputSplit</exclude>
                     <exclude>org/apache/parquet/hadoop/CodecFactory**</exclude>
                     <exclude>shaded/**</exclude> <!-- shaded by parquet -->
                     <!-- temporary exclusions for false-positives -->
                     <exclude>org/apache/parquet/Version</exclude>
                     <exclude>org/apache/parquet/schema/**</exclude> <!-- methods moved to new superclass -->
                     <exclude>org/apache/parquet/thrift/ThriftSchemaConvertVisitor</exclude> <!-- not public -->
                     <exclude>org/apache/parquet/avro/AvroParquetReader</exclude> <!-- returns subclass of old return class -->
                     <exclude>org/apache/parquet/avro/SpecificDataSupplier</exclude> <!-- made public -->
                     <exclude>org/apache/parquet/io/ColumnIOFactory$ColumnIOCreatorVisitor</exclude> <!-- removed non-API class -->
                     <exclude>org/apache/parquet/io/ColumnIOFactory/**</exclude> <!-- removed non-API class and methods-->
		     <exclude>org/apache/parquet/hadoop/codec/SnappyCompressor</exclude> <!-- added synchronized modifier -->
                   </excludes>
                 </requireBackwardCompatibility>
               </rules>
             </configuration>
           </execution>
         </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>2.1</version>
          <executions>
            <execution>
              <phase>package</phase>
              <goals>
                <goal>shade</goal>
              </goals>
              <configuration>
                <minimizeJar>true</minimizeJar>
                <artifactSet>
                  <includes>
                    <include>${jackson.groupId}:*</include>
                    <include>it.unimi.dsi:fastutil</include>
                  </includes>
                </artifactSet>
                <!-- Shade jackson but do not include any class. Let parquet-jackson handle this -->
                <filters>
                  <filter>
                    <artifact>${jackson.groupId}:*</artifact>
                    <excludes>
                      <exclude>**</exclude>
                    </excludes>
                  </filter>
                </filters>
                <relocations>
                  <relocation>
                    <pattern>${jackson.package}</pattern>
                    <shadedPattern>${shade.prefix}.${jackson.package}</shadedPattern>
                  </relocation>
                  <relocation>
                    <pattern>it.unimi.dsi</pattern>
                    <shadedPattern>${shade.prefix}.it.unimi.dsi</shadedPattern>
                  </relocation>
                </relocations>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${maven-jar-plugin.version}</version>
          <configuration>
            <archive>
              <manifestEntries>
                <git-SHA-1>${buildNumber}</git-SHA-1>
              </manifestEntries>
            </archive>
          </configuration>
          <executions>
            <execution>
              <goals>
                <goal>test-jar</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>com.mycila.maven-license-plugin</groupId>
        <artifactId>maven-license-plugin</artifactId>
        <version>1.10.b1</version>
        <configuration>
          <header>src/license.txt</header>
          <strictCheck>true</strictCheck>
        </configuration>
        <!--executions>
          <execution>
            <phase>test</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions-->
      </plugin>
      
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.7</version>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-remote-resources-plugin</artifactId>
          <version>1.5</version>
          <configuration>
            <skip>true</skip>
          </configuration>
      </plugin>
      
            
      <plugin>
        <!-- Override source and target from the ASF parent -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <argLine>-XX:MaxPermSize=256m</argLine>
          <source>${maven.compiler.source}</source>
          <target>${maven.compiler.target}</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>2.10</version>
        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.10</version>
        <configuration>
          <argLine>-Xmx512m</argLine>
          <systemPropertyVariables>
            <!-- Configure Parquet logging during tests
                 See http://www.slf4j.org/api/org/slf4j/impl/SimpleLogger.html
                 -->
            <org.slf4j.simpleLogger.defaultLogLevel>info</org.slf4j.simpleLogger.defaultLogLevel>
            <org.slf4j.simpleLogger.showDateTime>true</org.slf4j.simpleLogger.showDateTime>
            <org.slf4j.simpleLogger.dateTimeFormat>YYYY-MM-dd HH:mm:ss</org.slf4j.simpleLogger.dateTimeFormat>
            <org.slf4j.simpleLogger.showThreadName>false</org.slf4j.simpleLogger.showThreadName>
            <org.slf4j.simpleLogger.showShortLogName>true</org.slf4j.simpleLogger.showShortLogName>
          </systemPropertyVariables>
          <excludes>
            <exclude>**/benchmark/*.java</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>buildnumber-maven-plugin</artifactId>
        <version>1.1</version>
        <executions>
          <execution>
            <phase>validate</phase>
            <goals>
              <goal>create</goal>
            </goals>
         </execution>
       </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <executions>
          <execution>
            <phase>test</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <excludes>
            <exclude>**/*.parquet</exclude>
            <exclude>**/*.avro</exclude>
            <exclude>**/*.json</exclude>
            <exclude>**/names.txt</exclude> <!-- parquet-cascading test data -->
            <exclude>**/*.avsc</exclude>
            <exclude>**/*.iml</exclude>
            <exclude>**/*.log</exclude>
            <exclude>**/*.md.vm</exclude>
            <exclude>**/.classpath</exclude>
            <exclude>**/.project</exclude>
            <exclude>**/.settings/**</exclude>
            <exclude>**/build/**</exclude>
            <exclude>**/target/**</exclude>
            <exclude>.git/**</exclude>
            <exclude>.gitignore</exclude>
            <exclude>.idea/**</exclude>
            <exclude>*/jdiff/*.xml</exclude>
            <exclude>.travis.yml</exclude>
            <exclude>licenses/**</exclude>
            <exclude>protobuf_install/**</exclude>
            <exclude>thrift-0.7.0/**</exclude>
            <exclude>thrift-0.7.0.tar.gz</exclude>
            <exclude>**/dependency-reduced-pom.xml</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>update-github-site</id>
      <reporting>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-project-info-reports-plugin</artifactId>
            <version>2.7</version>
            <reportSets>
              <reportSet>
                <reports>
                  <report>index</report>
                  <report>mailing-list</report>
                  <report>dependency-info</report>
                  <report>project-team</report>
                  <report>dependencies</report>
                  <report>license</report>
                  <report>scm</report>
                </reports>
              </reportSet>
            </reportSets>
          </plugin>
        </plugins>
      </reporting>
      <distributionManagement>
        <site>
          <id>github-pages-site</id>
          <name>Deployment through GitHub's site deployment plugin</name>
          <url>site/${project.version}</url>
        </site>
      </distributionManagement>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.3</version>
            <configuration>
              <skipDeploy>true</skipDeploy>
            </configuration>
          </plugin>
          <plugin>
            <groupId>com.github.github</groupId>
            <artifactId>site-maven-plugin</artifactId>
            <version>0.8</version>
            <configuration>
              <message>Creating site for ${project.version}</message>
              <path>${project.distributionManagement.site.url}</path>
              <merge>true</merge>
            </configuration>
            <executions>
              <execution>
                <id>github-site</id>
                <goals>
                  <goal>site</goal>
                </goals>
                <phase>site-deploy</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>hadoop-2</id>
      <activation>
        <property>
          <name>hadoop.profile</name>
          <value>hadoop2</value>
        </property>
      </activation>
      <properties>
        <!-- test hadoop-1 with the same jars that were produced for default profile -->
        <maven.main.skip>true</maven.main.skip>
        <hadoop.version>2.3.0</hadoop.version>
        <pig.version>0.14.0</pig.version>
        <pig.classifier>h2</pig.classifier>
      </properties>
    </profile>
    <profile>
      <id>thrift9</id>
      <properties>
        <thrift.version>0.9.0</thrift.version>
      </properties>
    </profile>
  </profiles>
</project>
