commit
f7140d0401
|
@ -86,13 +86,12 @@ public final class InteractiveUpgradeResolver implements UpgradeResolver {
|
||||||
|
|
||||||
private List<VersionOption> getVersionOptions(Library library, Map<String, Library> libraries) {
|
private List<VersionOption> getVersionOptions(Library library, Map<String, Library> libraries) {
|
||||||
if (library.getVersion().getVersionAlignment() != null) {
|
if (library.getVersion().getVersionAlignment() != null) {
|
||||||
VersionOption alignedVersionOption = alignedVersionOption(library, libraries);
|
return determineAlignedVersionOption(library, libraries);
|
||||||
if (!isPermitted(alignedVersionOption.version, library.getProhibitedVersions())) {
|
|
||||||
throw new InvalidUserDataException("Version alignment failed. Version " + alignedVersionOption.version
|
|
||||||
+ " from " + library.getName() + " is prohibited");
|
|
||||||
}
|
}
|
||||||
return Collections.singletonList(alignedVersionOption);
|
return determineResolvedVersionOptions(library);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<VersionOption> determineResolvedVersionOptions(Library library) {
|
||||||
Map<String, SortedSet<DependencyVersion>> moduleVersions = new LinkedHashMap<>();
|
Map<String, SortedSet<DependencyVersion>> moduleVersions = new LinkedHashMap<>();
|
||||||
DependencyVersion libraryVersion = library.getVersion().getVersion();
|
DependencyVersion libraryVersion = library.getVersion().getVersion();
|
||||||
for (Group group : library.getGroups()) {
|
for (Group group : library.getGroups()) {
|
||||||
|
@ -120,6 +119,18 @@ public final class InteractiveUpgradeResolver implements UpgradeResolver {
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<VersionOption> determineAlignedVersionOption(Library library, Map<String, Library> libraries) {
|
||||||
|
VersionOption alignedVersionOption = alignedVersionOption(library, libraries);
|
||||||
|
if (alignedVersionOption == null) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
if (!isPermitted(alignedVersionOption.version, library.getProhibitedVersions())) {
|
||||||
|
throw new InvalidUserDataException("Version alignment failed. Version " + alignedVersionOption.version
|
||||||
|
+ " from " + library.getName() + " is prohibited");
|
||||||
|
}
|
||||||
|
return Collections.singletonList(alignedVersionOption);
|
||||||
|
}
|
||||||
|
|
||||||
private VersionOption alignedVersionOption(Library library, Map<String, Library> libraries) {
|
private VersionOption alignedVersionOption(Library library, Map<String, Library> libraries) {
|
||||||
VersionAlignment versionAlignment = library.getVersion().getVersionAlignment();
|
VersionAlignment versionAlignment = library.getVersion().getVersionAlignment();
|
||||||
Library alignmentLibrary = libraries.get(versionAlignment.getLibraryName());
|
Library alignmentLibrary = libraries.get(versionAlignment.getLibraryName());
|
||||||
|
@ -148,8 +159,9 @@ public final class InteractiveUpgradeResolver implements UpgradeResolver {
|
||||||
throw new InvalidUserDataException("Cannot align with library '" + versionAlignment.getLibraryName()
|
throw new InvalidUserDataException("Cannot align with library '" + versionAlignment.getLibraryName()
|
||||||
+ "' as it uses multiple different versions of this library's modules");
|
+ "' as it uses multiple different versions of this library's modules");
|
||||||
}
|
}
|
||||||
String requiredVersion = versions.iterator().next();
|
DependencyVersion version = DependencyVersion.parse(versions.iterator().next());
|
||||||
return new AlignedVersionOption(DependencyVersion.parse(requiredVersion), alignmentLibrary);
|
return library.getVersion().getVersion().equals(version) ? null
|
||||||
|
: new AlignedVersionOption(version, alignmentLibrary);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isPermitted(DependencyVersion dependencyVersion, List<ProhibitedVersion> prohibitedVersions) {
|
private boolean isPermitted(DependencyVersion dependencyVersion, List<ProhibitedVersion> prohibitedVersions) {
|
||||||
|
|
Loading…
Reference in New Issue