Skip to content

DRILL-8525: Migrate Fully to Apache Commons Collections 4.x#2991

Merged
cgivre merged 5 commits intoapache:masterfrom
rymarm:DRILL-8525
May 23, 2025
Merged

DRILL-8525: Migrate Fully to Apache Commons Collections 4.x#2991
cgivre merged 5 commits intoapache:masterfrom
rymarm:DRILL-8525

Conversation

@rymarm
Copy link
Copy Markdown
Member

@rymarm rymarm commented May 22, 2025

DRILL-8525: Migrate Fully to Apache Commons Collections 4.x

Description

To my surprise, Drill still uses classes from commons-collections (3.x release) in a few places, and Drill has not even declared it as a dependency. Drill used transitive dependency from hadoop-commons:

[INFO] --- dependency:3.6.1:tree (default-cli) @ drill-java-exec ---
[INFO] org.apache.drill.exec:drill-java-exec:jar:1.22.0-SNAPSHOT
[INFO] +- org.apache.hadoop:hadoop-common:jar:3.3.6:compile
[INFO] |  \- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] \- org.apache.commons:commons-collections4:jar:4.4:compile

But starting from 3.4.2 release, Hadoop drops it: https://issues.apache.org/jira/browse/HADOOP-15760
Time to clean our code too and completely migrate to 4.x :)

Documentation

No user-visible changes

Testing

Unit tests

@rymarm rymarm requested review from cgivre and jnturton May 22, 2025 13:39
@cgivre cgivre changed the title DRILL-8525: migrate fully to Apache Commons Collections 4.x DRILL-8525: Migrate Fully to Apache Commons Collections 4.x May 22, 2025
Copy link
Copy Markdown
Contributor

@cgivre cgivre left a comment

Choose a reason for hiding this comment

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

LGTM +1.
Thanks for catching this. I don't know if this would be out of scope for this PR, but would it make sense to bump the Hadoop version to the latest version, or is that a separate PR?

@rymarm
Copy link
Copy Markdown
Member Author

rymarm commented May 23, 2025

@cgivre At first, I wanted to bump Hadoop version, but then checked the release notes, and I think it will be better to double check it, and make changes to Drill if needed, like, for example, for this:

Use modified jersey-json 1.20 in https://github.com/pjfanning/jersey-1.x/tree/v1.20 that uses Jackson 2.x. By this change, Jackson 1.x dependency has been removed from Hadoop. downstream applications which explicitly exclude jersey from transitive dependencies must now exclude com.github.pjfanning:jersey-json

Let's do it in a separate PR.

https://hadoop.apache.org/docs/r3.4.0/hadoop-project-dist/hadoop-common/release/3.4.0/RELEASENOTES.3.4.0.html
https://hadoop.apache.org/docs/r3.4.1/hadoop-project-dist/hadoop-common/release/3.4.1/RELEASENOTES.3.4.1.html

@cgivre cgivre merged commit 4663992 into apache:master May 23, 2025
7 checks passed
cgivre pushed a commit to cgivre/drill that referenced this pull request Mar 25, 2026
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.

2 participants