Skip to content

[AURON #2026] Migrate from deprecated JavaConverters to CollectionConverters.#2027

Open
slfan1989 wants to merge 1 commit intoapache:masterfrom
slfan1989:auron-2026
Open

[AURON #2026] Migrate from deprecated JavaConverters to CollectionConverters.#2027
slfan1989 wants to merge 1 commit intoapache:masterfrom
slfan1989:auron-2026

Conversation

@slfan1989
Copy link
Contributor

Which issue does this PR close?

Closes #2026

Rationale for this change

The codebase currently uses the deprecated scala.collection.JavaConverters API for Java-Scala collection conversions. This API was deprecated in Scala 2.13 in favor of scala.jdk.CollectionConverters.

Current issues:

  • Deprecation warnings are being suppressed in build configuration (pom.xml:1055)
  • Using outdated API that doesn't follow Scala best practices
  • Potential migration barrier when upgrading to Scala 2.13+

The project already includes scala-collection-compat dependency (version 2.12.0), which provides a compatibility layer allowing the use of modern scala.jdk.CollectionConverters API in Scala 2.12 without any behavioral changes.

What changes are included in this PR?

How this works with Scala 2.12:
The scala-collection-compat library provides a compatibility layer that:

  • In Scala 2.12: redirects scala.jdk.CollectionConverters to scala.collection.JavaConverters
  • In Scala 2.13+: uses native scala.jdk.CollectionConverters

This ensures zero runtime behavioral changes.

Are there any user-facing changes?

No. This is purely an internal code refactoring with no user-facing changes or behavioral differences.

How was this patch tested?

Existing unit tests pass.

…ionConverters.

Signed-off-by: slfan1989 <slfan1989@apache.org>
@cxzl25 cxzl25 requested a review from Copilot February 25, 2026 15:53
Copy link
Contributor

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

This pull request migrates the codebase from the deprecated scala.collection.JavaConverters API to the modern scala.jdk.CollectionConverters API. The migration is enabled by adding the scala-collection-compat library (version 2.12.0) as a dependency, which provides a compatibility layer that ensures zero runtime behavioral changes in Scala 2.12 while preparing the codebase for future Scala 2.13+ migration.

Changes:

  • Added scala-collection-compat dependency (version 2.12.0) to pom.xml with proper dependency management configuration
  • Replaced all scala.collection.JavaConverters._ imports with scala.jdk.CollectionConverters._ across 30 Scala files
  • Updated specific converter imports (e.g., asScalaBufferConverter, seqAsJavaListConverter) to use wildcard imports

Reviewed changes

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

Show a summary per file
File Description
pom.xml Added scala-collection-compat dependency property, dependencyManagement entry, and dependency declaration
thirdparty/auron-uniffle/src/main/scala/org/apache/spark/sql/execution/auron/shuffle/uniffle/AuronUniffleShuffleReader.scala Updated JavaConverters import to CollectionConverters
thirdparty/auron-paimon/src/main/scala/org/apache/spark/sql/hive/execution/auron/plan/NativePaimonTableScanExec.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/hive/execution/auron/plan/NativeHiveTableScanBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeWindowBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeUnionBase.scala Replaced specific converter import with wildcard CollectionConverters import
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeTakeOrderedBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeSortMergeJoinBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeSortBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeShuffledHashJoinBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeShuffleExchangeBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeRenameColumnsBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeProjectBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeParquetSinkBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeParquetScanBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeOrcScanBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeGenerateBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeFilterBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeFileSourceScanBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeExpandBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeBroadcastJoinBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeBroadcastExchangeBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/plan/NativeAggBase.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/columnar/ColumnarHelper.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/arrowio/util/ArrowWriter.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/execution/auron/arrowio/util/ArrowUtils.scala Replaced specific converter imports with wildcard CollectionConverters import
spark-extension/src/main/scala/org/apache/spark/sql/auron/NativeConverters.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/spark/sql/auron/AuronConverters.scala Updated JavaConverters import to CollectionConverters
spark-extension/src/main/scala/org/apache/auron/metric/SparkMetricNode.scala Updated JavaConverters import to CollectionConverters
auron-spark-tests/common/src/test/scala/org/apache/spark/sql/SparkQueryTestsBase.scala Updated JavaConverters import to CollectionConverters
auron-spark-tests/common/src/test/scala/org/apache/auron/utils/SparkTestSettings.scala Updated JavaConverters import to CollectionConverters

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

@slfan1989
Copy link
Contributor Author

@ShreyeshArangath Thank you for review the code! @cxzl25 Could you take another look at this PR? Thanks a lot!

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate from deprecated JavaConverters to CollectionConverters

3 participants