Skip to content

HBASE-30179: Define spark4 module and redefine common modules#155

Open
wchevreuil wants to merge 4 commits into
apache:masterfrom
wchevreuil:HBASE-30179
Open

HBASE-30179: Define spark4 module and redefine common modules#155
wchevreuil wants to merge 4 commits into
apache:masterfrom
wchevreuil:HBASE-30179

Conversation

@wchevreuil
Copy link
Copy Markdown

No description provided.

@wchevreuil
Copy link
Copy Markdown
Author

Disclaimer: I've used cursor's composer model to generate the pom files for the new modules, and the lifecycle changes.

@Apache-HBase
Copy link
Copy Markdown

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 27s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
-0 ⚠️ test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ master Compile Tests _
+0 🆗 mvndep 0m 35s Maven dependency ordering for branch
+1 💚 mvninstall 1m 55s master passed
+1 💚 compile 0m 43s master passed
+1 💚 spotless 0m 16s branch has no errors when running spotless:check.
+1 💚 javadoc 0m 42s master passed
+1 💚 scaladoc 0m 0s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 5s Maven dependency ordering for patch
+1 💚 mvninstall 0m 42s the patch passed
+1 💚 compile 0m 44s the patch passed
+1 💚 javac 0m 44s the patch passed
+1 💚 scalac 0m 44s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 xml 0m 4s The patch has no ill-formed XML file.
-1 ❌ spotless 0m 2s patch has 23 errors when running spotless:check, run spotless:apply to fix.
+1 💚 javadoc 0m 43s the patch passed
+1 💚 scaladoc 0m 0s the patch passed
_ Other Tests _
-1 ❌ unit 0m 58s root in the patch failed.
8m 45s
Reason Tests
Failed junit tests hadoop.hbase.spark.TestJavaHBaseContext
hadoop.hbase.spark.TestJavaHBaseContextForLargeRows
Subsystem Report/Notes
Docker ClientAPI=1.48 ServerAPI=1.48 base: https://ci-hbase.apache.org/job/HBase-Connectors-PreCommit/job/PR-155/1/artifact/yetus-precommit-check/output/Dockerfile
GITHUB PR #155
Optional Tests dupname javac javadoc unit spotless xml compile scalac scaladoc
uname Linux c3bdbbb793c8 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 GNU/Linux
Build tool hb_maven
Personality dev-support/jenkins/hbase-personality.sh
git revision master / abaa002
Default Java Oracle Corporation-1.8.0_342-b07
spotless https://ci-hbase.apache.org/job/HBase-Connectors-PreCommit/job/PR-155/1/artifact/yetus-precommit-check/output/patch-spotless.txt
unit https://ci-hbase.apache.org/job/HBase-Connectors-PreCommit/job/PR-155/1/artifact/yetus-precommit-check/output/patch-unit-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-Connectors-PreCommit/job/PR-155/1/testReport/
Max. process+thread count 209 (vs. ulimit of 12500)
modules C: spark spark/hbase-spark-pushdown hbase-connectors-assembly . spark/hbase-spark spark4 spark4/hbase-spark-pushdown spark4/hbase-spark4 U: .
Console output https://ci-hbase.apache.org/job/HBase-Connectors-PreCommit/job/PR-155/1/console
versions git=2.30.2
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link
Copy Markdown

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 26s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
-0 ⚠️ test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ master Compile Tests _
+0 🆗 mvndep 0m 28s Maven dependency ordering for branch
+1 💚 mvninstall 1m 44s master passed
+1 💚 compile 0m 44s master passed
+1 💚 spotless 0m 13s branch has no errors when running spotless:check.
+1 💚 javadoc 0m 43s master passed
+1 💚 scaladoc 0m 0s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 6s Maven dependency ordering for patch
+1 💚 mvninstall 0m 43s the patch passed
+1 💚 compile 0m 45s the patch passed
+1 💚 javac 0m 45s the patch passed
+1 💚 scalac 0m 45s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 xml 0m 4s The patch has no ill-formed XML file.
+1 💚 spotless 0m 9s patch has no errors when running spotless:check.
+1 💚 javadoc 0m 42s the patch passed
+1 💚 scaladoc 0m 0s the patch passed
_ Other Tests _
+1 💚 unit 8m 32s root in the patch passed.
16m 15s
Subsystem Report/Notes
Docker ClientAPI=1.54 ServerAPI=1.54 base: https://ci-hbase.apache.org/job/HBase-Connectors-PreCommit/job/PR-155/2/artifact/yetus-precommit-check/output/Dockerfile
GITHUB PR #155
Optional Tests dupname javac javadoc unit spotless xml compile scalac scaladoc
uname Linux cdd8f012a05c 6.14.0-1018-aws #18~24.04.1-Ubuntu SMP Mon Nov 24 19:46:27 UTC 2025 x86_64 GNU/Linux
Build tool hb_maven
Personality dev-support/jenkins/hbase-personality.sh
git revision master / abaa002
Default Java Oracle Corporation-1.8.0_342-b07
Test Results https://ci-hbase.apache.org/job/HBase-Connectors-PreCommit/job/PR-155/2/testReport/
Max. process+thread count 968 (vs. ulimit of 12500)
modules C: spark spark/hbase-spark-pushdown hbase-connectors-assembly . spark/hbase-spark spark4 spark4/hbase-spark-pushdown spark4/hbase-spark4 U: .
Console output https://ci-hbase.apache.org/job/HBase-Connectors-PreCommit/job/PR-155/2/console
versions git=2.30.2
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Phase-0 scaffolding to introduce a parallel spark4 Maven reactor (Apache Spark 4.x / Scala 2.13 / JDK 17+) alongside the existing Spark 3 connector, and to factor SQL pushdown out into a shared hbase-spark-pushdown module that both reactors will share.

