| <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>23</version> |
| </parent> |
| |
| <groupId>org.apache.parquet</groupId> |
| <artifactId>parquet</artifactId> |
| <version>1.13.0-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:git@github.com:apache/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> |
| |
| <repositories> |
| <repository> |
| <id>jitpack.io</id> |
| <url>https://jitpack.io</url> |
| <name>Jitpack.io repository</name> |
| <!-- needed for brotli-codec --> |
| </repository> |
| </repositories> |
| |
| <developers> |
| <developer> |
| <name>Julien Le Dem</name> |
| <email>julien@twitter.com</email> |
| </developer> |
| </developers> |
| |
| <properties> |
| <maven.compiler.source>1.8</maven.compiler.source> |
| <maven.compiler.target>1.8</maven.compiler.target> |
| <github.global.server>github</github.global.server> |
| <jackson.groupId>com.fasterxml.jackson.core</jackson.groupId> |
| <jackson.package>com.fasterxml.jackson</jackson.package> |
| <jackson.version>2.12.2</jackson.version> |
| <jackson-databind.version>${jackson.version}</jackson-databind.version> |
| <japicmp.version>0.14.2</japicmp.version> |
| <shade.prefix>shaded.parquet</shade.prefix> |
| <hadoop.version>2.10.1</hadoop.version> |
| <cascading.version>2.7.1</cascading.version> |
| <cascading3.version>3.1.2</cascading3.version> |
| <parquet.format.version>2.9.0</parquet.format.version> |
| <previous.version>1.12.0</previous.version> |
| <thrift.executable>thrift</thrift.executable> |
| <format.thrift.executable>${thrift.executable}</format.thrift.executable> |
| <scala.version>2.12.8</scala.version> |
| <!-- scala.binary.version is used for projects that fetch dependencies that are in scala --> |
| <scala.binary.version>2.12</scala.binary.version> |
| <scala.maven.test.skip>false</scala.maven.test.skip> |
| <pig.version>0.16.0</pig.version> |
| <pig.classifier>h2</pig.classifier> |
| <thrift-maven-plugin.version>0.10.0</thrift-maven-plugin.version> |
| <thrift.version>0.14.1</thrift.version> |
| <format.thrift.version>${thrift.version}</format.thrift.version> |
| <fastutil.version>8.4.2</fastutil.version> |
| <semver.api.version>0.9.33</semver.api.version> |
| <slf4j.version>1.7.22</slf4j.version> |
| <avro.version>1.10.2</avro.version> |
| <guava.version>27.0.1-jre</guava.version> |
| <brotli-codec.version>0.1.1</brotli-codec.version> |
| <mockito.version>1.10.19</mockito.version> |
| <net.openhft.version>0.9</net.openhft.version> |
| <exec-maven-plugin.version>1.6.0</exec-maven-plugin.version> |
| |
| <!-- parquet-cli dependencies --> |
| <opencsv.version>2.3</opencsv.version> |
| <jcommander.version>1.72</jcommander.version> |
| <zstd-jni.version>1.5.0-1</zstd-jni.version> |
| <commons-text.version>1.8</commons-text.version> |
| |
| <!-- properties for the profiles --> |
| <surefire.logLevel>INFO</surefire.logLevel> |
| </properties> |
| |
| <modules> |
| <module>parquet-arrow</module> |
| <module>parquet-avro</module> |
| <module>parquet-benchmarks</module> |
| <module>parquet-cli</module> |
| <module>parquet-column</module> |
| <module>parquet-common</module> |
| <module>parquet-encoding</module> |
| <module>parquet-format-structures</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-thrift</module> |
| <module>parquet-hadoop-bundle</module> |
| </modules> |
| |
| <dependencies> |
| <dependency> |
| <groupId>junit</groupId> |
| <artifactId>junit</artifactId> |
| <version>4.13.1</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.easymock</groupId> |
| <artifactId>easymock</artifactId> |
| <version>3.4</version> |
| <scope>test</scope> |
| </dependency> |
| </dependencies> |
| |
| <reporting> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <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> |
| <configuration> |
| <sourceFileExcludes> |
| <sourceFileExclude>**/generated-sources/**/*.java</sourceFileExclude> |
| </sourceFileExcludes> |
| <source>8</source> |
| <quiet>true</quiet> |
| </configuration> |
| </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>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> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>enforce-banned-dependencies</id> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <configuration> |
| <rules> |
| <bannedDependencies> |
| <excludes> |
| <exclude>org.slf4j:slf4j-log4j12:*:*:compile</exclude> |
| </excludes> |
| </bannedDependencies> |
| </rules> |
| <fail>true</fail> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-shade-plugin</artifactId> |
| <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> |
| <include>net.openhft:*</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> |
| <relocation> |
| <pattern>net.openhft</pattern> |
| <shadedPattern>${shade.prefix}.net.openhft</shadedPattern> |
| </relocation> |
| </relocations> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <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>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <configuration> |
| <sourceFileExcludes> |
| <sourceFileExclude>**/generated-sources/**/*.java</sourceFileExclude> |
| </sourceFileExcludes> |
| <source>8</source> |
| <quiet>true</quiet> |
| </configuration> |
| </plugin> |
| <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-remote-resources-plugin</artifactId> |
| <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> |
| <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> |
| <configuration> |
| <argLine>${surefire.argLine}</argLine> |
| <systemPropertyVariables> |
| <!-- Configure Parquet logging during tests |
| See http://www.slf4j.org/api/org/slf4j/impl/SimpleLogger.html |
| --> |
| <org.slf4j.simpleLogger.defaultLogLevel>${surefire.logLevel}</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> |
| |
| <!-- Configure log level for Hadoop --> |
| <hadoop.logLevel>${surefire.logLevel}</hadoop.logLevel> |
| </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> |
| <consoleOutput>true</consoleOutput> |
| <excludes> |
| <exclude>.github/PULL_REQUEST_TEMPLATE.md</exclude> |
| <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>.gitmodules</exclude> |
| <exclude>.idea/**</exclude> |
| <exclude>*/jdiff/*.xml</exclude> |
| <exclude>licenses/**</exclude> |
| <exclude>protobuf_install/**</exclude> |
| <exclude>thrift-${thrift.version}/**</exclude> |
| <exclude>thrift-${thrift.version}.tar.gz</exclude> |
| <exclude>**/dependency-reduced-pom.xml</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>com.github.siom79.japicmp</groupId> |
| <artifactId>japicmp-maven-plugin</artifactId> |
| <version>${japicmp.version}</version> |
| <configuration> |
| <parameter> |
| <oldVersionPattern>${previous.version}</oldVersionPattern> |
| <breakBuildOnSourceIncompatibleModifications>true</breakBuildOnSourceIncompatibleModifications> |
| <onlyModified>true</onlyModified> |
| <overrideCompatibilityChangeParameters> |
| <!-- Adding a new method with default implementation to an interface should be a compatible change. |
| That's why they invented it. --> |
| <overrideCompatibilityChangeParameter> |
| <compatibilityChange>METHOD_NEW_DEFAULT</compatibilityChange> |
| <semanticVersionLevel>MINOR</semanticVersionLevel> |
| <binaryCompatible>true</binaryCompatible> |
| <sourceCompatible>true</sourceCompatible> |
| </overrideCompatibilityChangeParameter> |
| </overrideCompatibilityChangeParameters> |
| <excludeModules> |
| <!-- Excluding the following modules because they are not part of the parquet public API --> |
| <excludeModule>parquet-benchmarks</excludeModule> |
| <excludeModule>parquet-cli</excludeModule> |
| <excludeModule>parquet-tools-deprecated</excludeModule> |
| <excludeModule>parquet-format-structures</excludeModule> |
| |
| <!-- Excluding the following modules because bundles do not contain any java classes while they still fail the |
| compatibility check because of missing dependencies --> |
| <excludeModule>parquet-hadoop-bundle</excludeModule> |
| <excludeModule>parquet-pig-bundle</excludeModule> |
| </excludeModules> |
| <excludes> |
| <exclude>${shade.prefix}</exclude> |
| <!-- In PARQUET-2052 this field is changed from int to long which is a minor API |
| change to fix a integer overflow issue. |
| TODO: remove this after Parquet 1.13 release --> |
| <exclude>org.apache.parquet.column.values.dictionary.DictionaryValuesWriter#dictionaryByteSize</exclude> |
| </excludes> |
| </parameter> |
| </configuration> |
| <executions> |
| <execution> |
| <phase>verify</phase> |
| <goals> |
| <goal>cmp</goal> |
| </goals> |
| </execution> |
| </executions> |
| </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> |
| <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> |
| <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 for CI tests to have less output --> |
| <profile> |
| <id>ci-test</id> |
| <properties> |
| <surefire.logLevel>WARN</surefire.logLevel> |
| <surefire.argLine>-XX:MaxJavaStackTraceDepth=10</surefire.argLine> |
| </properties> |
| </profile> |
| |
| <profile> |
| <id>jdk9+</id> |
| <activation> |
| <jdk>[1.9,)</jdk> |
| </activation> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <configuration> |
| <release>8</release> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| </profiles> |
| </project> |