| <!-- | |
| ~ Licensed to the Apache Software Foundation (ASF) under one | |
| ~ or more contributor license agreements. See the NOTICE file | |
| ~ distributed with this work for additional information | |
| ~ regarding copyright ownership. The ASF licenses this file | |
| ~ to you 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. | |
| --> | |
| <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>39</version> | |
| </parent> | |
| <groupId>org.apache.parquet</groupId> | |
| <artifactId>parquet</artifactId> | |
| <version>1.19.0-SNAPSHOT</version> | |
| <packaging>pom</packaging> | |
| <name>Apache Parquet Java</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-java.git</connection> | |
| <url>scm:git:git@github.com:apache/parquet-java.git</url> | |
| <developerConnection>scm:git:git@github.com:apache/parquet-java.git</developerConnection> | |
| <tag>HEAD</tag> | |
| </scm> | |
| <licenses> | |
| <license> | |
| <name>The Apache Software License, Version 2.0</name> | |
| <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url> | |
| </license> | |
| </licenses> | |
| <issueManagement> | |
| <system>GitHub</system> | |
| <url>https://github.com/apache/parquet-java/issues</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> | |
| <properties> | |
| <maven.compiler.release>17</maven.compiler.release> | |
| <github.global.server>github</github.global.server> | |
| <jackson.groupId>com.fasterxml.jackson.core</jackson.groupId> | |
| <jackson.datatype.groupId>com.fasterxml.jackson.datatype</jackson.datatype.groupId> | |
| <jackson.package>com.fasterxml.jackson</jackson.package> | |
| <!-- To upgrade jackson, check the jdk versions inside the jar and include any new versions in the shading in parquet-jackson. --> | |
| <jackson.version>2.22.1</jackson.version> | |
| <jackson-databind.version>2.22.1</jackson-databind.version> | |
| <jackson-annotations.version>2.22</jackson-annotations.version> | |
| <japicmp.version>0.26.1</japicmp.version> | |
| <javax.annotation.version>1.3.2</javax.annotation.version> | |
| <spotless.version>3.8.0</spotless.version> | |
| <shade.prefix>shaded.parquet</shade.prefix> | |
| <!-- Guarantees no newer classes/methods/constants are used by parquet. --> | |
| <hadoop.version>3.3.0</hadoop.version> | |
| <parquet.format.version>2.13.0</parquet.format.version> | |
| <previous.version>1.18.0</previous.version> | |
| <thrift.executable>thrift</thrift.executable> | |
| <format.thrift.executable>${thrift.executable}</format.thrift.executable> | |
| <thrift-maven-plugin.version>0.10.0</thrift-maven-plugin.version> | |
| <thrift.version>0.23.0</thrift.version> | |
| <format.thrift.version>${thrift.version}</format.thrift.version> | |
| <fastutil.version>8.5.19</fastutil.version> | |
| <semver.api.version>0.9.33</semver.api.version> | |
| <slf4j.version>1.7.33</slf4j.version> | |
| <avro.version>1.11.5</avro.version> | |
| <guava.version>33.6.0-jre</guava.version> | |
| <brotli-codec.version>0.1.1</brotli-codec.version> | |
| <assertj.version>3.27.7</assertj.version> | |
| <junit.version>5.14.4</junit.version> | |
| <assertj.version>3.27.7</assertj.version> | |
| <mockito.version>5.23.0</mockito.version> | |
| <net.openhft.version>0.27ea1</net.openhft.version> | |
| <build-helper-maven-plugin.version>3.6.1</build-helper-maven-plugin.version> | |
| <exec-maven-plugin.version>3.6.3</exec-maven-plugin.version> | |
| <protoc-jar-maven-plugin.version>3.11.4</protoc-jar-maven-plugin.version> | |
| <jts.version>1.20.0</jts.version> | |
| <!-- parquet-cli dependencies --> | |
| <opencsv.version>2.3</opencsv.version> | |
| <jcommander.version>1.82</jcommander.version> | |
| <tukaani.version>1.12</tukaani.version> | |
| <zstd-jni.version>1.5.7-12</zstd-jni.version> | |
| <commons-text.version>1.15.0</commons-text.version> | |
| <jsr305.version>3.0.2</jsr305.version> | |
| <commons-lang3.version>3.20.0</commons-lang3.version> | |
| <!-- properties for the profiles --> | |
| <surefire.argLine>-XX:MaxJavaStackTraceDepth=8</surefire.argLine> | |
| <surefire.logLevel>ERROR</surefire.logLevel> | |
| <!-- Resource intesive tests are enabled by default but disabled in the CI envrionment --> | |
| <enableResourceIntensiveTests>true</enableResourceIntensiveTests> | |
| </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-protobuf</module> | |
| <module>parquet-thrift</module> | |
| <module>parquet-hadoop-bundle</module> | |
| <module>parquet-variant</module> | |
| </modules> | |
| <dependencies> | |
| <dependency> | |
| <groupId>org.junit.jupiter</groupId> | |
| <artifactId>junit-jupiter-api</artifactId> | |
| <version>${junit.version}</version> | |
| <scope>test</scope> | |
| </dependency> | |
| <dependency> | |
| <groupId>org.junit.jupiter</groupId> | |
| <artifactId>junit-jupiter-params</artifactId> | |
| <version>${junit.version}</version> | |
| <scope>test</scope> | |
| </dependency> | |
| <dependency> | |
| <groupId>org.junit.jupiter</groupId> | |
| <artifactId>junit-jupiter-engine</artifactId> | |
| <version>${junit.version}</version> | |
| <scope>test</scope> | |
| </dependency> | |
| <dependency> | |
| <groupId>org.junit.vintage</groupId> | |
| <artifactId>junit-vintage-engine</artifactId> | |
| <version>${junit.version}</version> | |
| <scope>test</scope> | |
| </dependency> | |
| <dependency> | |
| <groupId>org.assertj</groupId> | |
| <artifactId>assertj-core</artifactId> | |
| <version>${assertj.version}</version> | |
| <scope>test</scope> | |
| </dependency> | |
| </dependencies> | |
| <dependencyManagement> | |
| <dependencies> | |
| <dependency> | |
| <groupId>org.apache.hadoop</groupId> | |
| <artifactId>hadoop-mapreduce-client-core</artifactId> | |
| <version>${hadoop.version}</version> | |
| <exclusions> | |
| <exclusion> | |
| <groupId>org.slf4j</groupId> | |
| <artifactId>*</artifactId> | |
| </exclusion> | |
| <exclusion> | |
| <groupId>ch.qos.reload4j</groupId> | |
| <artifactId>*</artifactId> | |
| </exclusion> | |
| </exclusions> | |
| </dependency> | |
| <dependency> | |
| <groupId>org.apache.hadoop</groupId> | |
| <artifactId>hadoop-client</artifactId> | |
| <version>${hadoop.version}</version> | |
| <exclusions> | |
| <exclusion> | |
| <groupId>org.slf4j</groupId> | |
| <artifactId>*</artifactId> | |
| </exclusion> | |
| <exclusion> | |
| <groupId>ch.qos.reload4j</groupId> | |
| <artifactId>*</artifactId> | |
| </exclusion> | |
| </exclusions> | |
| </dependency> | |
| <dependency> | |
| <groupId>org.apache.hadoop</groupId> | |
| <artifactId>hadoop-common</artifactId> | |
| <version>${hadoop.version}</version> | |
| <exclusions> | |
| <exclusion> | |
| <groupId>org.slf4j</groupId> | |
| <artifactId>*</artifactId> | |
| </exclusion> | |
| <exclusion> | |
| <groupId>ch.qos.reload4j</groupId> | |
| <artifactId>*</artifactId> | |
| </exclusion> | |
| </exclusions> | |
| </dependency> | |
| </dependencies> | |
| </dependencyManagement> | |
| <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>11</source> | |
| <quiet>true</quiet> | |
| </configuration> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.codehaus.mojo</groupId> | |
| <artifactId>cobertura-maven-plugin</artifactId> | |
| <version>2.7</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> | |
| <dependencies> | |
| <dependency> | |
| <groupId>de.skuzzle.enforcer</groupId> | |
| <artifactId>restrict-imports-enforcer-rule</artifactId> | |
| <version>3.0.0</version> | |
| </dependency> | |
| </dependencies> | |
| <executions> | |
| <execution> | |
| <id>enforce-java-version</id> | |
| <goals> | |
| <goal>enforce</goal> | |
| </goals> | |
| <configuration> | |
| <rules> | |
| <requireJavaVersion> | |
| <version>[17,)</version> | |
| <message>Java 17 or higher is required to build parquet-java.</message> | |
| </requireJavaVersion> | |
| </rules> | |
| <fail>true</fail> | |
| </configuration> | |
| </execution> | |
| <execution> | |
| <id>enforce-banned-dependencies</id> | |
| <goals> | |
| <goal>enforce</goal> | |
| </goals> | |
| <configuration> | |
| <rules> | |
| <bannedDependencies> | |
| <excludes> | |
| <exclude>org.slf4j:slf4j-log4j12:*:*:compile</exclude> | |
| <exclude>org.slf4j:slf4j-reload4j:*:*:compile</exclude> | |
| </excludes> | |
| </bannedDependencies> | |
| </rules> | |
| <fail>true</fail> | |
| </configuration> | |
| </execution> | |
| <execution> | |
| <id>enforce-banned-junit4-imports</id> | |
| <phase>process-test-sources</phase> | |
| <goals> | |
| <goal>enforce</goal> | |
| </goals> | |
| <configuration> | |
| <rules> | |
| <RestrictImports> | |
| <reason>Use JUnit 5 (org.junit.jupiter.*) and AssertJ instead of JUnit 4</reason> | |
| <includeTestCode>true</includeTestCode> | |
| <bannedImports> | |
| <bannedImport>org.junit.**</bannedImport> | |
| <bannedImport>junit.framework.**</bannedImport> | |
| </bannedImports> | |
| <allowedImports> | |
| <allowedImport>org.junit.jupiter.**</allowedImport> | |
| <allowedImport>org.junit.platform.**</allowedImport> | |
| </allowedImports> | |
| <!-- Benchmark tests rely on JUnit 4 @Rule via junit-benchmarks with jupiter migration support --> | |
| <exclusions> | |
| <exclusion>org.apache.parquet.column.values.**.benchmark.**</exclusion> | |
| </exclusions> | |
| </RestrictImports> | |
| </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> | |
| <filter> | |
| <artifact>it.unimi.dsi:fastutil</artifact> | |
| <excludes> | |
| <exclude>it/unimi/dsi/fastutil/**/package-info.class</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> | |
| <plugin> | |
| <groupId>org.codehaus.mojo</groupId> | |
| <artifactId>build-helper-maven-plugin</artifactId> | |
| <version>${build-helper-maven-plugin.version}</version> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.codehaus.mojo</groupId> | |
| <artifactId>exec-maven-plugin</artifactId> | |
| <version>${exec-maven-plugin.version}</version> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.apache.thrift</groupId> | |
| <artifactId>thrift-maven-plugin</artifactId> | |
| <version>${thrift-maven-plugin.version}</version> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.apache.avro</groupId> | |
| <artifactId>avro-maven-plugin</artifactId> | |
| <version>${avro.version}</version> | |
| </plugin> | |
| <plugin> | |
| <groupId>com.github.os72</groupId> | |
| <artifactId>protoc-jar-maven-plugin</artifactId> | |
| <version>${protoc-jar-maven-plugin.version}</version> | |
| </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>11</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> | |
| </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> | |
| <enableResourceIntensiveTests>${enableResourceIntensiveTests}</enableResourceIntensiveTests> | |
| </systemPropertyVariables> | |
| <excludes> | |
| <exclude>**/benchmark/*.java</exclude> | |
| </excludes> | |
| </configuration> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.codehaus.mojo</groupId> | |
| <artifactId>buildnumber-maven-plugin</artifactId> | |
| <!-- Warning! 3.2.1 caused issues during verification, 3.2.0 is known to work correctly. --> | |
| <version>3.2.0</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>**/*.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> | |
| <exclude>**/*.rej</exclude> | |
| </excludes> | |
| </configuration> | |
| </plugin> | |
| <!-- https://mvnrepository.com/artifact/com.diffplug.spotless/spotless-maven-plugin --> | |
| <plugin> | |
| <groupId>com.diffplug.spotless</groupId> | |
| <artifactId>spotless-maven-plugin</artifactId> | |
| <version>${spotless.version}</version> | |
| <configuration> | |
| <java> | |
| <excludes> | |
| <exclude>**/generated-sources/**</exclude> | |
| </excludes> | |
| <toggleOffOn /> | |
| <removeUnusedImports /> | |
| <importOrder /> | |
| <trimTrailingWhitespace /> | |
| <palantirJavaFormat /> | |
| <endWithNewline /> | |
| <formatAnnotations /> | |
| <indent> | |
| <tabs>true</tabs> | |
| <spacesPerTab>4</spacesPerTab> | |
| </indent> | |
| <indent> | |
| <spaces>true</spaces> | |
| <spacesPerTab>2</spacesPerTab> | |
| </indent> | |
| </java> | |
| </configuration> | |
| <executions> | |
| <execution> | |
| <phase>verify</phase> | |
| <goals> | |
| <goal>check</goal> | |
| </goals> | |
| </execution> | |
| </executions> | |
| </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> | |
| <ignoreMissingClassesByRegularExpressions> | |
| <ignoreMissingClassesByRegularExpression>${shade.prefix}.*</ignoreMissingClassesByRegularExpression> | |
| </ignoreMissingClassesByRegularExpressions> | |
| <ignoreMissingOldVersion>true</ignoreMissingOldVersion> | |
| <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> | |
| </excludeModules> | |
| <excludes> | |
| <exclude>${shade.prefix}</exclude> | |
| <!-- Removal of a protected method in a class that's not supposed to be subclassed by third-party code --> | |
| <exclude>org.apache.parquet.column.values.bytestreamsplit.ByteStreamSplitValuesReader#gatherElementDataFromStreams(byte[])</exclude> | |
| <!-- Removal of a protected internal field that should not have been part of the public API --> | |
| <exclude>org.apache.parquet.column.values.plain.PlainValuesReader#in</exclude> | |
| <exclude>org.apache.parquet.column.values.bytestreamsplit.ByteStreamSplitValuesWriter#scatterBytes(byte[])</exclude> | |
| <!-- Due to the removal of deprecated methods --> | |
| <exclude>org.apache.parquet.arrow.schema.SchemaMapping$TypeMappingVisitor#visit(org.apache.parquet.arrow.schema.SchemaMapping$MapTypeMapping)</exclude> | |
| <!-- Intentional removal of deprecated Pig support from parquet-thrift --> | |
| <exclude>org.apache.parquet.thrift.pig.ParquetThriftStorer</exclude> | |
| <exclude>org.apache.parquet.thrift.pig.TupleToThriftWriteSupport</exclude> | |
| <exclude>org.apache.parquet.hadoop.thrift.AbstractThriftWriteSupport#isPigLoaded()</exclude> | |
| <!-- Make static variables final --> | |
| <exclude>org.apache.parquet.avro.AvroReadSupport#AVRO_REQUESTED_PROJECTION</exclude> | |
| <exclude>org.apache.parquet.avro.AvroReadSupport#AVRO_DATA_SUPPLIER</exclude> | |
| <exclude>org.apache.parquet.hadoop.ParquetFileReader#PARQUET_READ_PARALLELISM</exclude> | |
| <!-- GH-3596: RowRanges moved to org.apache.parquet.filter2.columnindex. A deprecated | |
| subclass is kept at the old internal location so the released | |
| ParquetFileReader#readFilteredRowGroup(int, RowRanges) signature stays compatible. | |
| The internal package carries no backward-compatibility guarantee, so the removal of | |
| the old RowRanges' own members (statics, Range) and the ColumnIndexFilter | |
| return-type changes are intentional. --> | |
| <exclude>org.apache.parquet.internal.filter2.columnindex.RowRanges</exclude> | |
| <exclude>org.apache.parquet.internal.filter2.columnindex.RowRanges$Range</exclude> | |
| <exclude>org.apache.parquet.internal.filter2.columnindex.ColumnIndexFilter</exclude> | |
| </excludes> | |
| </parameter> | |
| </configuration> | |
| <executions> | |
| <execution> | |
| <phase>verify</phase> | |
| <goals> | |
| <goal>cmp</goal> | |
| </goals> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.apache.maven.plugins</groupId> | |
| <artifactId>maven-dependency-plugin</artifactId> | |
| <executions> | |
| <execution> | |
| <goals> | |
| <goal>analyze-only</goal> | |
| </goals> | |
| <configuration> | |
| <failOnWarning>true</failOnWarning> | |
| <ignoreNonCompile>true</ignoreNonCompile> | |
| <ignoredDependencies> | |
| <dependency>javax.annotation:javax.annotation-api:jar:1.3.2</dependency> | |
| <dependency>junit:junit</dependency> | |
| </ignoredDependencies> | |
| </configuration> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.cyclonedx</groupId> | |
| <artifactId>cyclonedx-maven-plugin</artifactId> | |
| <version>2.9.3</version> | |
| <executions> | |
| <execution> | |
| <phase>package</phase> | |
| <goals> | |
| <goal>makeBom</goal> | |
| </goals> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| </plugins> | |
| </build> | |
| <profiles> | |
| <!-- Profile for tests to have more output --> | |
| <profile> | |
| <id>verbose-test</id> | |
| <properties> | |
| <surefire.logLevel>INFO</surefire.logLevel> | |
| <surefire.argLine>-XX:MaxJavaStackTraceDepth=1024</surefire.argLine> | |
| </properties> | |
| </profile> | |
| <profile> | |
| <id>vector-plugins</id> | |
| <modules> | |
| <module>parquet-plugins/parquet-encoding-vector</module> | |
| <module>parquet-plugins/parquet-plugins-benchmarks</module> | |
| </modules> | |
| </profile> | |
| </profiles> | |
| </project> |