Changes:

  • Adds a new top-level spark4 reactor (spark4/pom.xml, spark4/hbase-spark4/, spark4/hbase-spark-pushdown/) gated by a -Pspark4 profile in the root pom, with a JDK-17 enforcer and a placeholder Scala object.
  • Introduces a new spark/hbase-spark-pushdown module under the existing Spark 3 reactor and wires hbase-spark to depend on it.
  • Updates the binary assembly to exclude the Spark 4 modules until the distribution layout is finalized.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
pom.xml Adds opt-in spark4 profile that overrides the reactor module list.
spark/pom.xml Registers new hbase-spark-pushdown module and adds it to dependencyManagement.
spark/hbase-spark/pom.xml Declares dependency on the new shared pushdown module.
spark/hbase-spark-pushdown/pom.xml New shared pushdown module for Spark 3 (contains only a pom — no sources moved).
spark4/pom.xml New Spark 4 reactor pom, JDK 17+ enforcer, Scala 2.13.14, Spark 4.0.0.
spark4/hbase-spark4/pom.xml New hbase-spark4 module pom with Spark 4 dependencies and Scala build wiring.
spark4/hbase-spark4/src/main/scala/.../Spark4Placeholder.scala Placeholder Scala object so the module is non-empty.
spark4/hbase-spark-pushdown/pom.xml Spark 4 build of pushdown that pulls sources via build-helper from the Spark 3 module path.
hbase-connectors-assembly/src/main/assembly/hbase-connectors-bin.xml Excludes hbase-spark4 and hbase-spark-pushdown_2.13 from the binary tarball.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +116 to +149
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-java-source-dir</id>
<goals>
<goal>add-source</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<sources>
<source>src/main/java</source>
</sources>
</configuration>
</execution>
<execution>
<id>add-scala-source-dir</id>
<goals>
<goal>add-source</goal>
</goals>
<phase>validate</phase>
<configuration>
<sources>
<source>src/main/scala</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, this was intentional. The goal with this PR was just to re-structure the modules. Related ports and class moves will come on subsequent PRs.

Comment on lines +134 to +135
<source>${project.basedir}/../../spark/hbase-spark-pushdown/src/main/java</source>
<source>${project.basedir}/../../spark/hbase-spark-pushdown/src/main/scala</source>
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will sort it on another PR, when we move SparkSQLPushDownFilter and related classes.

Comment thread spark/hbase-spark-pushdown/pom.xml Outdated
Comment thread spark4/hbase-spark-pushdown/pom.xml

