Repository navigation
feat(spark): prepare connector for Java 17 runtime - #782
Merged
Merged
Conversation
- manage compiler, surefire and coverage plugin versions - keep Java 8 output and use compatible Mockito 4 - resolve optional server repositories, refs and pins - verify checkout and package servers without install - share authenticated startup and filter AppleDouble files
- connect repository and fetch refs to all server installers - reuse the shared installer for Tools and Spark validation - preserve Loader source caching with verified checkouts - isolate fixture builds and retain separate HTTPS RPC ports
- preserve Mockito 2 interaction assertions with the equivalent API - align test-only Byte Buddy dependencies with Mockito 4 - retain the Spring Boot 2 and Java 11 shared baseline
- run shared server selection and installer tests in one CI job - document Maven 3.6.3 as the minimum source build version - report missing or ambiguous server archives before exiting
- trigger push checks for client installer changes - trigger pull request checks for the same source path - cover the installer exercised by the existing contracts
- encode legacy graph configuration as properties - keep task and target tests aligned with server contracts - inherit shared compiler and coverage plugin versions - preserve Java 8 APIs in compatibility tests
- align Spark 3.5.8 and Scala 2.12.18 with Java 8 bytecode - replace Scala build plugin and match SLF4J 2 binding - supply embedded Spark module opens and bounded tests - isolate configurable server targets and verify Unicode - run connector CI on Java 11 and 17
- update the shared inventory from the published full reactor runtime - retain complete bundled license texts and required dependency notices - cover Jackson suffixed legal entries and the protobuf release license
- keep the Spark 3.5 SLF4J provider in provided scope - retain the exclusion of the inherited SLF4J 1 binding - document exact Guava acquisition and driver/executor paths - state the application classpath override and runtime boundary
- remove the provided logging bridge from the runtime inventory - retain the exact published baseline Log4j API notice - verify the reactor copy and provider-free assembly legal coverage
- mark the validated submit example as client deploy mode - explain the remote driver Guava path in cluster deploy mode - distinguish driver provisioning from executor JAR copies
- prepare a Java 11 environment for the published server fixture - isolate server JAVA_HOME and PATH from the test JVM matrix - keep Java 11 and 17 CI results independent with fail-fast disabled
- disable persisted checkout credentials in the contract job - preserve read-only source checkout permissions - retain the existing local Git fixture contracts
Retain FastDoubleParser copyright and full MIT grant. Use the exact source pinned by Jackson Core 2.15.2 NOTICE. Reference the existing Spark third-party license supplement.
- start Surefire with UTF-8 and document both application JVM roles - normalize URL schemes and infer the matching default port - share explicit TLS test properties between readback and writers - restrict the Maven fixture master to local execution - verify configuration contracts without touching a server
- Give each HTTPS test its own client and clean it up only when opened. - Clear the client even when closing fails so teardown cannot reuse it. - Prepare the pinned official trust store once per class and verify downloads. - Compile and probe negative builder lifecycle on JDK 11 and 17 without server writes.
- log only configuration keys at options construction - apply the same boundary to DataSource and writer setup - retain actual connection values and parameter access semantics - capture real logger output and verify secret values stay absent
- reject path prefixes before fixture graph access - preserve root endpoints and existing protocol settings - cover plain and encoded prefixes on Java 11 and 17
- reject unsupported query, fragment and user-info before setup - sanitize URI parser errors without retaining raw inputs - verify URL rejection and valid root endpoints on Java 11 and 17
- report missing or ambiguous Loader server archives - stop before shared server startup - cover stale archives on a cached install
- encode absent legacy clone config as empty text - verify the actual HTTP request body and route - cover rejected null and nested config values
- close the loopback request stream after reading - retain HTTP body and route assertions - verify the existing client unit suite
- bind cached archives to repository and commit - reject unverified caches without altering their contents - version the Loader CI cache key for provenance - cover cache identity and preservation with local fixtures
- Keep one active run per workflow and PR - Preserve push and manual workflow executions - Cover CI workflows on this PR target branch
- Keep one active run per workflow and PR - Preserve push and manual workflow executions - Cover CI workflows on this PR target branch
- group labeler runs by PR and event - cancel older metadata updates for the same PR - preserve independent workflow runs
- group labeler runs by PR and event - cancel older metadata updates for the same PR - preserve independent workflow runs
- name the Spark supplied logging provider version - explain the intentional API and core override - distinguish embedded CI from manual executor checks
- remove unused Microsoft feeds from the temporary runner - retain Playwright browser dependency installation - preserve Ubuntu sources and package signature checks
- retain standard property escaping for legacy servers - encode spaces without Commons parser trimming - verify leading trailing and all-space string values - keep empty clone and scalar validation behavior
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #782 +/- ##
============================================
- Coverage 62.49% 52.98% -9.51%
- Complexity 1903 2161 +258
============================================
Files 262 336 +74
Lines 9541 12829 +3288
Branches 886 1208 +322
============================================
+ Hits 5963 6798 +835
- Misses 3190 5553 +2363
- Partials 388 478 +90 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
- encode non-ASCII config characters as Unicode escapes - retain whitespace and literal backslash semantics - verify ASCII bodies across three charset encodings
- merge upstream master after shared build preparation - retain upstream fixture and cache provenance fixes - preserve client compatibility changes and regressions
- preserve final build preparation files - connect upstream squash history - share synchronization across dependent branches
- absorb upstream client compatibility fixes - retain shared preparation history - align dependent branches with upstream master
- absorb finalized shared build preparation - include merged client compatibility fixes - preserve independent module changes
- join new connector guide paragraphs - retain driver and executor runtime guidance - preserve existing examples and tables
- preserve the exact upstream master content - link the finalized client preparation history - keep organization module review diffs focused
- preserve the verified module file tree - reconcile organization and upstream client history - keep review diffs relative to the merged client
MrJs133
approved these changes
Oct 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose of the PR
Spark Connector previously used Spark 3.2 and older Scala build tooling. It now aligns with Spark 3.5.8 / Scala 2.12.18, with the scoped JVM options needed for Java 17; Java 8 bytecode remains unchanged in this preparation.
Original preparation and ongoing review: hugegraph#45. This PR uses the exact same organization branch, so subsequent branch fixes update both PRs.
Required predecessors: #775.
This PR targets ASF master and currently includes unmerged prerequisites. Review the module delta in the linked organization PR; merge predecessors first, then verify the upstream diff, required checks and reviews before merging. The prerequisite-union branch is an integration aid, not another merge unit.
Main Changes
Verifying these changes
JDK 11 and 17 connector suites and manually launched packaged Spark jobs with separate executor JVMs passed. CI covers the embedded Maven fixture; manual spark-submit evidence does not establish every cluster deployment or Guava combination.
Documentation Status
Migration and runtime limitations are documented in the module guides. Review and fixes continue in the organization repository; independent upstream review suggestions will also be read and adopted. No merge, deployment or release is performed by creating this PR.