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

andygrove pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion-comet.git


The following commit(s) were added to refs/heads/main by this push:
     new 64b5ac3142 refactor: Move most of `comet-common` module into 
`comet-spark` (#4325)
64b5ac3142 is described below

commit 64b5ac31421885b98e75aadfb4deedd90fd12fc1
Author: Andy Grove <[email protected]>
AuthorDate: Mon May 18 16:46:40 2026 -0600

    refactor: Move most of `comet-common` module into `comet-spark` (#4325)
---
 .github/actions/setup-spark-builder/action.yaml    |   2 +-
 .github/workflows/iceberg_spark_test.yml           |   2 -
 .github/workflows/pr_build_linux.yml               |   2 +-
 Makefile                                           |  32 ++--
 common/pom.xml                                     | 194 ++-------------------
 common/src/main/resources/log4j2.properties        |  40 -----
 common/src/test/resources/log4j.properties         |  36 ----
 common/src/test/resources/log4j2.properties        |  40 -----
 dev/release/build-release-comet.sh                 |   4 +-
 native/jni-bridge/src/errors.rs                    |   3 +-
 spark-integration/pom.xml                          |  18 +-
 spark/pom.xml                                      | 109 ++++++++++--
 .../arrow/c/AbstractCometSchemaImporter.java       |   0
 .../java/org/apache/arrow/c/ArrowImporter.java     |   0
 .../java/org/apache/comet/CometSchemaImporter.java |   0
 .../src/main/java/org/apache/comet/IcebergApi.java |   0
 .../src/main/java/org/apache/comet/NativeBase.java |   0
 .../apache/comet/parquet/AbstractColumnReader.java |   0
 .../comet/parquet/ArrowConstantColumnReader.java   |   0
 .../comet/parquet/ArrowRowIndexColumnReader.java   |   0
 .../apache/comet/parquet/BloomFilterReader.java    |   0
 .../apache/comet/parquet/ColumnIndexReader.java    |   0
 .../org/apache/comet/parquet/ColumnPageReader.java |   0
 .../org/apache/comet/parquet/ColumnReader.java     |   0
 .../comet/parquet/CometFileKeyUnwrapper.java       |   0
 .../org/apache/comet/parquet/CometInputFile.java   |   0
 .../apache/comet/parquet/DictionaryPageReader.java |   0
 .../java/org/apache/comet/parquet/FileReader.java  |   0
 .../org/apache/comet/parquet/FooterReader.java     |   0
 .../parquet/IcebergCometNativeBatchReader.java     |   0
 .../java/org/apache/comet/parquet/IndexFilter.java |   0
 .../org/apache/comet/parquet/LazyColumnReader.java |   0
 .../main/java/org/apache/comet/parquet/Native.java |   0
 .../apache/comet/parquet/NativeBatchReader.java    |   0
 .../apache/comet/parquet/NativeColumnReader.java   |   0
 .../apache/comet/parquet/ParquetColumnSpec.java    |   0
 .../comet/parquet/ParquetMetadataSerializer.java   |   0
 .../java/org/apache/comet/parquet/ReadOptions.java |   0
 .../org/apache/comet/parquet/RowGroupFilter.java   |   0
 .../org/apache/comet/parquet/RowGroupReader.java   |   0
 .../java/org/apache/comet/parquet/TypeUtil.java    |   0
 .../main/java/org/apache/comet/parquet/Utils.java  |   0
 .../org/apache/comet/parquet/WrappedInputFile.java |   0
 .../comet/parquet/WrappedSeekableInputStream.java  |   0
 .../java/org/apache/comet/udf/CometUdfBridge.java  |   0
 .../apache/comet/vector/CometDecodedVector.java    |   0
 .../apache/comet/vector/CometDelegateVector.java   |   0
 .../org/apache/comet/vector/CometDictionary.java   |   0
 .../apache/comet/vector/CometDictionaryVector.java |   0
 .../org/apache/comet/vector/CometLazyVector.java   |   0
 .../org/apache/comet/vector/CometListVector.java   |   0
 .../org/apache/comet/vector/CometMapVector.java    |   0
 .../org/apache/comet/vector/CometPlainVector.java  |   0
 .../apache/comet/vector/CometSelectionVector.java  |   0
 .../org/apache/comet/vector/CometStructVector.java |   0
 .../java/org/apache/comet/vector/CometVector.java  |   0
 .../main/scala/org/apache/comet/CometConf.scala    |   0
 .../main/scala/org/apache/comet/Constants.scala    |   0
 .../apache/comet/objectstore/NativeConfig.scala    |   0
 .../src/main/scala/org/apache/comet/package.scala  |   0
 .../apache/comet/parquet/CometParquetUtils.scala   |   0
 .../comet/parquet/CometReaderThreadPool.scala      |   0
 .../org/apache/comet/udf/CometLambdaRegistry.scala |   0
 .../main/scala/org/apache/comet/udf/CometUDF.scala |   0
 .../scala/org/apache/comet/vector/NativeUtil.scala |   0
 .../org/apache/comet/vector/StreamReader.scala     |   0
 .../apache/spark/comet/CometTaskContextShim.scala  |   0
 .../spark/sql/comet/CastOverflowException.scala    |   0
 .../execution/arrow/ArrowReaderIterator.scala      |   0
 .../sql/comet/execution/arrow/ArrowWriters.scala   |   0
 .../execution/arrow/CometArrowConverters.scala     |   0
 .../comet/parquet/CometParquetReadSupport.scala    |   0
 .../CometSparkToParquetSchemaConverter.scala       |   0
 .../org/apache/spark/sql/comet/util/Utils.scala    |   0
 .../org/apache/comet/shims/ShimBatchReader.scala   |   0
 .../org/apache/comet/shims/ShimFileFormat.scala    |   0
 .../spark/sql/comet/shims/ShimTaskMetrics.scala    |   0
 .../org/apache/comet/shims/ShimBatchReader.scala   |   0
 .../org/apache/comet/shims/ShimFileFormat.scala    |   0
 .../spark/sql/comet/shims/ShimTaskMetrics.scala    |   0
 .../org/apache/comet/shims/CometTypeShim.scala     |   0
 .../org/apache/comet/shims/ShimCometConf.scala     |   0
 .../org/apache/comet/shims/CometTypeShim.scala     |   0
 .../org/apache/comet/shims/ShimBatchReader.scala   |   0
 .../org/apache/comet/shims/ShimCometConf.scala     |   0
 .../org/apache/comet/shims/ShimFileFormat.scala    |   0
 .../spark/sql/comet/shims/ShimTaskMetrics.scala    |   0
 .../org/apache/comet/parquet/TestColumnReader.java |   0
 .../apache/comet/parquet/TestCometInputFile.java   |   0
 .../org/apache/comet/parquet/TestFileReader.java   |   0
 .../java/org/apache/comet/parquet/TestUtils.java   |   0
 91 files changed, 150 insertions(+), 332 deletions(-)

diff --git a/.github/actions/setup-spark-builder/action.yaml 
b/.github/actions/setup-spark-builder/action.yaml
index 8f2882efe4..454a30fb57 100644
--- a/.github/actions/setup-spark-builder/action.yaml
+++ b/.github/actions/setup-spark-builder/action.yaml
@@ -51,7 +51,7 @@ runs:
         path: |
           ~/.m2/repository
           /root/.m2/repository
-        key: ${{ runner.os }}-spark-sql-${{ hashFiles('spark/**/pom.xml', 
'common/**/pom.xml') }}
+        key: ${{ runner.os }}-spark-sql-${{ hashFiles('common/**/pom.xml', 
'spark/**/pom.xml') }}
         restore-keys: |
           ${{ runner.os }}-spark-sql-
 
diff --git a/.github/workflows/iceberg_spark_test.yml 
b/.github/workflows/iceberg_spark_test.yml
index 84abb1fb38..712c3d5178 100644
--- a/.github/workflows/iceberg_spark_test.yml
+++ b/.github/workflows/iceberg_spark_test.yml
@@ -33,7 +33,6 @@ on:
       - "native/core/benches/**"
       - "native/spark-expr/benches/**"
       - "spark/src/test/**"
-      - "common/src/test/**"
       - "spark/src/main/scala/org/apache/comet/GenerateDocs.scala"
       - "spark-integration/**"
   pull_request:
@@ -45,7 +44,6 @@ on:
       - "native/core/benches/**"
       - "native/spark-expr/benches/**"
       - "spark/src/test/**"
-      - "common/src/test/**"
       - "spark/src/main/scala/org/apache/comet/GenerateDocs.scala"
       - "spark-integration/**"
   # manual trigger
diff --git a/.github/workflows/pr_build_linux.yml 
b/.github/workflows/pr_build_linux.yml
index bee0c38e8f..a370e8c2d8 100644
--- a/.github/workflows/pr_build_linux.yml
+++ b/.github/workflows/pr_build_linux.yml
@@ -189,7 +189,7 @@ jobs:
         uses: ./.github/actions/setup-builder
         with:
           rust-version: ${{ env.RUST_VERSION }}
-          jdk-version: 17  # JDK only needed for common module proto generation
+          jdk-version: 17  # JDK only needed for JVM module proto generation
 
       - name: Restore Cargo cache
         uses: actions/cache/restore@v5
diff --git a/Makefile b/Makefile
index 60ea51bf0c..8685d171be 100644
--- a/Makefile
+++ b/Makefile
@@ -68,28 +68,28 @@ endif
 core-amd64:
        rustup target add x86_64-apple-darwin
        cd native && RUSTFLAGS="-Ctarget-cpu=skylake" CC=o64-clang 
CXX=o64-clang++ cargo build --target x86_64-apple-darwin --release 
$(FEATURES_ARG)
-       mkdir -p common/target/classes/org/apache/comet/darwin/x86_64
-       cp native/target/x86_64-apple-darwin/release/libcomet.dylib 
common/target/classes/org/apache/comet/darwin/x86_64
+       mkdir -p spark/target/classes/org/apache/comet/darwin/x86_64
+       cp native/target/x86_64-apple-darwin/release/libcomet.dylib 
spark/target/classes/org/apache/comet/darwin/x86_64
        cd native && RUSTFLAGS="-Ctarget-cpu=x86-64-v3" cargo build --release 
$(FEATURES_ARG)
-       mkdir -p common/target/classes/org/apache/comet/linux/amd64
-       cp native/target/release/libcomet.so 
common/target/classes/org/apache/comet/linux/amd64
-       jar -cf common/target/comet-native-x86_64.jar \
-               -C common/target/classes/org/apache/comet darwin \
-               -C common/target/classes/org/apache/comet linux
-       ./dev/deploy-file common/target/comet-native-x86_64.jar 
comet-native-x86_64${COMET_CLASSIFIER} jar
+       mkdir -p spark/target/classes/org/apache/comet/linux/amd64
+       cp native/target/release/libcomet.so 
spark/target/classes/org/apache/comet/linux/amd64
+       jar -cf spark/target/comet-native-x86_64.jar \
+               -C spark/target/classes/org/apache/comet darwin \
+               -C spark/target/classes/org/apache/comet linux
+       ./dev/deploy-file spark/target/comet-native-x86_64.jar 
comet-native-x86_64${COMET_CLASSIFIER} jar
 
 core-arm64:
        rustup target add aarch64-apple-darwin
        cd native && RUSTFLAGS="-Ctarget-cpu=apple-m1" 
CC=arm64-apple-darwin21.4-clang CXX=arm64-apple-darwin21.4-clang++ 
CARGO_FEATURE_NEON=1 cargo build --target aarch64-apple-darwin --release 
$(FEATURES_ARG)
-       mkdir -p common/target/classes/org/apache/comet/darwin/aarch64
-       cp native/target/aarch64-apple-darwin/release/libcomet.dylib 
common/target/classes/org/apache/comet/darwin/aarch64
+       mkdir -p spark/target/classes/org/apache/comet/darwin/aarch64
+       cp native/target/aarch64-apple-darwin/release/libcomet.dylib 
spark/target/classes/org/apache/comet/darwin/aarch64
        cd native && RUSTFLAGS="-Ctarget-cpu=neoverse-n1" cargo build --release 
$(FEATURES_ARG)
-       mkdir -p common/target/classes/org/apache/comet/linux/aarch64
-       cp native/target/release/libcomet.so 
common/target/classes/org/apache/comet/linux/aarch64
-       jar -cf common/target/comet-native-aarch64.jar \
-               -C common/target/classes/org/apache/comet darwin \
-               -C common/target/classes/org/apache/comet linux
-       ./dev/deploy-file common/target/comet-native-aarch64.jar 
comet-native-aarch64${COMET_CLASSIFIER} jar
+       mkdir -p spark/target/classes/org/apache/comet/linux/aarch64
+       cp native/target/release/libcomet.so 
spark/target/classes/org/apache/comet/linux/aarch64
+       jar -cf spark/target/comet-native-aarch64.jar \
+               -C spark/target/classes/org/apache/comet darwin \
+               -C spark/target/classes/org/apache/comet linux
+       ./dev/deploy-file spark/target/comet-native-aarch64.jar 
comet-native-aarch64${COMET_CLASSIFIER} jar
 
 release-linux: clean
        rustup target add aarch64-apple-darwin x86_64-apple-darwin
diff --git a/common/pom.xml b/common/pom.xml
index 4556f6a334..43c5033dd1 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -33,196 +33,38 @@ under the License.
   
<artifactId>comet-common-spark${spark.version.short}_${scala.binary.version}</artifactId>
   <name>comet-common</name>
 
+  <!--
+    Minimal bootstrap module. Contains only the exception classes that the
+    Rust JNI bridge needs to load via JNI (CometNativeException and friends).
+    Kept small on purpose so `mvn compile -pl common` is a cheap prerequisite
+    for `cargo test` in the Rust workspace. All other JVM code lives in
+    comet-spark.
+  -->
+
   <properties>
     <!-- Reverse default (skip installation), and then enable only for child 
modules -->
     <maven.deploy.skip>false</maven.deploy.skip>
   </properties>
 
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.spark</groupId>
-      <artifactId>spark-sql_${scala.binary.version}</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.parquet</groupId>
-      <artifactId>parquet-column</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.parquet</groupId>
-      <artifactId>parquet-hadoop</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.parquet</groupId>
-      <artifactId>parquet-format-structures</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.arrow</groupId>
-      <artifactId>arrow-vector</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.arrow</groupId>
-      <artifactId>arrow-memory-unsafe</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.arrow</groupId>
-      <artifactId>arrow-c-data</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.scala-lang.modules</groupId>
-      <artifactId>scala-collection-compat_${scala.binary.version}</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.assertj</groupId>
-      <artifactId>assertj-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
   <build>
     <plugins>
-      <plugin>
-        <groupId>io.github.git-commit-id</groupId>
-        <artifactId>git-commit-id-maven-plugin</artifactId>
-        <version>${git-commit-id-maven-plugin.version}</version>
-        <executions>
-          <execution>
-            <id>get-the-git-infos</id>
-            <goals>
-              <goal>revision</goal>
-            </goals>
-            <phase>initialize</phase>
-          </execution>
-        </executions>
-        <configuration>
-          <generateGitPropertiesFile>true</generateGitPropertiesFile>
-          
<generateGitPropertiesFilename>${project.build.outputDirectory}/comet-git-info.properties</generateGitPropertiesFilename>
-          <commitIdGenerationMode>full</commitIdGenerationMode>
-          <includeOnlyProperties>
-            <includeOnlyProperty>^git.branch$</includeOnlyProperty>
-            <includeOnlyProperty>^git.build.*$</includeOnlyProperty>
-            
<includeOnlyProperty>^git.commit.id.(abbrev|full)$</includeOnlyProperty>
-            <includeOnlyProperty>^git.remote.*$</includeOnlyProperty>
-          </includeOnlyProperties>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-shade-plugin</artifactId>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>shade</goal>
-            </goals>
-            <configuration>
-              <createSourcesJar>true</createSourcesJar>
-              <shadeSourcesContent>true</shadeSourcesContent>
-              <shadedArtifactAttached>false</shadedArtifactAttached>
-              <createDependencyReducedPom>true</createDependencyReducedPom>
-              <artifactSet>
-                <includes>
-                  <!-- We shade & relocation most of the Arrow classes, to 
prevent them from
-                    conflicting with those in Spark -->
-                  <include>org.apache.arrow:*</include>
-                </includes>
-              </artifactSet>
-              <filters>
-                <filter>
-                  <artifact>*:*</artifact>
-                  <excludes>
-                    <exclude>**/*.thrift</exclude>
-                    <exclude>git.properties</exclude>
-                    <exclude>log4j.properties</exclude>
-                    <exclude>log4j2.properties</exclude>
-                    <exclude>arrow-git.properties</exclude>
-                  </excludes>
-                </filter>
-                <filter>
-                  <artifact>org.apache.arrow:arrow-vector</artifact>
-                  <excludes>
-                    <!-- Comet doesn't need codegen templates on Arrow -->
-                    <exclude>codegen/**</exclude>
-                  </excludes>
-                </filter>
-              </filters>
-              <relocations>
-                <relocation>
-                  <pattern>org.apache.arrow</pattern>
-                  
<shadedPattern>${comet.shade.packageName}.arrow</shadedPattern>
-                  <excludes>
-                    <!-- We can't allocate Jni classes. These classes has no 
extra dependencies
-                       so it should be OK to exclude -->
-                    <exclude>org/apache/arrow/c/jni/JniWrapper</exclude>
-                    <exclude>org/apache/arrow/c/jni/PrivateData</exclude>
-                    <exclude>org/apache/arrow/c/jni/CDataJniException</exclude>
-                    <!-- Also used by JNI: 
https://github.com/apache/arrow/blob/apache-arrow-11.0.0/java/c/src/main/cpp/jni_wrapper.cc#L341
-                       Note this class is not used by us, but required when 
loading the native lib -->
-                    
<exclude>org/apache/arrow/c/ArrayStreamExporter$ExportedArrayStreamPrivateData
-                    </exclude>
-                  </excludes>
-                </relocation>
-              </relocations>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
+      <!-- scala-maven-plugin handles javac too: the parent pom's
+           maven-compiler-plugin is configured with skipMain=true. -->
       <plugin>
         <groupId>net.alchim31.maven</groupId>
         <artifactId>scala-maven-plugin</artifactId>
       </plugin>
+      <!-- This module has no Scala sources; skip scalafix so the lint job
+           does not fail with "No files to fix". -->
       <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>build-helper-maven-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>add-shim-source</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>add-source</goal>
-            </goals>
-            <configuration>
-              <sources>
-                <source>src/main/${shims.majorVerSrc}</source>
-                <source>src/main/${shims.minorVerSrc}</source>
-              </sources>
-            </configuration>
-          </execution>
-        </executions>
+        <groupId>io.github.evis</groupId>
+        <artifactId>scalafix-maven-plugin_${scala.binary.version}</artifactId>
+        <version>${scalafix-maven-plugin.version}</version>
+        <configuration>
+          <skip>true</skip>
+        </configuration>
       </plugin>
     </plugins>
-    <resources>
-      <resource>
-        <directory>${project.basedir}/src/main/resources</directory>
-      </resource>
-      <resource>
-        
<directory>${project.basedir}/../native/target/x86_64-apple-darwin/release</directory>
-        <includes>
-          <include>libcomet.dylib</include>
-        </includes>
-        <targetPath>org/apache/comet/darwin/x86_64</targetPath>
-      </resource>
-      <resource>
-        
<directory>${project.basedir}/../native/target/aarch64-apple-darwin/release</directory>
-        <includes>
-          <include>libcomet.dylib</include>
-        </includes>
-        <targetPath>org/apache/comet/darwin/aarch64</targetPath>
-      </resource>
-      <resource>
-        <directory>${jni.dir}</directory>
-        <includes>
-          <include>libcomet.dylib</include>
-          <include>libcomet.so</include>
-          <include>comet.dll</include>
-        </includes>
-        <targetPath>org/apache/comet/${platform}/${arch}</targetPath>
-      </resource>
-    </resources>
   </build>
 
 </project>
diff --git a/common/src/main/resources/log4j2.properties 
b/common/src/main/resources/log4j2.properties
deleted file mode 100644
index 04cdf85330..0000000000
--- a/common/src/main/resources/log4j2.properties
+++ /dev/null
@@ -1,40 +0,0 @@
-# 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.
-
-# Set everything to be logged to the file target/unit-tests.log
-rootLogger.level = info
-rootLogger.appenderRef.file.ref = ${sys:test.appender:-File}
-
-appender.file.type = File
-appender.file.name = File
-appender.file.fileName = target/unit-tests.log
-appender.file.layout.type = PatternLayout
-appender.file.layout.pattern = %d{yy/MM/dd HH:mm:ss.SSS} %t %p %c{1}: %m%n
-
-# Tests that launch java subprocesses can set the "test.appender" system 
property to
-# "console" to avoid having the child process's logs overwrite the unit test's
-# log file.
-appender.console.type = Console
-appender.console.name = console
-appender.console.target = SYSTEM_ERR
-appender.console.layout.type = PatternLayout
-appender.console.layout.pattern = %t: %m%n
-
-# Ignore messages below warning level from Jetty, because it's a bit verbose
-logger.jetty.name = org.sparkproject.jetty
-logger.jetty.level = warn
-
diff --git a/common/src/test/resources/log4j.properties 
b/common/src/test/resources/log4j.properties
deleted file mode 100644
index 2f46ce1553..0000000000
--- a/common/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,36 +0,0 @@
-#
-# 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.
-#
-
-# Set everything to be logged to the file target/unit-tests.log
-test.appender=file
-log4j.rootCategory=INFO, ${test.appender}
-log4j.appender.file=org.apache.log4j.FileAppender
-log4j.appender.file.append=true
-log4j.appender.file.file=target/unit-tests.log
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss.SSS} %t %p 
%c{1}: %m%n
-
-# Tests that launch java subprocesses can set the "test.appender" system 
property to
-# "console" to avoid having the child process's logs overwrite the unit test's
-# log file.
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%t: %m%n
-
-# Ignore messages below warning level from Jetty, because it's a bit verbose
-log4j.logger.org.sparkproject.jetty=WARN
diff --git a/common/src/test/resources/log4j2.properties 
b/common/src/test/resources/log4j2.properties
deleted file mode 100644
index 04cdf85330..0000000000
--- a/common/src/test/resources/log4j2.properties
+++ /dev/null
@@ -1,40 +0,0 @@
-# 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.
-
-# Set everything to be logged to the file target/unit-tests.log
-rootLogger.level = info
-rootLogger.appenderRef.file.ref = ${sys:test.appender:-File}
-
-appender.file.type = File
-appender.file.name = File
-appender.file.fileName = target/unit-tests.log
-appender.file.layout.type = PatternLayout
-appender.file.layout.pattern = %d{yy/MM/dd HH:mm:ss.SSS} %t %p %c{1}: %m%n
-
-# Tests that launch java subprocesses can set the "test.appender" system 
property to
-# "console" to avoid having the child process's logs overwrite the unit test's
-# log file.
-appender.console.type = Console
-appender.console.name = console
-appender.console.target = SYSTEM_ERR
-appender.console.layout.type = PatternLayout
-appender.console.layout.pattern = %t: %m%n
-
-# Ignore messages below warning level from Jetty, because it's a bit verbose
-logger.jetty.name = org.sparkproject.jetty
-logger.jetty.level = warn
-
diff --git a/dev/release/build-release-comet.sh 
b/dev/release/build-release-comet.sh
index 23363c8761..159394e0f5 100755
--- a/dev/release/build-release-comet.sh
+++ b/dev/release/build-release-comet.sh
@@ -125,7 +125,7 @@ docker build --no-cache \
 # Clean previous Java build
 pushd $COMET_HOME_DIR && ./mvnw clean && popd
 
-# Clean previous native build. This is required because common/pom.xml has
+# Clean previous native build. This is required because spark/pom.xml has
 # unconditional resource entries that bundle libcomet.dylib from
 # native/target/{x86_64,aarch64}-apple-darwin/release. If a release manager
 # previously cross-compiled those targets locally, stale dylibs would leak
@@ -169,7 +169,7 @@ fi
 echo "Building binaries completed"
 echo "Copying to java build directories"
 
-JVM_TARGET_DIR=$COMET_HOME_DIR/common/target/classes/org/apache/comet
+JVM_TARGET_DIR=$COMET_HOME_DIR/spark/target/classes/org/apache/comet
 mkdir -p $JVM_TARGET_DIR
 
 mkdir -p $JVM_TARGET_DIR/linux/amd64
diff --git a/native/jni-bridge/src/errors.rs b/native/jni-bridge/src/errors.rs
index 4fbcb28e2a..7bf4073c8d 100644
--- a/native/jni-bridge/src/errors.rs
+++ b/native/jni-bridge/src/errors.rs
@@ -718,7 +718,8 @@ mod tests {
         init();
 
         INIT.call_once(|| {
-            // Add common classes to the classpath in so that we can find 
CometException
+            // Add comet-common classes to the classpath so we can find the 
Comet exception
+            // classes (CometNativeException, CometQueryExecutionException, 
etc.).
             let mut common_classes = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
             common_classes.push("../../common/target/classes");
             let mut class_path = common_classes
diff --git a/spark-integration/pom.xml b/spark-integration/pom.xml
index 356f91adfd..9aacf8db23 100644
--- a/spark-integration/pom.xml
+++ b/spark-integration/pom.xml
@@ -45,11 +45,19 @@ under the License.
             
<artifactId>comet-spark-spark${spark.version.short}_${scala.binary.version}</artifactId>
             <version>${project.version}</version>
             <exclusions>
-              <!-- This is shaded into the jar -->
-              <exclusion>
-                <groupId>org.apache.datafusion</groupId>
-                
<artifactId>comet-common-spark${spark.version.short}_${scala.binary.version}</artifactId>
-              </exclusion>
+                <!-- comet-common is bundled into the shaded comet-spark jar 
-->
+                <exclusion>
+                    <groupId>org.apache.datafusion</groupId>
+                    
<artifactId>comet-common-spark${spark.version.short}_${scala.binary.version}</artifactId>
+                </exclusion>
+                <!-- Arrow classes are shaded into the comet-spark jar 
(relocated to
+                     org.apache.comet.shaded.arrow.*); a small set of JNI 
classes intentionally
+                     keep their original org.apache.arrow.* package paths. 
Pulling Arrow
+                     transitively here would duplicate those JNI classes on 
the classpath. -->
+                <exclusion>
+                    <groupId>org.apache.arrow</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
     </dependencies>
diff --git a/spark/pom.xml b/spark/pom.xml
index d3c18ccf87..6d97ea831f 100644
--- a/spark/pom.xml
+++ b/spark/pom.xml
@@ -43,17 +43,27 @@ under the License.
       <groupId>org.apache.datafusion</groupId>
       
<artifactId>comet-common-spark${spark.version.short}_${scala.binary.version}</artifactId>
       <version>${project.version}</version>
-      <exclusions>
-        <exclusion>
-          <groupId>org.apache.arrow</groupId>
-          <artifactId>*</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.apache.spark</groupId>
       <artifactId>spark-sql_${scala.binary.version}</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.parquet</groupId>
+      <artifactId>parquet-column</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.parquet</groupId>
+      <artifactId>parquet-format-structures</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.arrow</groupId>
+      <artifactId>arrow-vector</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.scala-lang.modules</groupId>
+      <artifactId>scala-collection-compat_${scala.binary.version}</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.scala-lang</groupId>
       <artifactId>scala-library</artifactId>
@@ -128,18 +138,16 @@ under the License.
       <!-- Note we don't use test scope for this artifact. This is because 
it's only needed
          to provide InMemoryKMS class that is shaded below, to make Spark test 
happy. -->
     </dependency>
-    <!-- We shade & relocate Arrow dependencies in comet-common, so 
comet-spark module no longer
-         depends on Arrow. However, when running `mvn test` we still need 
Arrow classes in the
-         classpath, since the Maven shading happens in 'package' phase which 
is after 'test' -->
+    <!-- Arrow memory + C-data deps required at compile scope. Shading 
relocates these into
+         org.apache.comet.shaded.arrow during the package phase to avoid 
colliding with Spark's
+         own Arrow on the executor classpath. -->
     <dependency>
       <groupId>org.apache.arrow</groupId>
       <artifactId>arrow-memory-unsafe</artifactId>
-      <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.arrow</groupId>
       <artifactId>arrow-c-data</artifactId>
-      <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.hadoop</groupId>
@@ -355,6 +363,31 @@ under the License.
 
   <build>
     <plugins>
+      <plugin>
+        <groupId>io.github.git-commit-id</groupId>
+        <artifactId>git-commit-id-maven-plugin</artifactId>
+        <version>${git-commit-id-maven-plugin.version}</version>
+        <executions>
+          <execution>
+            <id>get-the-git-infos</id>
+            <goals>
+              <goal>revision</goal>
+            </goals>
+            <phase>initialize</phase>
+          </execution>
+        </executions>
+        <configuration>
+          <generateGitPropertiesFile>true</generateGitPropertiesFile>
+          
<generateGitPropertiesFilename>${project.build.outputDirectory}/comet-git-info.properties</generateGitPropertiesFilename>
+          <commitIdGenerationMode>full</commitIdGenerationMode>
+          <includeOnlyProperties>
+            <includeOnlyProperty>^git.branch$</includeOnlyProperty>
+            <includeOnlyProperty>^git.build.*$</includeOnlyProperty>
+            
<includeOnlyProperty>^git.commit.id.(abbrev|full)$</includeOnlyProperty>
+            <includeOnlyProperty>^git.remote.*$</includeOnlyProperty>
+          </includeOnlyProperties>
+        </configuration>
+      </plugin>
       <plugin>
         <groupId>com.github.os72</groupId>
         <artifactId>protoc-jar-maven-plugin</artifactId>
@@ -394,11 +427,13 @@ under the License.
               <createDependencyReducedPom>true</createDependencyReducedPom>
               <artifactSet>
                 <includes>
+                  <!-- Bundle comet-common so the shaded uber-jar is 
self-contained -->
                   
<include>org.apache.datafusion:comet-common-spark${spark.version.short}_${scala.binary.version}</include>
+                  <!-- Shade & relocate Arrow to prevent conflicts with 
Spark's own Arrow -->
+                  <include>org.apache.arrow:*</include>
                   <!-- Relocate Protobuf since Spark uses 2.5.0 while Comet 
uses 3.x -->
                   <include>com.google.protobuf:protobuf-java</include>
                   <include>com.google.guava:guava</include>
-                  
<include>org.scala-lang.modules:scala-collection-compat_${scala.binary.version}</include>
                 </includes>
               </artifactSet>
               <filters>
@@ -410,9 +445,17 @@ under the License.
                     <exclude>git.properties</exclude>
                     <exclude>log4j.properties</exclude>
                     <exclude>log4j2.properties</exclude>
+                    <exclude>arrow-git.properties</exclude>
                     <exclude>**/SparkFilterApi.*</exclude>
                   </excludes>
                 </filter>
+                <filter>
+                  <artifact>org.apache.arrow:arrow-vector</artifact>
+                  <excludes>
+                    <!-- Comet doesn't need codegen templates on Arrow -->
+                    <exclude>codegen/**</exclude>
+                  </excludes>
+                </filter>
                 <filter>
                   <artifact>org.apache.parquet:parquet-hadoop:tests</artifact>
                   <includes>
@@ -422,6 +465,20 @@ under the License.
                 </filter>
               </filters>
               <relocations>
+                <relocation>
+                  <pattern>org.apache.arrow</pattern>
+                  
<shadedPattern>${comet.shade.packageName}.arrow</shadedPattern>
+                  <excludes>
+                    <!-- These classes are referenced from Arrow JNI native 
code and must stay
+                       at their original package paths. They have no extra 
dependencies so the
+                       exclusion is safe. -->
+                    <exclude>org/apache/arrow/c/jni/JniWrapper</exclude>
+                    <exclude>org/apache/arrow/c/jni/PrivateData</exclude>
+                    <exclude>org/apache/arrow/c/jni/CDataJniException</exclude>
+                    <!-- Also required by JNI per upstream Arrow C++ 
jni_wrapper.cc -->
+                    
<exclude>org/apache/arrow/c/ArrayStreamExporter$ExportedArrayStreamPrivateData</exclude>
+                  </excludes>
+                </relocation>
                 <relocation>
                   <pattern>com.google.protobuf</pattern>
                   
<shadedPattern>${comet.shade.packageName}.protobuf</shadedPattern>
@@ -492,6 +549,34 @@ under the License.
         </executions>
       </plugin>
     </plugins>
+    <resources>
+      <resource>
+        <directory>${project.basedir}/src/main/resources</directory>
+      </resource>
+      <resource>
+        
<directory>${project.basedir}/../native/target/x86_64-apple-darwin/release</directory>
+        <includes>
+          <include>libcomet.dylib</include>
+        </includes>
+        <targetPath>org/apache/comet/darwin/x86_64</targetPath>
+      </resource>
+      <resource>
+        
<directory>${project.basedir}/../native/target/aarch64-apple-darwin/release</directory>
+        <includes>
+          <include>libcomet.dylib</include>
+        </includes>
+        <targetPath>org/apache/comet/darwin/aarch64</targetPath>
+      </resource>
+      <resource>
+        <directory>${jni.dir}</directory>
+        <includes>
+          <include>libcomet.dylib</include>
+          <include>libcomet.so</include>
+          <include>comet.dll</include>
+        </includes>
+        <targetPath>org/apache/comet/${platform}/${arch}</targetPath>
+      </resource>
+    </resources>
   </build>
 
 </project>
diff --git 
a/common/src/main/java/org/apache/arrow/c/AbstractCometSchemaImporter.java 
b/spark/src/main/java/org/apache/arrow/c/AbstractCometSchemaImporter.java
similarity index 100%
rename from 
common/src/main/java/org/apache/arrow/c/AbstractCometSchemaImporter.java
rename to 
spark/src/main/java/org/apache/arrow/c/AbstractCometSchemaImporter.java
diff --git a/common/src/main/java/org/apache/arrow/c/ArrowImporter.java 
b/spark/src/main/java/org/apache/arrow/c/ArrowImporter.java
similarity index 100%
rename from common/src/main/java/org/apache/arrow/c/ArrowImporter.java
rename to spark/src/main/java/org/apache/arrow/c/ArrowImporter.java
diff --git a/common/src/main/java/org/apache/comet/CometSchemaImporter.java 
b/spark/src/main/java/org/apache/comet/CometSchemaImporter.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/CometSchemaImporter.java
rename to spark/src/main/java/org/apache/comet/CometSchemaImporter.java
diff --git a/common/src/main/java/org/apache/comet/IcebergApi.java 
b/spark/src/main/java/org/apache/comet/IcebergApi.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/IcebergApi.java
rename to spark/src/main/java/org/apache/comet/IcebergApi.java
diff --git a/common/src/main/java/org/apache/comet/NativeBase.java 
b/spark/src/main/java/org/apache/comet/NativeBase.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/NativeBase.java
rename to spark/src/main/java/org/apache/comet/NativeBase.java
diff --git 
a/common/src/main/java/org/apache/comet/parquet/AbstractColumnReader.java 
b/spark/src/main/java/org/apache/comet/parquet/AbstractColumnReader.java
similarity index 100%
rename from 
common/src/main/java/org/apache/comet/parquet/AbstractColumnReader.java
rename to spark/src/main/java/org/apache/comet/parquet/AbstractColumnReader.java
diff --git 
a/common/src/main/java/org/apache/comet/parquet/ArrowConstantColumnReader.java 
b/spark/src/main/java/org/apache/comet/parquet/ArrowConstantColumnReader.java
similarity index 100%
rename from 
common/src/main/java/org/apache/comet/parquet/ArrowConstantColumnReader.java
rename to 
spark/src/main/java/org/apache/comet/parquet/ArrowConstantColumnReader.java
diff --git 
a/common/src/main/java/org/apache/comet/parquet/ArrowRowIndexColumnReader.java 
b/spark/src/main/java/org/apache/comet/parquet/ArrowRowIndexColumnReader.java
similarity index 100%
rename from 
common/src/main/java/org/apache/comet/parquet/ArrowRowIndexColumnReader.java
rename to 
spark/src/main/java/org/apache/comet/parquet/ArrowRowIndexColumnReader.java
diff --git 
a/common/src/main/java/org/apache/comet/parquet/BloomFilterReader.java 
b/spark/src/main/java/org/apache/comet/parquet/BloomFilterReader.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/BloomFilterReader.java
rename to spark/src/main/java/org/apache/comet/parquet/BloomFilterReader.java
diff --git 
a/common/src/main/java/org/apache/comet/parquet/ColumnIndexReader.java 
b/spark/src/main/java/org/apache/comet/parquet/ColumnIndexReader.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/ColumnIndexReader.java
rename to spark/src/main/java/org/apache/comet/parquet/ColumnIndexReader.java
diff --git 
a/common/src/main/java/org/apache/comet/parquet/ColumnPageReader.java 
b/spark/src/main/java/org/apache/comet/parquet/ColumnPageReader.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/ColumnPageReader.java
rename to spark/src/main/java/org/apache/comet/parquet/ColumnPageReader.java
diff --git a/common/src/main/java/org/apache/comet/parquet/ColumnReader.java 
b/spark/src/main/java/org/apache/comet/parquet/ColumnReader.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/ColumnReader.java
rename to spark/src/main/java/org/apache/comet/parquet/ColumnReader.java
diff --git 
a/common/src/main/java/org/apache/comet/parquet/CometFileKeyUnwrapper.java 
b/spark/src/main/java/org/apache/comet/parquet/CometFileKeyUnwrapper.java
similarity index 100%
rename from 
common/src/main/java/org/apache/comet/parquet/CometFileKeyUnwrapper.java
rename to 
spark/src/main/java/org/apache/comet/parquet/CometFileKeyUnwrapper.java
diff --git a/common/src/main/java/org/apache/comet/parquet/CometInputFile.java 
b/spark/src/main/java/org/apache/comet/parquet/CometInputFile.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/CometInputFile.java
rename to spark/src/main/java/org/apache/comet/parquet/CometInputFile.java
diff --git 
a/common/src/main/java/org/apache/comet/parquet/DictionaryPageReader.java 
b/spark/src/main/java/org/apache/comet/parquet/DictionaryPageReader.java
similarity index 100%
rename from 
common/src/main/java/org/apache/comet/parquet/DictionaryPageReader.java
rename to spark/src/main/java/org/apache/comet/parquet/DictionaryPageReader.java
diff --git a/common/src/main/java/org/apache/comet/parquet/FileReader.java 
b/spark/src/main/java/org/apache/comet/parquet/FileReader.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/FileReader.java
rename to spark/src/main/java/org/apache/comet/parquet/FileReader.java
diff --git a/common/src/main/java/org/apache/comet/parquet/FooterReader.java 
b/spark/src/main/java/org/apache/comet/parquet/FooterReader.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/FooterReader.java
rename to spark/src/main/java/org/apache/comet/parquet/FooterReader.java
diff --git 
a/common/src/main/java/org/apache/comet/parquet/IcebergCometNativeBatchReader.java
 
b/spark/src/main/java/org/apache/comet/parquet/IcebergCometNativeBatchReader.java
similarity index 100%
rename from 
common/src/main/java/org/apache/comet/parquet/IcebergCometNativeBatchReader.java
rename to 
spark/src/main/java/org/apache/comet/parquet/IcebergCometNativeBatchReader.java
diff --git a/common/src/main/java/org/apache/comet/parquet/IndexFilter.java 
b/spark/src/main/java/org/apache/comet/parquet/IndexFilter.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/IndexFilter.java
rename to spark/src/main/java/org/apache/comet/parquet/IndexFilter.java
diff --git 
a/common/src/main/java/org/apache/comet/parquet/LazyColumnReader.java 
b/spark/src/main/java/org/apache/comet/parquet/LazyColumnReader.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/LazyColumnReader.java
rename to spark/src/main/java/org/apache/comet/parquet/LazyColumnReader.java
diff --git a/common/src/main/java/org/apache/comet/parquet/Native.java 
b/spark/src/main/java/org/apache/comet/parquet/Native.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/Native.java
rename to spark/src/main/java/org/apache/comet/parquet/Native.java
diff --git 
a/common/src/main/java/org/apache/comet/parquet/NativeBatchReader.java 
b/spark/src/main/java/org/apache/comet/parquet/NativeBatchReader.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/NativeBatchReader.java
rename to spark/src/main/java/org/apache/comet/parquet/NativeBatchReader.java
diff --git 
a/common/src/main/java/org/apache/comet/parquet/NativeColumnReader.java 
b/spark/src/main/java/org/apache/comet/parquet/NativeColumnReader.java
similarity index 100%
rename from 
common/src/main/java/org/apache/comet/parquet/NativeColumnReader.java
rename to spark/src/main/java/org/apache/comet/parquet/NativeColumnReader.java
diff --git 
a/common/src/main/java/org/apache/comet/parquet/ParquetColumnSpec.java 
b/spark/src/main/java/org/apache/comet/parquet/ParquetColumnSpec.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/ParquetColumnSpec.java
rename to spark/src/main/java/org/apache/comet/parquet/ParquetColumnSpec.java
diff --git 
a/common/src/main/java/org/apache/comet/parquet/ParquetMetadataSerializer.java 
b/spark/src/main/java/org/apache/comet/parquet/ParquetMetadataSerializer.java
similarity index 100%
rename from 
common/src/main/java/org/apache/comet/parquet/ParquetMetadataSerializer.java
rename to 
spark/src/main/java/org/apache/comet/parquet/ParquetMetadataSerializer.java
diff --git a/common/src/main/java/org/apache/comet/parquet/ReadOptions.java 
b/spark/src/main/java/org/apache/comet/parquet/ReadOptions.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/ReadOptions.java
rename to spark/src/main/java/org/apache/comet/parquet/ReadOptions.java
diff --git a/common/src/main/java/org/apache/comet/parquet/RowGroupFilter.java 
b/spark/src/main/java/org/apache/comet/parquet/RowGroupFilter.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/RowGroupFilter.java
rename to spark/src/main/java/org/apache/comet/parquet/RowGroupFilter.java
diff --git a/common/src/main/java/org/apache/comet/parquet/RowGroupReader.java 
b/spark/src/main/java/org/apache/comet/parquet/RowGroupReader.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/RowGroupReader.java
rename to spark/src/main/java/org/apache/comet/parquet/RowGroupReader.java
diff --git a/common/src/main/java/org/apache/comet/parquet/TypeUtil.java 
b/spark/src/main/java/org/apache/comet/parquet/TypeUtil.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/TypeUtil.java
rename to spark/src/main/java/org/apache/comet/parquet/TypeUtil.java
diff --git a/common/src/main/java/org/apache/comet/parquet/Utils.java 
b/spark/src/main/java/org/apache/comet/parquet/Utils.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/Utils.java
rename to spark/src/main/java/org/apache/comet/parquet/Utils.java
diff --git 
a/common/src/main/java/org/apache/comet/parquet/WrappedInputFile.java 
b/spark/src/main/java/org/apache/comet/parquet/WrappedInputFile.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/parquet/WrappedInputFile.java
rename to spark/src/main/java/org/apache/comet/parquet/WrappedInputFile.java
diff --git 
a/common/src/main/java/org/apache/comet/parquet/WrappedSeekableInputStream.java 
b/spark/src/main/java/org/apache/comet/parquet/WrappedSeekableInputStream.java
similarity index 100%
rename from 
common/src/main/java/org/apache/comet/parquet/WrappedSeekableInputStream.java
rename to 
spark/src/main/java/org/apache/comet/parquet/WrappedSeekableInputStream.java
diff --git a/common/src/main/java/org/apache/comet/udf/CometUdfBridge.java 
b/spark/src/main/java/org/apache/comet/udf/CometUdfBridge.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/udf/CometUdfBridge.java
rename to spark/src/main/java/org/apache/comet/udf/CometUdfBridge.java
diff --git 
a/common/src/main/java/org/apache/comet/vector/CometDecodedVector.java 
b/spark/src/main/java/org/apache/comet/vector/CometDecodedVector.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/vector/CometDecodedVector.java
rename to spark/src/main/java/org/apache/comet/vector/CometDecodedVector.java
diff --git 
a/common/src/main/java/org/apache/comet/vector/CometDelegateVector.java 
b/spark/src/main/java/org/apache/comet/vector/CometDelegateVector.java
similarity index 100%
rename from 
common/src/main/java/org/apache/comet/vector/CometDelegateVector.java
rename to spark/src/main/java/org/apache/comet/vector/CometDelegateVector.java
diff --git a/common/src/main/java/org/apache/comet/vector/CometDictionary.java 
b/spark/src/main/java/org/apache/comet/vector/CometDictionary.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/vector/CometDictionary.java
rename to spark/src/main/java/org/apache/comet/vector/CometDictionary.java
diff --git 
a/common/src/main/java/org/apache/comet/vector/CometDictionaryVector.java 
b/spark/src/main/java/org/apache/comet/vector/CometDictionaryVector.java
similarity index 100%
rename from 
common/src/main/java/org/apache/comet/vector/CometDictionaryVector.java
rename to spark/src/main/java/org/apache/comet/vector/CometDictionaryVector.java
diff --git a/common/src/main/java/org/apache/comet/vector/CometLazyVector.java 
b/spark/src/main/java/org/apache/comet/vector/CometLazyVector.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/vector/CometLazyVector.java
rename to spark/src/main/java/org/apache/comet/vector/CometLazyVector.java
diff --git a/common/src/main/java/org/apache/comet/vector/CometListVector.java 
b/spark/src/main/java/org/apache/comet/vector/CometListVector.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/vector/CometListVector.java
rename to spark/src/main/java/org/apache/comet/vector/CometListVector.java
diff --git a/common/src/main/java/org/apache/comet/vector/CometMapVector.java 
b/spark/src/main/java/org/apache/comet/vector/CometMapVector.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/vector/CometMapVector.java
rename to spark/src/main/java/org/apache/comet/vector/CometMapVector.java
diff --git a/common/src/main/java/org/apache/comet/vector/CometPlainVector.java 
b/spark/src/main/java/org/apache/comet/vector/CometPlainVector.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/vector/CometPlainVector.java
rename to spark/src/main/java/org/apache/comet/vector/CometPlainVector.java
diff --git 
a/common/src/main/java/org/apache/comet/vector/CometSelectionVector.java 
b/spark/src/main/java/org/apache/comet/vector/CometSelectionVector.java
similarity index 100%
rename from 
common/src/main/java/org/apache/comet/vector/CometSelectionVector.java
rename to spark/src/main/java/org/apache/comet/vector/CometSelectionVector.java
diff --git 
a/common/src/main/java/org/apache/comet/vector/CometStructVector.java 
b/spark/src/main/java/org/apache/comet/vector/CometStructVector.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/vector/CometStructVector.java
rename to spark/src/main/java/org/apache/comet/vector/CometStructVector.java
diff --git a/common/src/main/java/org/apache/comet/vector/CometVector.java 
b/spark/src/main/java/org/apache/comet/vector/CometVector.java
similarity index 100%
rename from common/src/main/java/org/apache/comet/vector/CometVector.java
rename to spark/src/main/java/org/apache/comet/vector/CometVector.java
diff --git a/common/src/main/scala/org/apache/comet/CometConf.scala 
b/spark/src/main/scala/org/apache/comet/CometConf.scala
similarity index 100%
rename from common/src/main/scala/org/apache/comet/CometConf.scala
rename to spark/src/main/scala/org/apache/comet/CometConf.scala
diff --git a/common/src/main/scala/org/apache/comet/Constants.scala 
b/spark/src/main/scala/org/apache/comet/Constants.scala
similarity index 100%
rename from common/src/main/scala/org/apache/comet/Constants.scala
rename to spark/src/main/scala/org/apache/comet/Constants.scala
diff --git 
a/common/src/main/scala/org/apache/comet/objectstore/NativeConfig.scala 
b/spark/src/main/scala/org/apache/comet/objectstore/NativeConfig.scala
similarity index 100%
rename from 
common/src/main/scala/org/apache/comet/objectstore/NativeConfig.scala
rename to spark/src/main/scala/org/apache/comet/objectstore/NativeConfig.scala
diff --git a/common/src/main/scala/org/apache/comet/package.scala 
b/spark/src/main/scala/org/apache/comet/package.scala
similarity index 100%
rename from common/src/main/scala/org/apache/comet/package.scala
rename to spark/src/main/scala/org/apache/comet/package.scala
diff --git 
a/common/src/main/scala/org/apache/comet/parquet/CometParquetUtils.scala 
b/spark/src/main/scala/org/apache/comet/parquet/CometParquetUtils.scala
similarity index 100%
rename from 
common/src/main/scala/org/apache/comet/parquet/CometParquetUtils.scala
rename to spark/src/main/scala/org/apache/comet/parquet/CometParquetUtils.scala
diff --git 
a/common/src/main/scala/org/apache/comet/parquet/CometReaderThreadPool.scala 
b/spark/src/main/scala/org/apache/comet/parquet/CometReaderThreadPool.scala
similarity index 100%
rename from 
common/src/main/scala/org/apache/comet/parquet/CometReaderThreadPool.scala
rename to 
spark/src/main/scala/org/apache/comet/parquet/CometReaderThreadPool.scala
diff --git 
a/common/src/main/scala/org/apache/comet/udf/CometLambdaRegistry.scala 
b/spark/src/main/scala/org/apache/comet/udf/CometLambdaRegistry.scala
similarity index 100%
rename from common/src/main/scala/org/apache/comet/udf/CometLambdaRegistry.scala
rename to spark/src/main/scala/org/apache/comet/udf/CometLambdaRegistry.scala
diff --git a/common/src/main/scala/org/apache/comet/udf/CometUDF.scala 
b/spark/src/main/scala/org/apache/comet/udf/CometUDF.scala
similarity index 100%
rename from common/src/main/scala/org/apache/comet/udf/CometUDF.scala
rename to spark/src/main/scala/org/apache/comet/udf/CometUDF.scala
diff --git a/common/src/main/scala/org/apache/comet/vector/NativeUtil.scala 
b/spark/src/main/scala/org/apache/comet/vector/NativeUtil.scala
similarity index 100%
rename from common/src/main/scala/org/apache/comet/vector/NativeUtil.scala
rename to spark/src/main/scala/org/apache/comet/vector/NativeUtil.scala
diff --git a/common/src/main/scala/org/apache/comet/vector/StreamReader.scala 
b/spark/src/main/scala/org/apache/comet/vector/StreamReader.scala
similarity index 100%
rename from common/src/main/scala/org/apache/comet/vector/StreamReader.scala
rename to spark/src/main/scala/org/apache/comet/vector/StreamReader.scala
diff --git 
a/common/src/main/scala/org/apache/spark/comet/CometTaskContextShim.scala 
b/spark/src/main/scala/org/apache/spark/comet/CometTaskContextShim.scala
similarity index 100%
rename from 
common/src/main/scala/org/apache/spark/comet/CometTaskContextShim.scala
rename to spark/src/main/scala/org/apache/spark/comet/CometTaskContextShim.scala
diff --git 
a/common/src/main/scala/org/apache/spark/sql/comet/CastOverflowException.scala 
b/spark/src/main/scala/org/apache/spark/sql/comet/CastOverflowException.scala
similarity index 100%
rename from 
common/src/main/scala/org/apache/spark/sql/comet/CastOverflowException.scala
rename to 
spark/src/main/scala/org/apache/spark/sql/comet/CastOverflowException.scala
diff --git 
a/common/src/main/scala/org/apache/spark/sql/comet/execution/arrow/ArrowReaderIterator.scala
 
b/spark/src/main/scala/org/apache/spark/sql/comet/execution/arrow/ArrowReaderIterator.scala
similarity index 100%
rename from 
common/src/main/scala/org/apache/spark/sql/comet/execution/arrow/ArrowReaderIterator.scala
rename to 
spark/src/main/scala/org/apache/spark/sql/comet/execution/arrow/ArrowReaderIterator.scala
diff --git 
a/common/src/main/scala/org/apache/spark/sql/comet/execution/arrow/ArrowWriters.scala
 
b/spark/src/main/scala/org/apache/spark/sql/comet/execution/arrow/ArrowWriters.scala
similarity index 100%
rename from 
common/src/main/scala/org/apache/spark/sql/comet/execution/arrow/ArrowWriters.scala
rename to 
spark/src/main/scala/org/apache/spark/sql/comet/execution/arrow/ArrowWriters.scala
diff --git 
a/common/src/main/scala/org/apache/spark/sql/comet/execution/arrow/CometArrowConverters.scala
 
b/spark/src/main/scala/org/apache/spark/sql/comet/execution/arrow/CometArrowConverters.scala
similarity index 100%
rename from 
common/src/main/scala/org/apache/spark/sql/comet/execution/arrow/CometArrowConverters.scala
rename to 
spark/src/main/scala/org/apache/spark/sql/comet/execution/arrow/CometArrowConverters.scala
diff --git 
a/common/src/main/scala/org/apache/spark/sql/comet/parquet/CometParquetReadSupport.scala
 
b/spark/src/main/scala/org/apache/spark/sql/comet/parquet/CometParquetReadSupport.scala
similarity index 100%
rename from 
common/src/main/scala/org/apache/spark/sql/comet/parquet/CometParquetReadSupport.scala
rename to 
spark/src/main/scala/org/apache/spark/sql/comet/parquet/CometParquetReadSupport.scala
diff --git 
a/common/src/main/scala/org/apache/spark/sql/comet/parquet/CometSparkToParquetSchemaConverter.scala
 
b/spark/src/main/scala/org/apache/spark/sql/comet/parquet/CometSparkToParquetSchemaConverter.scala
similarity index 100%
rename from 
common/src/main/scala/org/apache/spark/sql/comet/parquet/CometSparkToParquetSchemaConverter.scala
rename to 
spark/src/main/scala/org/apache/spark/sql/comet/parquet/CometSparkToParquetSchemaConverter.scala
diff --git a/common/src/main/scala/org/apache/spark/sql/comet/util/Utils.scala 
b/spark/src/main/scala/org/apache/spark/sql/comet/util/Utils.scala
similarity index 100%
rename from common/src/main/scala/org/apache/spark/sql/comet/util/Utils.scala
rename to spark/src/main/scala/org/apache/spark/sql/comet/util/Utils.scala
diff --git 
a/common/src/main/spark-3.4/org/apache/comet/shims/ShimBatchReader.scala 
b/spark/src/main/spark-3.4/org/apache/comet/shims/ShimBatchReader.scala
similarity index 100%
rename from 
common/src/main/spark-3.4/org/apache/comet/shims/ShimBatchReader.scala
rename to spark/src/main/spark-3.4/org/apache/comet/shims/ShimBatchReader.scala
diff --git 
a/common/src/main/spark-3.4/org/apache/comet/shims/ShimFileFormat.scala 
b/spark/src/main/spark-3.4/org/apache/comet/shims/ShimFileFormat.scala
similarity index 100%
rename from 
common/src/main/spark-3.4/org/apache/comet/shims/ShimFileFormat.scala
rename to spark/src/main/spark-3.4/org/apache/comet/shims/ShimFileFormat.scala
diff --git 
a/common/src/main/spark-3.4/org/apache/spark/sql/comet/shims/ShimTaskMetrics.scala
 
b/spark/src/main/spark-3.4/org/apache/spark/sql/comet/shims/ShimTaskMetrics.scala
similarity index 100%
rename from 
common/src/main/spark-3.4/org/apache/spark/sql/comet/shims/ShimTaskMetrics.scala
rename to 
spark/src/main/spark-3.4/org/apache/spark/sql/comet/shims/ShimTaskMetrics.scala
diff --git 
a/common/src/main/spark-3.5/org/apache/comet/shims/ShimBatchReader.scala 
b/spark/src/main/spark-3.5/org/apache/comet/shims/ShimBatchReader.scala
similarity index 100%
rename from 
common/src/main/spark-3.5/org/apache/comet/shims/ShimBatchReader.scala
rename to spark/src/main/spark-3.5/org/apache/comet/shims/ShimBatchReader.scala
diff --git 
a/common/src/main/spark-3.5/org/apache/comet/shims/ShimFileFormat.scala 
b/spark/src/main/spark-3.5/org/apache/comet/shims/ShimFileFormat.scala
similarity index 100%
rename from 
common/src/main/spark-3.5/org/apache/comet/shims/ShimFileFormat.scala
rename to spark/src/main/spark-3.5/org/apache/comet/shims/ShimFileFormat.scala
diff --git 
a/common/src/main/spark-3.5/org/apache/spark/sql/comet/shims/ShimTaskMetrics.scala
 
b/spark/src/main/spark-3.5/org/apache/spark/sql/comet/shims/ShimTaskMetrics.scala
similarity index 100%
rename from 
common/src/main/spark-3.5/org/apache/spark/sql/comet/shims/ShimTaskMetrics.scala
rename to 
spark/src/main/spark-3.5/org/apache/spark/sql/comet/shims/ShimTaskMetrics.scala
diff --git 
a/common/src/main/spark-3.x/org/apache/comet/shims/CometTypeShim.scala 
b/spark/src/main/spark-3.x/org/apache/comet/shims/CometTypeShim.scala
similarity index 100%
rename from common/src/main/spark-3.x/org/apache/comet/shims/CometTypeShim.scala
rename to spark/src/main/spark-3.x/org/apache/comet/shims/CometTypeShim.scala
diff --git 
a/common/src/main/spark-3.x/org/apache/comet/shims/ShimCometConf.scala 
b/spark/src/main/spark-3.x/org/apache/comet/shims/ShimCometConf.scala
similarity index 100%
rename from common/src/main/spark-3.x/org/apache/comet/shims/ShimCometConf.scala
rename to spark/src/main/spark-3.x/org/apache/comet/shims/ShimCometConf.scala
diff --git 
a/common/src/main/spark-4.x/org/apache/comet/shims/CometTypeShim.scala 
b/spark/src/main/spark-4.x/org/apache/comet/shims/CometTypeShim.scala
similarity index 100%
rename from common/src/main/spark-4.x/org/apache/comet/shims/CometTypeShim.scala
rename to spark/src/main/spark-4.x/org/apache/comet/shims/CometTypeShim.scala
diff --git 
a/common/src/main/spark-4.x/org/apache/comet/shims/ShimBatchReader.scala 
b/spark/src/main/spark-4.x/org/apache/comet/shims/ShimBatchReader.scala
similarity index 100%
rename from 
common/src/main/spark-4.x/org/apache/comet/shims/ShimBatchReader.scala
rename to spark/src/main/spark-4.x/org/apache/comet/shims/ShimBatchReader.scala
diff --git 
a/common/src/main/spark-4.x/org/apache/comet/shims/ShimCometConf.scala 
b/spark/src/main/spark-4.x/org/apache/comet/shims/ShimCometConf.scala
similarity index 100%
rename from common/src/main/spark-4.x/org/apache/comet/shims/ShimCometConf.scala
rename to spark/src/main/spark-4.x/org/apache/comet/shims/ShimCometConf.scala
diff --git 
a/common/src/main/spark-4.x/org/apache/comet/shims/ShimFileFormat.scala 
b/spark/src/main/spark-4.x/org/apache/comet/shims/ShimFileFormat.scala
similarity index 100%
rename from 
common/src/main/spark-4.x/org/apache/comet/shims/ShimFileFormat.scala
rename to spark/src/main/spark-4.x/org/apache/comet/shims/ShimFileFormat.scala
diff --git 
a/common/src/main/spark-4.x/org/apache/spark/sql/comet/shims/ShimTaskMetrics.scala
 
b/spark/src/main/spark-4.x/org/apache/spark/sql/comet/shims/ShimTaskMetrics.scala
similarity index 100%
rename from 
common/src/main/spark-4.x/org/apache/spark/sql/comet/shims/ShimTaskMetrics.scala
rename to 
spark/src/main/spark-4.x/org/apache/spark/sql/comet/shims/ShimTaskMetrics.scala
diff --git 
a/common/src/test/java/org/apache/comet/parquet/TestColumnReader.java 
b/spark/src/test/java/org/apache/comet/parquet/TestColumnReader.java
similarity index 100%
rename from common/src/test/java/org/apache/comet/parquet/TestColumnReader.java
rename to spark/src/test/java/org/apache/comet/parquet/TestColumnReader.java
diff --git 
a/common/src/test/java/org/apache/comet/parquet/TestCometInputFile.java 
b/spark/src/test/java/org/apache/comet/parquet/TestCometInputFile.java
similarity index 100%
rename from 
common/src/test/java/org/apache/comet/parquet/TestCometInputFile.java
rename to spark/src/test/java/org/apache/comet/parquet/TestCometInputFile.java
diff --git a/common/src/test/java/org/apache/comet/parquet/TestFileReader.java 
b/spark/src/test/java/org/apache/comet/parquet/TestFileReader.java
similarity index 100%
rename from common/src/test/java/org/apache/comet/parquet/TestFileReader.java
rename to spark/src/test/java/org/apache/comet/parquet/TestFileReader.java
diff --git a/common/src/test/java/org/apache/comet/parquet/TestUtils.java 
b/spark/src/test/java/org/apache/comet/parquet/TestUtils.java
similarity index 100%
rename from common/src/test/java/org/apache/comet/parquet/TestUtils.java
rename to spark/src/test/java/org/apache/comet/parquet/TestUtils.java


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to