@@ -86,13 +86,12 @@ private Upgrade resolveUpgrade(Library library, Map<String, Library> libraries)
86
86
87
87
private List <VersionOption > getVersionOptions (Library library , Map <String , Library > libraries ) {
88
88
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 );
95
90
}
91
+ return determineResolvedVersionOptions (library );
92
+ }
93
+
94
+ private List <VersionOption > determineResolvedVersionOptions (Library library ) {
96
95
Map <String , SortedSet <DependencyVersion >> moduleVersions = new LinkedHashMap <>();
97
96
DependencyVersion libraryVersion = library .getVersion ().getVersion ();
98
97
for (Group group : library .getGroups ()) {
@@ -120,6 +119,18 @@ private List<VersionOption> getVersionOptions(Library library, Map<String, Libra
120
119
.collect (Collectors .toList ());
121
120
}
122
121
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
+
123
134
private VersionOption alignedVersionOption (Library library , Map <String , Library > libraries ) {
124
135
VersionAlignment versionAlignment = library .getVersion ().getVersionAlignment ();
125
136
Library alignmentLibrary = libraries .get (versionAlignment .getLibraryName ());
@@ -148,8 +159,9 @@ private VersionOption alignedVersionOption(Library library, Map<String, Library>
148
159
throw new InvalidUserDataException ("Cannot align with library '" + versionAlignment .getLibraryName ()
149
160
+ "' as it uses multiple different versions of this library's modules" );
150
161
}
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 );
153
165
}
154
166
155
167
private boolean isPermitted (DependencyVersion dependencyVersion , List <ProhibitedVersion > prohibitedVersions ) {
0 commit comments