Skip to content

Commit 316d2cc

Browse files
committed
Don't offer upgrade for version that is already aligned
See gh-27044
1 parent a7872f4 commit 316d2cc

File tree

1 file changed

+20
-8
lines changed

1 file changed

+20
-8
lines changed

buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/InteractiveUpgradeResolver.java

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,12 @@ private Upgrade resolveUpgrade(Library library, Map<String, Library> libraries)
8686

8787
private List<VersionOption> getVersionOptions(Library library, Map<String, Library> libraries) {
8888
if (library.getVersion().getVersionAlignment() != null) {
89-
VersionOption alignedVersionOption = alignedVersionOption(library, libraries);
90-
if (!isPermitted(alignedVersionOption.version, library.getProhibitedVersions())) {
91-
throw new InvalidUserDataException("Version alignment failed. Version " + alignedVersionOption.version
92-
+ " from " + library.getName() + " is prohibited");
93-
}
94-
return Collections.singletonList(alignedVersionOption);
89+
return determineAlignedVersionOption(library, libraries);
9590
}
91+
return determineResolvedVersionOptions(library);
92+
}
93+
94+
private List<VersionOption> determineResolvedVersionOptions(Library library) {
9695
Map<String, SortedSet<DependencyVersion>> moduleVersions = new LinkedHashMap<>();
9796
DependencyVersion libraryVersion = library.getVersion().getVersion();
9897
for (Group group : library.getGroups()) {
@@ -120,6 +119,18 @@ private List<VersionOption> getVersionOptions(Library library, Map<String, Libra
120119
.collect(Collectors.toList());
121120
}
122121

122+
private List<VersionOption> determineAlignedVersionOption(Library library, Map<String, Library> libraries) {
123+
VersionOption alignedVersionOption = alignedVersionOption(library, libraries);
124+
if (alignedVersionOption == null) {
125+
return Collections.emptyList();
126+
}
127+
if (!isPermitted(alignedVersionOption.version, library.getProhibitedVersions())) {
128+
throw new InvalidUserDataException("Version alignment failed. Version " + alignedVersionOption.version
129+
+ " from " + library.getName() + " is prohibited");
130+
}
131+
return Collections.singletonList(alignedVersionOption);
132+
}
133+
123134
private VersionOption alignedVersionOption(Library library, Map<String, Library> libraries) {
124135
VersionAlignment versionAlignment = library.getVersion().getVersionAlignment();
125136
Library alignmentLibrary = libraries.get(versionAlignment.getLibraryName());
@@ -148,8 +159,9 @@ private VersionOption alignedVersionOption(Library library, Map<String, Library>
148159
throw new InvalidUserDataException("Cannot align with library '" + versionAlignment.getLibraryName()
149160
+ "' as it uses multiple different versions of this library's modules");
150161
}
151-
String requiredVersion = versions.iterator().next();
152-
return new AlignedVersionOption(DependencyVersion.parse(requiredVersion), alignmentLibrary);
162+
DependencyVersion version = DependencyVersion.parse(versions.iterator().next());
163+
return library.getVersion().getVersion().equals(version) ? null
164+
: new AlignedVersionOption(version, alignmentLibrary);
153165
}
154166

155167
private boolean isPermitted(DependencyVersion dependencyVersion, List<ProhibitedVersion> prohibitedVersions) {

0 commit comments

Comments
 (0)