Add ExtensionResolutionExceptionFacade for Maven 3.x/4.x compatibility #2066
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces a new
ExtensionResolutionExceptionFacadeinorg.eclipse.m2e.maven.runtimeto abstract the handling ofExtensionResolutionException, following the same pattern as the existingLifecycleExecutionPlanCalculatorFacade.Background
Maven 4.x may introduce API changes to
ExtensionResolutionException. To prepare for this and maintain compatibility across Maven versions, we need a facade pattern that isolates direct usage of this exception class.Changes
New Facade Class
Created
ExtensionResolutionExceptionFacadewith:ExtensionResolutionExceptionthrowForFile(File file)that throwsPlexusContainerExceptionwith contextual informationUpdated PlexusContainerManager
Refactored the exception handling in
PlexusContainerManager.aquire(File basedir):ExtensionResolutionExceptionhandling with the facadeExample Usage
Benefits
This change is a prerequisite for supporting Maven 4.x while maintaining backward compatibility with Maven 3.x.
Original prompt
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.