Skip to content

Forward port Maven 3.10.0 PluginDependenciesResolver changes#12329

Open
cstamas wants to merge 4 commits into
apache:masterfrom
cstamas:forward-port-plugin-dep-resolver
Open

Forward port Maven 3.10.0 PluginDependenciesResolver changes#12329
cstamas wants to merge 4 commits into
apache:masterfrom
cstamas:forward-port-plugin-dep-resolver

Conversation

@cstamas

@cstamas cstamas commented Jun 19, 2026

Copy link
Copy Markdown
Member

Also, restore binary compatibility that was broken in 4-beta-2.

This PR aligns PluginDependenciesResolver with changes happened in Maven 3.10.x, and also restores binary incompatibility happened in DefaultPluginDependenciesResolver that used to be injected directly.

Also, restore binary compatibility that was broken in 4-beta-2.

This PR aligns PluginDependenciesResolver with changes happened
in Maven 3.10.x, and also restores binary incompatibility happened
in DefaultPluginDependenciesResolver that used to be injected
directly.
@cstamas cstamas added this to the 4.1.0 milestone Jun 19, 2026
@cstamas cstamas self-assigned this Jun 19, 2026
@cstamas cstamas marked this pull request as ready for review June 19, 2026 11:23
@cstamas

cstamas commented Jun 19, 2026

Copy link
Copy Markdown
Member Author

@gnodet master is broken with this same error

@gnodet gnodet left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nice work aligning the Maven 4.x PluginDependenciesResolver with the 3.10.x changes and restoring the binary compatibility broken in 4-beta-2. The deprecation+delegation pattern is correctly applied, and switching to interface-based injection in BootstrapCoreExtensionManager is the right move.

A couple more observations not tied to specific lines:

  • TODO comment: Both BootstrapCoreExtensionManager files (compat and impl) have a TODO comment above the call site that still references resolveCoreExtension. Since the method is now resolveCoreExtensionAndFlatten and the method is now on the interface, the TODO may be partially addressed and could be refined.
  • @since 3.10.0 on new interface methods: The new methods use @since 3.10.0, which correctly references where they originated, but since Maven 4.x and 3.10.x are separate release lines, consumers reading the Maven 4.x javadoc might find this confusing. Flagging for awareness only.
  • No tests added: No new or modified tests, which is reasonable for an interface evolution / binary compat PR where the behavior is unchanged (new methods delegate to the same resolveInternal logic).

This review does not replace specialized AI review tools (CodeRabbit, Sourcery) or static analysis (SonarCloud).

Fully automatic review from Claude Code

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