You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@orc.apache.org by wi...@apache.org on 2023/01/18 23:57:40 UTC

[orc] branch branch-1.8 updated: ORC-1358: Use spotless to format pom files

This is an automated email from the ASF dual-hosted git repository.

william pushed a commit to branch branch-1.8
in repository https://gitbox.apache.org/repos/asf/orc.git


The following commit(s) were added to refs/heads/branch-1.8 by this push:
     new 1dbd3f132 ORC-1358: Use spotless to format pom files
1dbd3f132 is described below

commit 1dbd3f132f226536f46d8a6755d983b001e55008
Author: Dongjoon Hyun <do...@apache.org>
AuthorDate: Wed Jan 18 15:57:33 2023 -0800

    ORC-1358: Use spotless to format pom files
    
    ### What changes were proposed in this pull request?
    This is a backport of #1377
    
    This PR aims to use [spotless](https://github.com/diffplug/spotless) to format pom files.
    
    ### Why are the changes needed?
    This will enforce good style in pom files.
    
    ### How was this patch tested?
    Pass the CIs with newly added plugin.
    
    Closes #1386 from dongjoon-hyun/ORC-1358.
    
    Authored-by: Dongjoon Hyun <do...@apache.org>
    Signed-off-by: William Hyun <wi...@apache.org>
---
 java/bench/core/pom.xml  |   12 +-
 java/bench/hive/pom.xml  |   14 +-
 java/bench/pom.xml       |  424 ++++++++--------
 java/bench/spark/pom.xml |   24 +-
 java/core/pom.xml        |   16 +-
 java/examples/pom.xml    |   14 +-
 java/mapreduce/pom.xml   |   22 +-
 java/pom.xml             | 1253 +++++++++++++++++++++++-----------------------
 java/shims/pom.xml       |   14 +-
 java/tools/pom.xml       |   10 +-
 10 files changed, 897 insertions(+), 906 deletions(-)

diff --git a/java/bench/core/pom.xml b/java/bench/core/pom.xml
index 883062cc9..2536cb4a1 100644
--- a/java/bench/core/pom.xml
+++ b/java/bench/core/pom.xml
@@ -12,9 +12,7 @@
   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/xsd/maven-4.0.0.xsd">
+<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.orc</groupId>
@@ -26,9 +24,7 @@
   <artifactId>orc-benchmarks-core</artifactId>
   <packaging>jar</packaging>
   <name>ORC Benchmarks Core</name>
-  <description>
-    The core parts of the benchmarks for comparing performance across formats.
-  </description>
+  <description>The core parts of the benchmarks for comparing performance across formats.</description>
 
   <dependencies>
     <dependency>
@@ -122,8 +118,6 @@
   </dependencies>
 
   <build>
-    <sourceDirectory>${basedir}/src/java</sourceDirectory>
-    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
     <resources>
       <resource>
         <directory>src/resources</directory>
@@ -149,6 +143,8 @@
         </configuration>
       </plugin>
     </plugins>
+    <sourceDirectory>${basedir}/src/java</sourceDirectory>
+    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
   </build>
 
   <profiles>
diff --git a/java/bench/hive/pom.xml b/java/bench/hive/pom.xml
index c60eb0769..d5b25bcf4 100644
--- a/java/bench/hive/pom.xml
+++ b/java/bench/hive/pom.xml
@@ -12,9 +12,7 @@
   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/xsd/maven-4.0.0.xsd">
+<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.orc</groupId>
@@ -26,9 +24,7 @@
   <artifactId>orc-benchmarks-hive</artifactId>
   <packaging>jar</packaging>
   <name>ORC Benchmarks Hive</name>
-  <description>
-    File format benchmarks for Hive.
-  </description>
+  <description>File format benchmarks for Hive.</description>
 
   <dependencies>
     <dependency>
@@ -97,10 +93,8 @@
       <artifactId>jmh-generator-annprocess</artifactId>
     </dependency>
   </dependencies>
-  
+
   <build>
-    <sourceDirectory>${basedir}/src/java</sourceDirectory>
-    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
     <testResources>
       <testResource>
         <directory>${basedir}/src/test/resources</directory>
@@ -126,6 +120,8 @@
         </configuration>
       </plugin>
     </plugins>
+    <sourceDirectory>${basedir}/src/java</sourceDirectory>
+    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
   </build>
 
   <profiles>
diff --git a/java/bench/pom.xml b/java/bench/pom.xml
index 38e9693f9..3bebd263f 100644
--- a/java/bench/pom.xml
+++ b/java/bench/pom.xml
@@ -12,9 +12,7 @@
   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/xsd/maven-4.0.0.xsd">
+<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.orc</groupId>
@@ -26,27 +24,25 @@
   <artifactId>orc-benchmarks</artifactId>
   <packaging>pom</packaging>
   <name>ORC Benchmarks</name>
-  <description>
-    Benchmarks for comparing ORC, Parquet, JSON, and Avro performance.
-  </description>
+  <description>Benchmarks for comparing ORC, Parquet, JSON, and Avro performance.</description>
+
+  <modules>
+    <module>core</module>
+    <module>hive</module>
+    <module>spark</module>
+  </modules>
 
   <properties>
     <avro.version>1.11.1</avro.version>
+    <hadoop.version>3.3.4</hadoop.version>
     <hive.version>3.1.3</hive.version>
     <jmh.version>1.20</jmh.version>
+    <junit.version>5.8.2</junit.version>
     <orc.version>${project.version}</orc.version>
     <parquet.version>1.12.3</parquet.version>
     <spark.version>3.3.1</spark.version>
-    <hadoop.version>3.3.4</hadoop.version>
-    <junit.version>5.8.2</junit.version>
   </properties>
 
-  <modules>
-    <module>core</module>
-    <module>hive</module>
-    <module>spark</module>
-  </modules>
-
   <dependencyManagement>
     <dependencies>
       <dependency>
@@ -117,36 +113,36 @@
         <groupId>org.apache.hadoop</groupId>
         <artifactId>hadoop-common</artifactId>
         <version>${hadoop.version}</version>
-	<exclusions>
-	  <exclusion>
-	    <groupId>com.sun.jersey</groupId>
-	    <artifactId>jersey-server</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>com.sun.jersey</groupId>
-	    <artifactId>jersey-core</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>commons-beanutils</groupId>
-	    <artifactId>commons-beanutils</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>commons-beanutils</groupId>
-	    <artifactId>commons-beanutils-core</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>javax.servlet</groupId>
-	    <artifactId>servlet-api</artifactId>
-	  </exclusion>
+        <exclusions>
+          <exclusion>
+            <groupId>com.sun.jersey</groupId>
+            <artifactId>jersey-server</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>com.sun.jersey</groupId>
+            <artifactId>jersey-core</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>commons-beanutils</groupId>
+            <artifactId>commons-beanutils</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>commons-beanutils</groupId>
+            <artifactId>commons-beanutils-core</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+          </exclusion>
           <exclusion>
             <groupId>jdk.tools</groupId>
             <artifactId>jdk.tools</artifactId>
           </exclusion>
-	  <exclusion>
-	    <groupId>org.mortbay.jetty</groupId>
-	    <artifactId>servlet-api</artifactId>
-	  </exclusion>
-	</exclusions>
+          <exclusion>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>servlet-api</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.apache.hadoop</groupId>
@@ -158,157 +154,157 @@
         <artifactId>hadoop-hdfs</artifactId>
         <version>${hadoop.version}</version>
         <scope>runtime</scope>
-	<exclusions>
-	  <exclusion>
-	    <groupId>com.sun.jersey</groupId>
-	    <artifactId>jersey-core</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>com.sun.jersey</groupId>
-	    <artifactId>jersey-server</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>javax.servlet</groupId>
-	    <artifactId>servlet-api</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>org.fusesource.leveldbjni</groupId>
-	    <artifactId>leveldbjni-all</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>org.mortbay.jetty</groupId>
-	    <artifactId>servlet-api</artifactId>
-	  </exclusion>
-	</exclusions>
+        <exclusions>
+          <exclusion>
+            <groupId>com.sun.jersey</groupId>
+            <artifactId>jersey-core</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>com.sun.jersey</groupId>
+            <artifactId>jersey-server</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.fusesource.leveldbjni</groupId>
+            <artifactId>leveldbjni-all</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>servlet-api</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.apache.hadoop</groupId>
         <artifactId>hadoop-yarn-common</artifactId>
         <version>${hadoop.version}</version>
         <scope>runtime</scope>
-	<exclusions>
-	  <exclusion>
-	    <groupId>com.sun.jersey</groupId>
-	    <artifactId>jersey-core</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>com.sun.jersey</groupId>
-	    <artifactId>jersey-server</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>javax.inject</groupId>
-	    <artifactId>javax.inject</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>javax.servlet</groupId>
-	    <artifactId>servlet-api</artifactId>
-	  </exclusion>
-	</exclusions>
+        <exclusions>
+          <exclusion>
+            <groupId>com.sun.jersey</groupId>
+            <artifactId>jersey-core</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>com.sun.jersey</groupId>
+            <artifactId>jersey-server</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>javax.inject</groupId>
+            <artifactId>javax.inject</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.apache.hadoop</groupId>
         <artifactId>hadoop-mapreduce-client-core</artifactId>
         <version>${hadoop.version}</version>
-	<exclusions>
-	  <exclusion>
-	    <groupId>com.sun.jersey</groupId>
-	    <artifactId>jersey-core</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>com.sun.jersey</groupId>
-	    <artifactId>jersey-server</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>javax.inject</groupId>
-	    <artifactId>javax.inject</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>javax.servlet</groupId>
-	    <artifactId>servlet-api</artifactId>
-	  </exclusion>
-	</exclusions>
+        <exclusions>
+          <exclusion>
+            <groupId>com.sun.jersey</groupId>
+            <artifactId>jersey-core</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>com.sun.jersey</groupId>
+            <artifactId>jersey-server</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>javax.inject</groupId>
+            <artifactId>javax.inject</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.apache.hive</groupId>
         <artifactId>hive-exec</artifactId>
-        <classifier>core</classifier>
         <version>${hive.version}</version>
-	<exclusions>
-	  <exclusion>
-	    <groupId>org.apache.calcite</groupId>
-	    <artifactId>calcite-core</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>org.apache.calcite</groupId>
-	    <artifactId>calcite-druid</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>org.apache.calcite.avatica</groupId>
-	    <artifactId>avatica</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>org.apache.hadoop</groupId>
-	    <artifactId>hadoop-yarn-server-resourcemanager</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>org.apache.logging.log4j</groupId>
-	    <artifactId>log4j-1.2-api</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>org.apache.logging.log4j</groupId>
-	    <artifactId>log4j-slf4j-impl</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>stax</groupId>
-	    <artifactId>stax-api</artifactId>
-	  </exclusion>
-	</exclusions>
+        <classifier>core</classifier>
+        <exclusions>
+          <exclusion>
+            <groupId>org.apache.calcite</groupId>
+            <artifactId>calcite-core</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.apache.calcite</groupId>
+            <artifactId>calcite-druid</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.apache.calcite.avatica</groupId>
+            <artifactId>avatica</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.apache.hadoop</groupId>
+            <artifactId>hadoop-yarn-server-resourcemanager</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-1.2-api</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-slf4j-impl</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>stax</groupId>
+            <artifactId>stax-api</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.apache.hive</groupId>
         <artifactId>hive-serde</artifactId>
         <version>${hive.version}</version>
-	<exclusions>
-	  <exclusion>
-	    <groupId>javax.servlet</groupId>
-	    <artifactId>servlet-api</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>org.apache.logging.log4j</groupId>
-	    <artifactId>log4j-1.2-api</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>org.apache.logging.log4j</groupId>
-	    <artifactId>log4j-slf4j-impl</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>org.apache.logging.log4j</groupId>
-	    <artifactId>log4j-web</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>org.apache.parquet</groupId>
-	    <artifactId>parquet-hadoop-bundle</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>org.eclipse.jetty.aggregate</groupId>
-	    <artifactId>jetty-all</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>org.eclipse.jetty.orbit</groupId>
-	    <artifactId>javax.servlet</artifactId>
-	  </exclusion>
-	</exclusions>
+        <exclusions>
+          <exclusion>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-1.2-api</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-slf4j-impl</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-web</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.apache.parquet</groupId>
+            <artifactId>parquet-hadoop-bundle</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.eclipse.jetty.aggregate</groupId>
+            <artifactId>jetty-all</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.eclipse.jetty.orbit</groupId>
+            <artifactId>javax.servlet</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.apache.hive</groupId>
         <artifactId>hive-service-rpc</artifactId>
         <version>${hive.version}</version>
-	<exclusions>
-	  <exclusion>
-	    <groupId>tomcat</groupId>
-	    <artifactId>jasper-compiler</artifactId>
-	  </exclusion>
-	</exclusions>
+        <exclusions>
+          <exclusion>
+            <groupId>tomcat</groupId>
+            <artifactId>jasper-compiler</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.apache.hive</groupId>
@@ -329,7 +325,7 @@
         <groupId>org.apache.orc</groupId>
         <artifactId>orc-mapreduce</artifactId>
         <version>${orc.version}</version>
-	<scope>runtime</scope>
+        <scope>runtime</scope>
       </dependency>
       <dependency>
         <groupId>org.apache.parquet</groupId>
@@ -361,28 +357,28 @@
         <groupId>org.apache.spark</groupId>
         <artifactId>spark-core_2.12</artifactId>
         <version>${spark.version}</version>
-	<exclusions>
-	  <exclusion>
-	    <groupId>org.apache.avro</groupId>
-	    <artifactId>avro-mapred</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>org.glassfish.hk2.external</groupId>
-	    <artifactId>aopalliance-repackaged</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>org.mortbay.jetty</groupId>
-	    <artifactId>servlet-api</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>org.slf4j</groupId>
-	    <artifactId>jcl-over-slf4j</artifactId>
-	  </exclusion>
-	  <exclusion>
-	    <groupId>org.fusesource.leveldbjni</groupId>
-	    <artifactId>leveldbjni-all</artifactId>
-	  </exclusion>
-	</exclusions>
+        <exclusions>
+          <exclusion>
+            <groupId>org.apache.avro</groupId>
+            <artifactId>avro-mapred</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.glassfish.hk2.external</groupId>
+            <artifactId>aopalliance-repackaged</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>servlet-api</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.slf4j</groupId>
+            <artifactId>jcl-over-slf4j</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.fusesource.leveldbjni</groupId>
+            <artifactId>leveldbjni-all</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.apache.spark</groupId>
@@ -433,39 +429,18 @@
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-api</artifactId>
         <version>${slf4j.version}</version>
-	<scope>runtime</scope>
+        <scope>runtime</scope>
       </dependency>
       <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-simple</artifactId>
         <version>${slf4j.version}</version>
-	<scope>runtime</scope>
+        <scope>runtime</scope>
       </dependency>
     </dependencies>
   </dependencyManagement>
 
   <build>
-    <sourceDirectory>${basedir}/src/java</sourceDirectory>
-    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-enforcer-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <configuration>
-          <ignoredDependencies>
-            <ignoredDependency>*:*</ignoredDependency>
-          </ignoredDependencies>
-        </configuration>
-      </plugin>
-    </plugins>
     <pluginManagement>
       <plugins>
         <plugin>
@@ -478,16 +453,39 @@
           </configuration>
           <executions>
             <execution>
-              <id>make-assembly</id> <!-- this is used for inheritance merges -->
-              <phase>package</phase> <!-- bind to the packaging phase -->
+              <id>make-assembly</id>
+              <!-- bind to the packaging phase -->
               <goals>
                 <goal>single</goal>
               </goals>
+              <!-- this is used for inheritance merges -->
+              <phase>package</phase>
             </execution>
           </executions>
         </plugin>
       </plugins>
     </pluginManagement>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-enforcer-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <configuration>
+          <ignoredDependencies>
+            <ignoredDependency>*:*</ignoredDependency>
+          </ignoredDependencies>
+        </configuration>
+      </plugin>
+    </plugins>
+    <sourceDirectory>${basedir}/src/java</sourceDirectory>
+    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
   </build>
 
   <profiles>
diff --git a/java/bench/spark/pom.xml b/java/bench/spark/pom.xml
index 9a054409b..8bc611ba2 100644
--- a/java/bench/spark/pom.xml
+++ b/java/bench/spark/pom.xml
@@ -12,9 +12,7 @@
   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/xsd/maven-4.0.0.xsd">
+<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.orc</groupId>
@@ -26,14 +24,12 @@
   <artifactId>orc-benchmarks-spark</artifactId>
   <packaging>jar</packaging>
   <name>ORC Benchmarks Spark</name>
-  <description>
-    Benchmarks for comparing ORC, Parquet, JSON, and Avro performance under
-    Spark.
-  </description>
+  <description>Benchmarks for comparing ORC, Parquet, JSON, and Avro performance under
+    Spark.</description>
 
   <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <maven.compiler.useIncrementalCompilation>false</maven.compiler.useIncrementalCompilation>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 
     <!-- Spark Jackson version may not be same as ORC -->
     <spark.jackson.version>2.13.4</spark.jackson.version>
@@ -161,12 +157,12 @@
         <artifactId>maven-shade-plugin</artifactId>
         <executions>
           <execution>
-            <phase>package</phase>
             <goals>
               <goal>shade</goal>
             </goals>
+            <phase>package</phase>
             <configuration>
-	      <createDependencyReducedPom>false</createDependencyReducedPom>
+              <createDependencyReducedPom>false</createDependencyReducedPom>
               <artifactSet>
                 <includes>
                   <include>*:*</include>
@@ -203,15 +199,13 @@
                 </relocation>
               </relocations>
               <transformers>
-                <transformer
-                    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                   <manifestEntries>
                     <Main-Class>org.apache.orc.bench.core.Driver</Main-Class>
                   </manifestEntries>
                 </transformer>
-                <transformer
-                    implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer" />
-                <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
+                <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer"></transformer>
+                <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"></transformer>
               </transformers>
             </configuration>
           </execution>
diff --git a/java/core/pom.xml b/java/core/pom.xml
index e4c6c7d8e..d22fef772 100644
--- a/java/core/pom.xml
+++ b/java/core/pom.xml
@@ -12,9 +12,7 @@
   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/xsd/maven-4.0.0.xsd">
+<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.orc</groupId>
@@ -26,10 +24,8 @@
   <artifactId>orc-core</artifactId>
   <packaging>jar</packaging>
   <name>ORC Core</name>
-  <description>
-    The core reader and writer for ORC files. Uses the vectorized column batch
-    for the in memory representation.
-  </description>
+  <description>The core reader and writer for ORC files. Uses the vectorized column batch
+    for the in memory representation.</description>
 
   <dependencies>
     <!-- internal -->
@@ -110,11 +106,9 @@
   </dependencies>
 
   <build>
-    <sourceDirectory>${basedir}/src/java</sourceDirectory>
-    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
     <resources>
       <resource>
-	<directory>${basedir}/src/resources</directory>
+        <directory>${basedir}/src/resources</directory>
       </resource>
     </resources>
     <testResources>
@@ -168,6 +162,8 @@
         </configuration>
       </plugin>
     </plugins>
+    <sourceDirectory>${basedir}/src/java</sourceDirectory>
+    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
   </build>
 
   <profiles>
diff --git a/java/examples/pom.xml b/java/examples/pom.xml
index 980f1b1a0..fab1239ad 100644
--- a/java/examples/pom.xml
+++ b/java/examples/pom.xml
@@ -12,9 +12,7 @@
   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/xsd/maven-4.0.0.xsd">
+<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.orc</groupId>
@@ -68,8 +66,6 @@
   </dependencies>
 
   <build>
-    <sourceDirectory>${basedir}/src/java</sourceDirectory>
-    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
     <testResources>
       <testResource>
         <directory>${basedir}/src/test/resources</directory>
@@ -99,11 +95,13 @@
         </configuration>
         <executions>
           <execution>
-            <id>make-assembly</id> <!-- this is used for inheritance merges -->
-            <phase>package</phase> <!-- bind to the packaging phase -->
+            <id>make-assembly</id>
+            <!-- bind to the packaging phase -->
             <goals>
               <goal>single</goal>
             </goals>
+            <!-- this is used for inheritance merges -->
+            <phase>package</phase>
           </execution>
         </executions>
       </plugin>
@@ -122,6 +120,8 @@
         </configuration>
       </plugin>
     </plugins>
+    <sourceDirectory>${basedir}/src/java</sourceDirectory>
+    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
   </build>
 
   <profiles>
diff --git a/java/mapreduce/pom.xml b/java/mapreduce/pom.xml
index 9a07c32e1..fe248a7f5 100644
--- a/java/mapreduce/pom.xml
+++ b/java/mapreduce/pom.xml
@@ -12,9 +12,7 @@
   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/xsd/maven-4.0.0.xsd">
+<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.orc</groupId>
@@ -26,11 +24,9 @@
   <artifactId>orc-mapreduce</artifactId>
   <packaging>jar</packaging>
   <name>ORC MapReduce</name>
-  <description>
-    An implementation of Hadoop's mapred and mapreduce input and output formats
+  <description>An implementation of Hadoop's mapred and mapreduce input and output formats
     for ORC files. They use the core reader and writer, but present the data
-    to the user in Writable objects.
-  </description>
+    to the user in Writable objects.</description>
 
   <dependencies>
     <dependency>
@@ -100,8 +96,6 @@
   </dependencies>
 
   <build>
-    <sourceDirectory>${basedir}/src/java</sourceDirectory>
-    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
     <testResources>
       <testResource>
         <directory>${basedir}/src/test/resources</directory>
@@ -128,12 +122,8 @@
         <artifactId>maven-dependency-plugin</artifactId>
         <configuration>
           <ignoredUnusedDeclaredDependencies>
-            <ignoredUnusedDeclaredDependency>
-              org.apache.hadoop:hadoop-hdfs
-            </ignoredUnusedDeclaredDependency>
-            <ignoredUnusedDeclaredDependency>
-              org.apache.hadoop:hadoop-mapreduce-client-jobclient
-            </ignoredUnusedDeclaredDependency>
+            <ignoredUnusedDeclaredDependency>org.apache.hadoop:hadoop-hdfs</ignoredUnusedDeclaredDependency>
+            <ignoredUnusedDeclaredDependency>org.apache.hadoop:hadoop-mapreduce-client-jobclient</ignoredUnusedDeclaredDependency>
           </ignoredUnusedDeclaredDependencies>
           <ignoredDependencies>
             <ignoredDependency>org.apache.hadoop:hadoop-client-api</ignoredDependency>
@@ -142,6 +132,8 @@
         </configuration>
       </plugin>
     </plugins>
+    <sourceDirectory>${basedir}/src/java</sourceDirectory>
+    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
   </build>
 
   <profiles>
diff --git a/java/pom.xml b/java/pom.xml
index 927374645..c75524bbe 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -25,15 +25,13 @@
   <packaging>pom</packaging>
 
   <name>Apache ORC</name>
-  <url>https://orc.apache.org</url>
-  <description>
-     ORC is a self-describing type-aware columnar file format designed
+  <description>ORC is a self-describing type-aware columnar file format designed
      for Hadoop workloads. It is optimized for large streaming reads,
      but with integrated support for finding required rows
      quickly. Storing data in a columnar format lets the reader read,
      decompress, and process only the values that are required for the
-     current query.
-  </description>
+     current query.</description>
+  <url>https://orc.apache.org</url>
   <inceptionYear>2013</inceptionYear>
 
   <mailingLists>
@@ -62,573 +60,62 @@
   </modules>
 
   <properties>
-    <!-- Build Properties -->
-    <project.build.outputTimestamp>2023-01-10T11:10:51Z</project.build.outputTimestamp>
+    <checkstyle.version>10.3.2</checkstyle.version>
+    <example.dir>${project.basedir}/../../examples</example.dir>
+    <hadoop.version>2.7.3</hadoop.version>
+    <junit.version>5.8.2</junit.version>
+    <maven-assembly-plugin.version>3.4.1</maven-assembly-plugin.version>
+    <maven-shade-plugin.version>3.2.4</maven-shade-plugin.version>
     <maven.compiler.source>1.8</maven.compiler.source>
     <maven.compiler.target>1.8</maven.compiler.target>
     <maven.compiler.useIncrementalCompilation>false</maven.compiler.useIncrementalCompilation>
-    <test.tmp.dir>${project.build.directory}/testing-tmp</test.tmp.dir>
-    <example.dir>${project.basedir}/../../examples</example.dir>
+    <maven.version>3.8.6</maven.version>
 
     <min.hadoop.version>2.7.3</min.hadoop.version>
-    <hadoop.version>2.7.3</hadoop.version>
-    <tools.hadoop.version>2.10.2</tools.hadoop.version>
-    <storage-api.version>2.8.1</storage-api.version>
-    <zookeeper.version>3.8.0</zookeeper.version>
-    <maven.version>3.8.6</maven.version>
-    <maven-assembly-plugin.version>3.4.1</maven-assembly-plugin.version>
-    <maven-shade-plugin.version>3.2.4</maven-shade-plugin.version>
+    <mockito.version>4.6.1</mockito.version>
+    <!-- Build Properties -->
+    <project.build.outputTimestamp>2023-01-10T11:10:51Z</project.build.outputTimestamp>
     <slf4j.version>1.7.36</slf4j.version>
+    <storage-api.version>2.8.1</storage-api.version>
     <surefire.version>3.0.0-M5</surefire.version>
-    <junit.version>5.8.2</junit.version>
-    <mockito.version>4.6.1</mockito.version>
-    <checkstyle.version>10.3.2</checkstyle.version>
+    <test.tmp.dir>${project.build.directory}/testing-tmp</test.tmp.dir>
+    <tools.hadoop.version>2.10.2</tools.hadoop.version>
+    <zookeeper.version>3.8.0</zookeeper.version>
   </properties>
 
-  <repositories>
-    <repository>
-      <id>gcs-maven-central-mirror</id>
-      <!--
-        Google Mirror of Maven Central, placed first so that it's used instead of flaky Maven Central.
-        See https://storage-download.googleapis.com/maven-central/index.html
-      -->
-      <name>GCS Maven Central mirror</name>
-      <url>https://maven-central.storage-download.googleapis.com/maven2/</url>
-      <releases>
-        <enabled>true</enabled>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-    <repository>
-      <!--
-        This is used as a fallback when the first try fails.
-      -->
-      <id>central</id>
-      <name>Maven Repository</name>
-      <url>https://repo.maven.apache.org/maven2</url>
-      <releases>
-        <enabled>true</enabled>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-  </repositories>
-  <pluginRepositories>
-    <pluginRepository>
-      <id>gcs-maven-central-mirror</id>
-      <!--
-        Google Mirror of Maven Central, placed first so that it's used instead of flaky Maven Central.
-        See https://storage-download.googleapis.com/maven-central/index.html
-      -->
-      <name>GCS Maven Central mirror</name>
-      <url>https://maven-central.storage-download.googleapis.com/maven2/</url>
-      <releases>
-        <enabled>true</enabled>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </pluginRepository>
-    <pluginRepository>
-      <id>central</id>
-      <url>https://repo.maven.apache.org/maven2</url>
-      <releases>
-        <enabled>true</enabled>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </pluginRepository>
-  </pluginRepositories>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-enforcer-plugin</artifactId>
-        <version>3.1.0</version>
-        <executions>
-          <execution>
-            <id>enforce-maven</id>
-            <goals>
-              <goal>enforce</goal>
-            </goals>
-            <configuration>
-              <rules>
-                <requireMavenVersion>
-                  <version>${maven.version}</version>
-                </requireMavenVersion>
-              </rules>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <configuration>
-          <links>
-            <link>https://hadoop.apache.org/docs/r${hadoop.version}/api</link>
-            <link>https://orc.apache.org/api/hive-storage-api</link>
-            <link>https://orc.apache.org/api/orc-core</link>
-            <link>https://orc.apache.org/api/orc-mapreduce</link>
-            <link>https://orc.apache.org/api/orc-tools</link>
-          </links>
-          <offlineLinks>
-            <offlineLink>
-              <url>https://orc.apache.org/api/hive-storage-api</url>
-              <location>${project.basedir}/../../site/api/hive-storage-api</location>
-            </offlineLink>
-            <offlineLink>
-              <url>https://orc.apache.org/api/orc-core</url>
-              <location>${project.basedir}/../../site/api/orc-core</location>
-            </offlineLink>
-            <offlineLink>
-              <url>https://orc.apache.org/api/orc-mapreduce</url>
-              <location>${project.basedir}/../../site/api/orc-mapreduce</location>
-            </offlineLink>
-          </offlineLinks>
-          <reportOutputDirectory>${project.basedir}/../../site/api</reportOutputDirectory>
-          <notimestamp>true</notimestamp>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-antrun-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>setup-test-dirs</id>
-            <phase>process-test-resources</phase>
-            <goals>
-              <goal>run</goal>
-            </goals>
-            <configuration>
-              <target>
-                <delete dir="${test.tmp.dir}" />
-                <mkdir dir="${test.tmp.dir}" />
-              </target>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-source-plugin</artifactId>
-        <configuration>
-          <attach>true</attach>
-        </configuration>
-        <executions>
-          <execution>
-            <id>create-source-jar</id>
-            <goals>
-              <goal>jar-no-fork</goal>
-              <goal>test-jar-no-fork</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <configuration>
-          <trimStackTrace>false</trimStackTrace>
-          <reuseForks>false</reuseForks>
-          <argLine>-Xmx2048m -XX:+IgnoreUnrecognizedVMOptions --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED</argLine>
-          <environmentVariables>
-            <TZ>US/Pacific</TZ>
-            <LANG>en_US.UTF-8</LANG>
-          </environmentVariables>
-          <useSystemClassLoader>false</useSystemClassLoader>
-          <failIfNoTests>false</failIfNoTests>
-          <systemPropertyVariables>
-            <test.tmp.dir>${test.tmp.dir}</test.tmp.dir>
-            <example.dir>${example.dir}</example.dir>
-          </systemPropertyVariables>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>io.github.zlika</groupId>
-        <artifactId>reproducible-build-maven-plugin</artifactId>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>strip-jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.cyclonedx</groupId>
-        <artifactId>cyclonedx-maven-plugin</artifactId>
-        <version>2.7.4</version>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>makeBom</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-jar-plugin</artifactId>
-          <version>3.2.2</version>
-          <executions>
-            <execution>
-              <goals>
-                <goal>test-jar</goal>
-              </goals>
-            </execution>
-          </executions>
-          <configuration>
-            <archive>
-              <manifest>
-                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
-                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
-              </manifest>
-            </archive>
-          </configuration>
-        </plugin>
-        <plugin>
-          <groupId>com.github.spotbugs</groupId>
-          <artifactId>spotbugs-maven-plugin</artifactId>
-          <version>4.7.1.1</version>
-          <dependencies>
-            <dependency>
-              <groupId>com.github.spotbugs</groupId>
-              <artifactId>spotbugs</artifactId>
-              <version>4.7.3</version>
-            </dependency>
-          </dependencies>
-          <configuration>
-            <includeFilterFile>spotbugs-include.xml</includeFilterFile>
-            <excludeFilterFile>spotbugs-exclude.xml</excludeFilterFile>
-          </configuration>
-          <executions>
-            <execution>
-              <id>analyze-compile</id>
-              <phase>test</phase>
-              <goals>
-                <goal>check</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.rat</groupId>
-          <artifactId>apache-rat-plugin</artifactId>
-          <executions>
-            <execution>
-              <phase>package</phase>
-              <goals>
-                <goal>check</goal>
-              </goals>
-            </execution>
-          </executions>
-          <configuration>
-            <excludeSubProjects>false</excludeSubProjects>
-            <excludes>
-              <exclude>**/data/**</exclude>
-              <exclude>**/*.iml</exclude>
-              <exclude>**/*.json</exclude>
-              <exclude>**/*.json.gz</exclude>
-              <exclude>**/*.orc</exclude>
-              <exclude>**/*.out</exclude>
-              <exclude>**/*.schema</exclude>
-              <exclude>**/*.md</exclude>
-              <exclude>**/m2.conf</exclude>
-              <exclude>**/target/**</exclude>
-              <exclude>.idea/**</exclude>
-              <exclude>**/*.iml</exclude>
-            </excludes>
-          </configuration>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-checkstyle-plugin</artifactId>
-          <version>3.1.2</version>
-          <dependencies>
-            <dependency>
-              <groupId>com.puppycrawl.tools</groupId>
-              <artifactId>checkstyle</artifactId>
-              <version>${checkstyle.version}</version>
-            </dependency>
-          </dependencies>
-          <executions>
-            <execution>
-              <phase>package</phase>
-              <goals>
-                <goal>check</goal>
-              </goals>
-            </execution>
-          </executions>
-          <configuration>
-            <sourceDirectories>
-              <directory>${basedir}/src/java</directory>
-            </sourceDirectories>
-            <configLocation>checkstyle.xml</configLocation>
-            <failOnViolation>true</failOnViolation>
-          </configuration>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-dependency-plugin</artifactId>
-          <version>3.1.2</version>
-          <executions>
-            <execution>
-              <phase>package</phase>
-              <goals>
-                <goal>analyze-only</goal>
-              </goals>
-            </execution>
-          </executions>
-          <configuration>
-            <failOnWarning>true</failOnWarning>
-            <ignoreNonCompile>true</ignoreNonCompile>
-          </configuration>
-        </plugin>
-        <plugin>
-          <groupId>org.codehaus.mojo</groupId>
-          <artifactId>build-helper-maven-plugin</artifactId>
-          <version>3.3.0</version>
-          <executions>
-            <execution>
-              <id>add-source</id>
-              <phase>generate-sources</phase>
-              <goals>
-                <goal>add-source</goal>
-              </goals>
-              <configuration>
-                <sources>
-                  <source>${project.build.directory}/generated-sources</source>
-                </sources>
-              </configuration>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <groupId>com.github.os72</groupId>
-          <artifactId>protoc-jar-maven-plugin</artifactId>
-          <version>3.11.4</version>
-          <executions>
-            <execution>
-              <phase>generate-sources</phase>
-              <goals>
-                <goal>run</goal>
-              </goals>
-              <configuration>
-                <protocVersion>3.17.3</protocVersion>
-                <addSources>none</addSources>
-                <includeDirectories>
-                  <include>../../proto</include>
-                </includeDirectories>
-                <inputDirectories>
-                  <include>../../proto</include>
-                </inputDirectories>
-              </configuration>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-shade-plugin</artifactId>
-          <version>${maven-shade-plugin.version}</version>
-          <executions>
-            <execution>
-              <id>shaded-protobuf</id>
-              <phase>package</phase>
-              <goals>
-                <goal>shade</goal>
-              </goals>
-              <configuration>
-                <artifactSet>
-                  <includes>
-                    <include>com.google.protobuf:protobuf-java</include>
-                  </includes>
-                </artifactSet>
-                <shadedArtifactAttached>true</shadedArtifactAttached>
-                <shadedClassifierName>shaded-protobuf</shadedClassifierName>
-                <relocations>
-                  <relocation>
-                    <pattern>com.google.protobuf</pattern>
-                    <shadedPattern>org.apache.orc.protobuf</shadedPattern>
-                  </relocation>
-                </relocations>
-                <filters>
-                  <filter>
-                    <artifact>*:*</artifact>
-                    <excludes>
-                      <exclude>module-info.class</exclude>
-                      <exclude>META-INF/MANIFEST.MF</exclude>
-                      <exclude>META-INF/DEPENDENCIES</exclude>
-                      <exclude>META-INF/LICENSE</exclude>
-                      <exclude>META-INF/NOTICE</exclude>
-                      <exclude>google/protobuf/**</exclude>
-                    </excludes>
-                  </filter>
-                </filters>
-              </configuration>
-            </execution>
-            <execution>
-              <id>nohive</id>
-              <phase>package</phase>
-              <goals>
-                <goal>shade</goal>
-              </goals>
-              <configuration>
-                <artifactSet>
-                  <includes>
-                    <include>com.google.protobuf:protobuf-java</include>
-                    <include>org.apache.hive:hive-storage-api</include>
-                  </includes>
-                </artifactSet>
-                <shadedArtifactAttached>true</shadedArtifactAttached>
-                <shadedClassifierName>nohive</shadedClassifierName>
-                <relocations>
-                  <relocation>
-                    <pattern>com.google.protobuf</pattern>
-                    <shadedPattern>org.apache.orc.protobuf</shadedPattern>
-                  </relocation>
-                  <relocation>
-                    <pattern>org.apache.hadoop.hive</pattern>
-                    <shadedPattern>org.apache.orc.storage</shadedPattern>
-                  </relocation>
-                  <relocation>
-                    <pattern>org.apache.hive</pattern>
-                    <shadedPattern>org.apache.orc.storage</shadedPattern>
-                  </relocation>
-                </relocations>
-                <filters>
-                  <filter>
-                    <artifact>*:*</artifact>
-                    <excludes>
-                      <exclude>module-info.class</exclude>
-                      <exclude>META-INF/MANIFEST.MF</exclude>
-                      <exclude>META-INF/DEPENDENCIES</exclude>
-                      <exclude>META-INF/LICENSE</exclude>
-                      <exclude>META-INF/NOTICE</exclude>
-                      <exclude>google/protobuf/**</exclude>
-                    </excludes>
-                  </filter>
-                </filters>
-              </configuration>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <groupId>io.github.zlika</groupId>
-          <artifactId>reproducible-build-maven-plugin</artifactId>
-          <version>0.15</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-  </build>
-
-  <profiles>
-    <profile>
-      <id>cmake</id>
-      <build>
-        <directory>${build.dir}</directory>
-      </build>
-    </profile>
-    <profile>
-      <!-- a profile to check the source for common problems -->
-      <id>analyze</id>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>com.github.spotbugs</groupId>
-            <artifactId>spotbugs-maven-plugin</artifactId>
-          </plugin>
-          <plugin>
-            <groupId>org.apache.rat</groupId>
-            <artifactId>apache-rat-plugin</artifactId>
-          </plugin>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-checkstyle-plugin</artifactId>
-          </plugin>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-dependency-plugin</artifactId>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
-      <!-- a developer profile to build some benchmarks -->
-      <id>benchmark</id>
-      <modules>
-        <module>bench</module>
-      </modules>
-    </profile>
-    <profile>
-      <id>java17</id>
-      <activation>
-        <jdk>[17,)</jdk>
-      </activation>
-      <properties>
-        <min.hadoop.version>3.3.4</min.hadoop.version>
-        <hadoop.version>3.3.4</hadoop.version>
-        <tools.hadoop.version>3.3.4</tools.hadoop.version>
-      </properties>
-    </profile>
-    <profile>
-      <id>java8</id>
-      <activation>
-        <jdk>1.8</jdk>
-      </activation>
-      <properties>
-        <checkstyle.version>9.3</checkstyle.version>
-      </properties>
-    </profile>
-  </profiles>
-
-  <dependencyManagement>
-    <dependencies>
-      <!-- intra-project depedencies -->
-      <dependency>
-        <groupId>org.apache.orc</groupId>
-        <artifactId>orc-shims</artifactId>
-        <version>1.8.3-SNAPSHOT</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-common</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-hdfs</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.orc</groupId>
-        <artifactId>orc-core</artifactId>
-        <version>1.8.3-SNAPSHOT</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.orc</groupId>
-        <artifactId>orc-mapreduce</artifactId>
-        <version>1.8.3-SNAPSHOT</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.orc</groupId>
-        <artifactId>orc-tools</artifactId>
-        <version>1.8.3-SNAPSHOT</version>
-      </dependency>
+  <dependencyManagement>
+    <dependencies>
+      <!-- intra-project depedencies -->
+      <dependency>
+        <groupId>org.apache.orc</groupId>
+        <artifactId>orc-shims</artifactId>
+        <version>1.8.3-SNAPSHOT</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.apache.hadoop</groupId>
+            <artifactId>hadoop-common</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.apache.hadoop</groupId>
+            <artifactId>hadoop-hdfs</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.orc</groupId>
+        <artifactId>orc-core</artifactId>
+        <version>1.8.3-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.orc</groupId>
+        <artifactId>orc-mapreduce</artifactId>
+        <version>1.8.3-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.orc</groupId>
+        <artifactId>orc-tools</artifactId>
+        <version>1.8.3-SNAPSHOT</version>
+      </dependency>
 
       <!-- inter-project depedencies -->
       <dependency>
@@ -878,55 +365,593 @@
         <version>1.7.1</version>
       </dependency>
 
-      <!-- test inter-project -->
-      <dependency>
-        <groupId>com.google.guava</groupId>
-        <artifactId>guava</artifactId>
-        <version>31.1-jre</version>
-        <scope>test</scope>
-      </dependency>
-      <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.mockito</groupId>
-        <artifactId>mockito-core</artifactId>
-        <version>${mockito.version}</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.mockito</groupId>
-        <artifactId>mockito-junit-jupiter</artifactId>
-        <version>${mockito.version}</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.objenesis</groupId>
-        <artifactId>objenesis</artifactId>
-        <version>3.2</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>net.bytebuddy</groupId>
-        <artifactId>byte-buddy</artifactId>
-        <version>1.12.13</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>com.google.auto.service</groupId>
-        <artifactId>auto-service</artifactId>
-        <version>1.0.1</version>
-        <optional>true</optional>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
+      <!-- test inter-project -->
+      <dependency>
+        <groupId>com.google.guava</groupId>
+        <artifactId>guava</artifactId>
+        <version>31.1-jre</version>
+        <scope>test</scope>
+      </dependency>
+      <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.mockito</groupId>
+        <artifactId>mockito-core</artifactId>
+        <version>${mockito.version}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-junit-jupiter</artifactId>
+        <version>${mockito.version}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.objenesis</groupId>
+        <artifactId>objenesis</artifactId>
+        <version>3.2</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>net.bytebuddy</groupId>
+        <artifactId>byte-buddy</artifactId>
+        <version>1.12.13</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>com.google.auto.service</groupId>
+        <artifactId>auto-service</artifactId>
+        <version>1.0.1</version>
+        <optional>true</optional>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+  <repositories>
+    <repository>
+      <releases>
+        <enabled>true</enabled>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+      <id>gcs-maven-central-mirror</id>
+      <!--
+        Google Mirror of Maven Central, placed first so that it's used instead of flaky Maven Central.
+        See https://storage-download.googleapis.com/maven-central/index.html
+      -->
+      <name>GCS Maven Central mirror</name>
+      <url>https://maven-central.storage-download.googleapis.com/maven2/</url>
+    </repository>
+    <repository>
+      <releases>
+        <enabled>true</enabled>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+      <!--
+        This is used as a fallback when the first try fails.
+      -->
+      <id>central</id>
+      <name>Maven Repository</name>
+      <url>https://repo.maven.apache.org/maven2</url>
+    </repository>
+  </repositories>
+  <pluginRepositories>
+    <pluginRepository>
+      <releases>
+        <enabled>true</enabled>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+      <id>gcs-maven-central-mirror</id>
+      <!--
+        Google Mirror of Maven Central, placed first so that it's used instead of flaky Maven Central.
+        See https://storage-download.googleapis.com/maven-central/index.html
+      -->
+      <name>GCS Maven Central mirror</name>
+      <url>https://maven-central.storage-download.googleapis.com/maven2/</url>
+    </pluginRepository>
+    <pluginRepository>
+      <releases>
+        <enabled>true</enabled>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+      <id>central</id>
+      <url>https://repo.maven.apache.org/maven2</url>
+    </pluginRepository>
+  </pluginRepositories>
+
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>com.diffplug.spotless</groupId>
+          <artifactId>spotless-maven-plugin</artifactId>
+          <version>2.30.0</version>
+          <configuration>
+            <pom>
+              <sortPom>
+                <!-- Don't sort modules, dependencies, plugins
+                  https://github.com/Ekryd/sortpom/wiki/Parameters-that-can-affect-your-build -->
+                <sortProperties>true</sortProperties>
+              </sortPom>
+            </pom>
+          </configuration>
+          <executions>
+            <execution>
+              <id>analyze-compile</id>
+              <goals>
+                <goal>check</goal>
+              </goals>
+              <phase>test</phase>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-jar-plugin</artifactId>
+          <version>3.2.2</version>
+          <configuration>
+            <archive>
+              <manifest>
+                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+              </manifest>
+            </archive>
+          </configuration>
+          <executions>
+            <execution>
+              <goals>
+                <goal>test-jar</goal>
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>com.github.spotbugs</groupId>
+          <artifactId>spotbugs-maven-plugin</artifactId>
+          <version>4.7.1.1</version>
+          <configuration>
+            <includeFilterFile>spotbugs-include.xml</includeFilterFile>
+            <excludeFilterFile>spotbugs-exclude.xml</excludeFilterFile>
+          </configuration>
+          <dependencies>
+            <dependency>
+              <groupId>com.github.spotbugs</groupId>
+              <artifactId>spotbugs</artifactId>
+              <version>4.7.3</version>
+            </dependency>
+          </dependencies>
+          <executions>
+            <execution>
+              <id>analyze-compile</id>
+              <goals>
+                <goal>check</goal>
+              </goals>
+              <phase>test</phase>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.rat</groupId>
+          <artifactId>apache-rat-plugin</artifactId>
+          <configuration>
+            <excludeSubProjects>false</excludeSubProjects>
+            <excludes>
+              <exclude>**/data/**</exclude>
+              <exclude>**/*.iml</exclude>
+              <exclude>**/*.json</exclude>
+              <exclude>**/*.json.gz</exclude>
+              <exclude>**/*.orc</exclude>
+              <exclude>**/*.out</exclude>
+              <exclude>**/*.schema</exclude>
+              <exclude>**/*.md</exclude>
+              <exclude>**/m2.conf</exclude>
+              <exclude>**/target/**</exclude>
+              <exclude>.idea/**</exclude>
+              <exclude>**/*.iml</exclude>
+            </excludes>
+          </configuration>
+          <executions>
+            <execution>
+              <goals>
+                <goal>check</goal>
+              </goals>
+              <phase>package</phase>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-checkstyle-plugin</artifactId>
+          <version>3.1.2</version>
+          <configuration>
+            <sourceDirectories>
+              <directory>${basedir}/src/java</directory>
+            </sourceDirectories>
+            <configLocation>checkstyle.xml</configLocation>
+            <failOnViolation>true</failOnViolation>
+          </configuration>
+          <dependencies>
+            <dependency>
+              <groupId>com.puppycrawl.tools</groupId>
+              <artifactId>checkstyle</artifactId>
+              <version>${checkstyle.version}</version>
+            </dependency>
+          </dependencies>
+          <executions>
+            <execution>
+              <goals>
+                <goal>check</goal>
+              </goals>
+              <phase>package</phase>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-dependency-plugin</artifactId>
+          <version>3.1.2</version>
+          <configuration>
+            <failOnWarning>true</failOnWarning>
+            <ignoreNonCompile>true</ignoreNonCompile>
+          </configuration>
+          <executions>
+            <execution>
+              <goals>
+                <goal>analyze-only</goal>
+              </goals>
+              <phase>package</phase>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.codehaus.mojo</groupId>
+          <artifactId>build-helper-maven-plugin</artifactId>
+          <version>3.3.0</version>
+          <executions>
+            <execution>
+              <id>add-source</id>
+              <goals>
+                <goal>add-source</goal>
+              </goals>
+              <phase>generate-sources</phase>
+              <configuration>
+                <sources>
+                  <source>${project.build.directory}/generated-sources</source>
+                </sources>
+              </configuration>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>com.github.os72</groupId>
+          <artifactId>protoc-jar-maven-plugin</artifactId>
+          <version>3.11.4</version>
+          <executions>
+            <execution>
+              <goals>
+                <goal>run</goal>
+              </goals>
+              <phase>generate-sources</phase>
+              <configuration>
+                <protocVersion>3.17.3</protocVersion>
+                <addSources>none</addSources>
+                <includeDirectories>
+                  <include>../../proto</include>
+                </includeDirectories>
+                <inputDirectories>
+                  <include>../../proto</include>
+                </inputDirectories>
+              </configuration>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-shade-plugin</artifactId>
+          <version>${maven-shade-plugin.version}</version>
+          <executions>
+            <execution>
+              <id>shaded-protobuf</id>
+              <goals>
+                <goal>shade</goal>
+              </goals>
+              <phase>package</phase>
+              <configuration>
+                <artifactSet>
+                  <includes>
+                    <include>com.google.protobuf:protobuf-java</include>
+                  </includes>
+                </artifactSet>
+                <shadedArtifactAttached>true</shadedArtifactAttached>
+                <shadedClassifierName>shaded-protobuf</shadedClassifierName>
+                <relocations>
+                  <relocation>
+                    <pattern>com.google.protobuf</pattern>
+                    <shadedPattern>org.apache.orc.protobuf</shadedPattern>
+                  </relocation>
+                </relocations>
+                <filters>
+                  <filter>
+                    <artifact>*:*</artifact>
+                    <excludes>
+                      <exclude>module-info.class</exclude>
+                      <exclude>META-INF/MANIFEST.MF</exclude>
+                      <exclude>META-INF/DEPENDENCIES</exclude>
+                      <exclude>META-INF/LICENSE</exclude>
+                      <exclude>META-INF/NOTICE</exclude>
+                      <exclude>google/protobuf/**</exclude>
+                    </excludes>
+                  </filter>
+                </filters>
+              </configuration>
+            </execution>
+            <execution>
+              <id>nohive</id>
+              <goals>
+                <goal>shade</goal>
+              </goals>
+              <phase>package</phase>
+              <configuration>
+                <artifactSet>
+                  <includes>
+                    <include>com.google.protobuf:protobuf-java</include>
+                    <include>org.apache.hive:hive-storage-api</include>
+                  </includes>
+                </artifactSet>
+                <shadedArtifactAttached>true</shadedArtifactAttached>
+                <shadedClassifierName>nohive</shadedClassifierName>
+                <relocations>
+                  <relocation>
+                    <pattern>com.google.protobuf</pattern>
+                    <shadedPattern>org.apache.orc.protobuf</shadedPattern>
+                  </relocation>
+                  <relocation>
+                    <pattern>org.apache.hadoop.hive</pattern>
+                    <shadedPattern>org.apache.orc.storage</shadedPattern>
+                  </relocation>
+                  <relocation>
+                    <pattern>org.apache.hive</pattern>
+                    <shadedPattern>org.apache.orc.storage</shadedPattern>
+                  </relocation>
+                </relocations>
+                <filters>
+                  <filter>
+                    <artifact>*:*</artifact>
+                    <excludes>
+                      <exclude>module-info.class</exclude>
+                      <exclude>META-INF/MANIFEST.MF</exclude>
+                      <exclude>META-INF/DEPENDENCIES</exclude>
+                      <exclude>META-INF/LICENSE</exclude>
+                      <exclude>META-INF/NOTICE</exclude>
+                      <exclude>google/protobuf/**</exclude>
+                    </excludes>
+                  </filter>
+                </filters>
+              </configuration>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>io.github.zlika</groupId>
+          <artifactId>reproducible-build-maven-plugin</artifactId>
+          <version>0.15</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-enforcer-plugin</artifactId>
+        <version>3.1.0</version>
+        <executions>
+          <execution>
+            <id>enforce-maven</id>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+            <configuration>
+              <rules>
+                <requireMavenVersion>
+                  <version>${maven.version}</version>
+                </requireMavenVersion>
+              </rules>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <configuration>
+          <links>
+            <link>https://hadoop.apache.org/docs/r${hadoop.version}/api</link>
+            <link>https://orc.apache.org/api/hive-storage-api</link>
+            <link>https://orc.apache.org/api/orc-core</link>
+            <link>https://orc.apache.org/api/orc-mapreduce</link>
+            <link>https://orc.apache.org/api/orc-tools</link>
+          </links>
+          <offlineLinks>
+            <offlineLink>
+              <url>https://orc.apache.org/api/hive-storage-api</url>
+              <location>${project.basedir}/../../site/api/hive-storage-api</location>
+            </offlineLink>
+            <offlineLink>
+              <url>https://orc.apache.org/api/orc-core</url>
+              <location>${project.basedir}/../../site/api/orc-core</location>
+            </offlineLink>
+            <offlineLink>
+              <url>https://orc.apache.org/api/orc-mapreduce</url>
+              <location>${project.basedir}/../../site/api/orc-mapreduce</location>
+            </offlineLink>
+          </offlineLinks>
+          <reportOutputDirectory>${project.basedir}/../../site/api</reportOutputDirectory>
+          <notimestamp>true</notimestamp>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>setup-test-dirs</id>
+            <goals>
+              <goal>run</goal>
+            </goals>
+            <phase>process-test-resources</phase>
+            <configuration>
+              <target>
+                <delete dir="${test.tmp.dir}"></delete>
+                <mkdir dir="${test.tmp.dir}"></mkdir>
+              </target>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-source-plugin</artifactId>
+        <configuration>
+          <attach>true</attach>
+        </configuration>
+        <executions>
+          <execution>
+            <id>create-source-jar</id>
+            <goals>
+              <goal>jar-no-fork</goal>
+              <goal>test-jar-no-fork</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <trimStackTrace>false</trimStackTrace>
+          <reuseForks>false</reuseForks>
+          <argLine>-Xmx2048m -XX:+IgnoreUnrecognizedVMOptions --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED</argLine>
+          <environmentVariables>
+            <TZ>US/Pacific</TZ>
+            <LANG>en_US.UTF-8</LANG>
+          </environmentVariables>
+          <useSystemClassLoader>false</useSystemClassLoader>
+          <failIfNoTests>false</failIfNoTests>
+          <systemPropertyVariables>
+            <test.tmp.dir>${test.tmp.dir}</test.tmp.dir>
+            <example.dir>${example.dir}</example.dir>
+          </systemPropertyVariables>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-project-info-reports-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>io.github.zlika</groupId>
+        <artifactId>reproducible-build-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>strip-jar</goal>
+            </goals>
+            <phase>package</phase>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.cyclonedx</groupId>
+        <artifactId>cyclonedx-maven-plugin</artifactId>
+        <version>2.7.4</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>makeBom</goal>
+            </goals>
+            <phase>package</phase>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>cmake</id>
+      <build>
+        <directory>${build.dir}</directory>
+      </build>
+    </profile>
+    <profile>
+      <!-- a profile to check the source for common problems -->
+      <id>analyze</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>com.diffplug.spotless</groupId>
+            <artifactId>spotless-maven-plugin</artifactId>
+          </plugin>
+          <plugin>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-maven-plugin</artifactId>
+          </plugin>
+          <plugin>
+            <groupId>org.apache.rat</groupId>
+            <artifactId>apache-rat-plugin</artifactId>
+          </plugin>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-checkstyle-plugin</artifactId>
+          </plugin>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-dependency-plugin</artifactId>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <!-- a developer profile to build some benchmarks -->
+      <id>benchmark</id>
+      <modules>
+        <module>bench</module>
+      </modules>
+    </profile>
+    <profile>
+      <id>java17</id>
+      <activation>
+        <jdk>[17,)</jdk>
+      </activation>
+      <properties>
+        <hadoop.version>3.3.4</hadoop.version>
+        <min.hadoop.version>3.3.4</min.hadoop.version>
+        <tools.hadoop.version>3.3.4</tools.hadoop.version>
+      </properties>
+    </profile>
+    <profile>
+      <id>java8</id>
+      <activation>
+        <jdk>1.8</jdk>
+      </activation>
+      <properties>
+        <checkstyle.version>9.3</checkstyle.version>
+      </properties>
+    </profile>
+  </profiles>
 </project>
diff --git a/java/shims/pom.xml b/java/shims/pom.xml
index 45076d25f..c6b2edcfa 100644
--- a/java/shims/pom.xml
+++ b/java/shims/pom.xml
@@ -12,9 +12,7 @@
   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/xsd/maven-4.0.0.xsd">
+<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.orc</groupId>
@@ -26,13 +24,11 @@
   <artifactId>orc-shims</artifactId>
   <packaging>jar</packaging>
   <name>ORC Shims</name>
-  <description>
-    A shim layer for supporting various versions of Hadoop dynamically.
+  <description>A shim layer for supporting various versions of Hadoop dynamically.
 
     This module uses a higher version of Hadoop so that we can create shims
     that let us use new features of Hadoop without having a hard dependency
-    on the latest version.
-  </description>
+    on the latest version.</description>
 
   <dependencies>
     <!-- inter-project -->
@@ -62,8 +58,6 @@
   </dependencies>
 
   <build>
-    <sourceDirectory>${basedir}/src/java</sourceDirectory>
-    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
     <testResources>
       <testResource>
         <directory>${basedir}/src/test/resources</directory>
@@ -95,6 +89,8 @@
         </configuration>
       </plugin>
     </plugins>
+    <sourceDirectory>${basedir}/src/java</sourceDirectory>
+    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
   </build>
 
   <profiles>
diff --git a/java/tools/pom.xml b/java/tools/pom.xml
index 25d77567c..8904f9fdf 100644
--- a/java/tools/pom.xml
+++ b/java/tools/pom.xml
@@ -12,9 +12,7 @@
   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/xsd/maven-4.0.0.xsd">
+<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.orc</groupId>
@@ -107,8 +105,6 @@
   </dependencies>
 
   <build>
-    <sourceDirectory>${basedir}/src/java</sourceDirectory>
-    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
     <testResources>
       <testResource>
         <directory>${basedir}/src/test/resources</directory>
@@ -129,10 +125,10 @@
         <version>${maven-shade-plugin.version}</version>
         <executions>
           <execution>
-            <phase>package</phase>
             <goals>
               <goal>shade</goal>
             </goals>
+            <phase>package</phase>
             <configuration>
               <artifactSet>
                 <includes>
@@ -202,6 +198,8 @@
         </configuration>
       </plugin>
     </plugins>
+    <sourceDirectory>${basedir}/src/java</sourceDirectory>
+    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
   </build>
 
   <profiles>