Browse Source

Merge branch '3.4.x'

Closes gh-44136
pull/44100/head
Andy Wilkinson 1 year ago
parent
commit
271e2ec16b
  1. 17
      buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/InteractiveUpgradeResolver.java
  2. 15
      buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/StandardLibraryUpdateResolver.java

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

@ -23,10 +23,13 @@ import java.util.HashMap; @@ -23,10 +23,13 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import org.gradle.api.internal.tasks.userinput.UserInputHandler;
import org.springframework.boot.build.bom.Library;
import org.springframework.boot.build.bom.Library.VersionAlignment;
import org.springframework.boot.build.bom.bomr.version.DependencyVersion;
/**
* Interactive {@link UpgradeResolver} that uses command line input to choose the upgrades
@ -69,11 +72,23 @@ public final class InteractiveUpgradeResolver implements UpgradeResolver { @@ -69,11 +72,23 @@ public final class InteractiveUpgradeResolver implements UpgradeResolver {
if (versionOptions.isEmpty()) {
return null;
}
VersionOption defaultOption = new VersionOption(library.getVersion().getVersion());
VersionOption defaultOption = defaultOption(library);
VersionOption selected = selectOption(defaultOption, library, versionOptions);
return (selected.equals(defaultOption)) ? null : selected.upgrade(library);
}
private VersionOption defaultOption(Library library) {
VersionAlignment alignment = library.getVersionAlignment();
Set<String> alignedVersions = (alignment != null) ? alignment.resolve() : null;
if (alignedVersions != null && alignedVersions.size() == 1) {
DependencyVersion alignedVersion = DependencyVersion.parse(alignedVersions.iterator().next());
if (alignedVersion.equals(library.getVersion().getVersion())) {
return new VersionOption.AlignedVersionOption(alignedVersion, alignment);
}
}
return new VersionOption(library.getVersion().getVersion());
}
private VersionOption selectOption(VersionOption defaultOption, Library library,
List<VersionOption> versionOptions) {
VersionOption selected = this.userInputHandler.askUser((questions) -> {

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

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2012-2024 the original author or authors.
* Copyright 2012-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -77,8 +77,17 @@ class StandardLibraryUpdateResolver implements LibraryUpdateResolver { @@ -77,8 +77,17 @@ class StandardLibraryUpdateResolver implements LibraryUpdateResolver {
}
protected List<VersionOption> getVersionOptions(Library library) {
VersionOption option = determineAlignedVersionOption(library);
return (option != null) ? List.of(option) : determineResolvedVersionOptions(library);
List<VersionOption> options = new ArrayList<>();
VersionOption alignedOption = determineAlignedVersionOption(library);
if (alignedOption != null) {
options.add(alignedOption);
}
for (VersionOption resolvedOption : determineResolvedVersionOptions(library)) {
if (alignedOption == null || !alignedOption.getVersion().equals(resolvedOption.getVersion())) {
options.add(resolvedOption);
}
}
return options;
}
private VersionOption determineAlignedVersionOption(Library library) {

Loading…
Cancel
Save