/**
* Phase-0 build marker for the Spark 4 connector line (`hbase-spark4`).
* Replaced incrementally during feature porting; see ../../SPARK4-ROADMAP.md at repo root.
Comment thread pom.xml
<module>kafka</module>
<module>spark</module>
<module>spark4</module>
<module>hbase-connectors-assembly</module>
<exclude>org.apache.hbase.connectors.spark:hbase-spark-it</exclude>
<!-- Not yet packaged when assembly runs (reactor lists spark4 after this module).
Exclude until dist layout includes Spark 4; see SPARK4-ROADMAP.md -->
<exclude>org.apache.hbase.connectors.spark:hbase-spark4</exclude>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@Apache-HBase
Copy link
Copy Markdown

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 8s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
-0 ⚠️ test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ master Compile Tests _
+0 🆗 mvndep 0m 36s Maven dependency ordering for branch
+1 💚 mvninstall 1m 38s master passed
+1 💚 compile 0m 45s master passed
+1 💚 spotless 0m 14s branch has no errors when running spotless:check.
+1 💚 javadoc 0m 44s master passed
+1 💚 scaladoc 0m 0s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 6s Maven dependency ordering for patch
+1 💚 mvninstall 0m 44s the patch passed
+1 💚 compile 0m 46s the patch passed
+1 💚 javac 0m 46s the patch passed
+1 💚 scalac 0m 46s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 xml 0m 5s The patch has no ill-formed XML file.
+1 💚 spotless 0m 9s patch has no errors when running spotless:check.
+1 💚 javadoc 0m 44s the patch passed
+1 💚 scaladoc 0m 0s the patch passed
_ Other Tests _
+1 💚 unit 8m 33s root in the patch passed.
16m 4s
Subsystem Report/Notes
Docker ClientAPI=1.54 ServerAPI=1.54 base: https://ci-hbase.apache.org/job/HBase-Connectors-PreCommit/job/PR-155/3/artifact/yetus-precommit-check/output/Dockerfile
GITHUB PR #155
Optional Tests dupname javac javadoc unit spotless xml compile scalac scaladoc
uname Linux e44b86cf65fd 6.14.0-1018-aws #18~24.04.1-Ubuntu SMP Mon Nov 24 19:46:27 UTC 2025 x86_64 GNU/Linux
Build tool hb_maven
Personality dev-support/jenkins/hbase-personality.sh
git revision master / abaa002
Default Java Oracle Corporation-1.8.0_342-b07
Test Results https://ci-hbase.apache.org/job/HBase-Connectors-PreCommit/job/PR-155/3/testReport/
Max. process+thread count 967 (vs. ulimit of 12500)
modules C: spark spark/hbase-spark-pushdown hbase-connectors-assembly . spark/hbase-spark spark4 spark4/hbase-spark-pushdown spark4/hbase-spark4 U: .
Console output https://ci-hbase.apache.org/job/HBase-Connectors-PreCommit/job/PR-155/3/console
versions git=2.30.2
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated no new comments.

@Apache-HBase
Copy link
Copy Markdown

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 8s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
-0 ⚠️ test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ master Compile Tests _
+0 🆗 mvndep 0m 34s Maven dependency ordering for branch
+1 💚 mvninstall 1m 42s master passed
+1 💚 compile 0m 44s master passed
+1 💚 spotless 0m 13s branch has no errors when running spotless:check.
+1 💚 javadoc 0m 46s master passed
+1 💚 scaladoc 0m 0s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 7s Maven dependency ordering for patch
+1 💚 mvninstall 0m 43s the patch passed
+1 💚 compile 0m 46s the patch passed
+1 💚 javac 0m 46s the patch passed
+1 💚 scalac 0m 46s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 xml 0m 4s The patch has no ill-formed XML file.
+1 💚 spotless 0m 10s patch has no errors when running spotless:check.
+1 💚 javadoc 0m 43s the patch passed
+1 💚 scaladoc 0m 0s the patch passed
_ Other Tests _
+1 💚 unit 8m 32s root in the patch passed.
16m 6s
Subsystem Report/Notes
Docker ClientAPI=1.54 ServerAPI=1.54 base: https://ci-hbase.apache.org/job/HBase-Connectors-PreCommit/job/PR-155/4/artifact/yetus-precommit-check/output/Dockerfile
GITHUB PR #155
Optional Tests dupname javac javadoc unit spotless xml compile scalac scaladoc
uname Linux ca5cda3e93d4 6.14.0-1018-aws #18~24.04.1-Ubuntu SMP Mon Nov 24 19:46:27 UTC 2025 x86_64 GNU/Linux
Build tool hb_maven
Personality dev-support/jenkins/hbase-personality.sh
git revision master / abaa002
Default Java Oracle Corporation-1.8.0_342-b07
Test Results https://ci-hbase.apache.org/job/HBase-Connectors-PreCommit/job/PR-155/4/testReport/
Max. process+thread count 969 (vs. ulimit of 12500)
modules C: spark spark/hbase-spark-pushdown hbase-connectors-assembly . spark/hbase-spark spark4 spark4/hbase-spark-pushdown spark4/hbase-spark4 U: .
Console output https://ci-hbase.apache.org/job/HBase-Connectors-PreCommit/job/PR-155/4/console
versions git=2.30.2
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants