Skip to content

Centralize third-party dependency versions in the BOM#461

Open
ppkarwasz wants to merge 1 commit into
trunkfrom
centralize-third-party-versions
Open

Centralize third-party dependency versions in the BOM#461
ppkarwasz wants to merge 1 commit into
trunkfrom
centralize-third-party-versions

Conversation

@ppkarwasz

Copy link
Copy Markdown
Member

Summary

All third-party dependency versions are now declared in a single place, flume-third-party-dependencies (the BOM). Previously flume-parent and flume-ng-node also declared dependency versions directly, some of them duplicating properties already defined in the BOM.

Changes

  • flume-third-party/pom.xml
    • Absorbs the versions that were living elsewhere: junit, junit-jupiter-* / junit-vintage-engine, mockito-core, fest-reflect, system-rules, hadoop-minikdc, hadoop-mapreduce-client-core, apacheds-jdbm1, mockserver-netty, mockserver-client-java. The two previously hardcoded versions (2.0.0-M2, 3.10.8) are now properties for consistency.
    • dependencyManagement entries are ordered by artifactId.
    • Drops the redundant relativePath (../pom.xml is the Maven default) and clarifies the module description (it is a BOM).
  • flume-parent/pom.xml: dependencyManagement now holds only internal Flume modules; removed the leaked entries and their now-unused properties, plus the dead wiremock.version. The curator / hadoop / system-rules property duplication with the BOM is gone.
  • flume-ng-node/pom.xml: removed the local junit-jupiter.version property and the three inline <version> tags; the JUnit 5 deps now inherit the version from the BOM.

Verification

  • mvn validate passes across the whole reactor.
  • The effective POM for flume-ng-node confirms the JUnit 5 artifacts resolve to 5.12.2 via managed dependencies.

Note: external.protobuf.version stays in flume-parent because it feeds the protocArtifact (protoc compiler) config in flume-file-channel, which inherits it through the parent chain (BOM properties do not propagate to modules).

All third-party dependency versions now live in flume-third-party-dependencies,
so there is a single source of truth. Previously flume-parent and flume-ng-node
also declared versions (junit, mockito, hadoop test artifacts, mockserver, JUnit 5,
etc.), some duplicating properties already defined in the BOM.

The BOM dependencyManagement entries are now ordered by artifactId. Also drop the
redundant relativePath (../pom.xml is the Maven default) and clarify the module
description.

Assisted-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

1 participant