Skip to content

[MINOR][BUILD] Drop retired oro dependency#57492

Open
ybapat wants to merge 3 commits into
apache:masterfrom
ybapat:issue-57209-drop-oro
Open

[MINOR][BUILD] Drop retired oro dependency#57492
ybapat wants to merge 3 commits into
apache:masterfrom
ybapat:issue-57209-drop-oro

Conversation

@ybapat

@ybapat ybapat commented Jul 24, 2026

Copy link
Copy Markdown

What changes were proposed in this pull request?

Remove the oro (Jakarta ORO) dependency from Apache Spark.

  • Remove the <oro.version>2.0.8</oro.version> property from the root pom.xml
  • Remove the oro dependency block from common/utils/pom.xml
  • Remove the oro/2.0.8//oro-2.0.8.jar entry from dev/deps/spark-deps-hadoop-3-hive-2.3
  • Remove the oro:oro entry from LICENSE-binary

Why are the changes needed?

The oro (Jakarta ORO) project was officially retired approximately 16 years ago. It was added to Spark 12 years ago as an optional runtime dependency of Apache Ivy (see the inline comment: "oro is needed by ivy, but only listed as an optional dependency"). Modern Ivy (2.5.x, which Spark currently uses) falls back to java.util.regex when oro is absent, so the jar is no longer needed.

No Spark source code directly imports org.apache.oro.*; the jar served only as an optional Ivy runtime detail.

Relates to GitHub issue #57209.

Does this PR introduce any user-facing change?

No. This is a build-level dependency removal with no runtime impact on Spark users.

How was this patch tested?

The dependency manifest (dev/deps/spark-deps-hadoop-3-hive-2.3) and LICENSE-binary were updated to remove all traces of the oro artifact. No Spark source files import org.apache.oro, so no code changes or tests are required.

This PR was created with the assistance of Claude (AI). Disclosed per Apache Arrow/Spark contribution guidelines.

ybapat and others added 3 commits July 24, 2026 01:15
oro (Jakarta ORO) was retired 16 years ago. It was pulled in as an
optional runtime dependency of Apache Ivy, but modern Ivy versions
work correctly without it. Remove the dependency declaration, the
version property, and the entry from the tracked deps manifest.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
oro was listed as a bundled binary dependency. Companion to the
removal of the oro dependency declaration from pom.xml.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

@uros-b uros-b left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The removal's stated rationale is empirically false for the pinned Ivy 2.5.3, whose GlobPatternMatcher hard-requires org.apache.oro, and Spark's --packages path always builds glob exclude rules; so this turns every Maven-coordinate resolution into a NoClassDefFoundError. To drop oro, Spark must first migrate MavenUtils off GlobPatternMatcher (e.g. RegexpPatternMatcher / ExactPatternMatcher) and prove resolution plus the existing MavenUtilsSuite pass without oro on the classpath.

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.

2 participants