Propagate updated dependency management model to child modules#7312
Draft
steve-aom-elliott wants to merge 2 commits intomainfrom
Draft
Propagate updated dependency management model to child modules#7312steve-aom-elliott wants to merge 2 commits intomainfrom
steve-aom-elliott wants to merge 2 commits intomainfrom
Conversation
7c6970e to
4445f66
Compare
When ChangeManagedDependencyGroupIdAndArtifactId changes a parent POM's managed dependency coordinates, child modules that inherit from it need their resolved model updated even though their XML doesn't change. UpdateMavenModel now stores resolved module results in the execution context via UPDATED_MODULES_KEY. ChangeManagedDependencyGroupIdAndArtifactId picks these up in visitDocument and applies them to child modules before visiting their tags. When a child module's dependency resolution fails during the parent's model update (e.g., the child has an unversioned dependency on the old coordinates that no longer have a managed version), the child's resolved POM model is stored before rethrowing so the model updates are still available for pickup.
4445f66 to
a6fd930
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
ChangeManagedDependencyGroupIdAndArtifactIdchanges a parent POM's managed dependency coordinates, child modules now get their resolved model updated even though their XML doesn't changeUpdateMavenModelstores resolved module results in the execution context so they can be applied to child documents when visitedTest plan
ChangeManagedDependencyGroupIdAndArtifactIdTest.childModuleSeesUpdatedManagedDependencyFromParent— multi-module project where parent managed dep changes, child has unversioned dependency on old coordinates, verifies child model is updatedChangeDependencyGroupIdAndArtifactIdTest.childModuleWithUnversionedDependencyOnParentManagedDep— realistic scenario where both dependency and managed dependency are changed togetherrewrite-maventest suite (1287 tests) passes with no regressions