Skip to content

Commit 60009a8

Browse files
committed
Merge branch '3.3.x' into redis-stack-service-connection
2 parents 051ec7c + 22413bd commit 60009a8

File tree

6 files changed

+96
-55
lines changed

6 files changed

+96
-55
lines changed

buildSrc/src/main/java/org/springframework/boot/build/architecture/ArchitecturePlugin.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2023 the original author or authors.
2+
* Copyright 2012-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -51,6 +51,7 @@ private void registerTasks(Project project) {
5151
(task) -> {
5252
task.setClasses(sourceSet.getOutput().getClassesDirs());
5353
task.getResourcesDirectory().set(sourceSet.getOutput().getResourcesDir());
54+
task.dependsOn(sourceSet.getProcessResourcesTaskName());
5455
task.setDescription("Checks the architecture of the classes of the " + sourceSet.getName()
5556
+ " source set.");
5657
task.setGroup(LifecycleBasePlugin.VERIFICATION_GROUP);

buildSrc/src/main/java/org/springframework/boot/build/bom/Library.java

Lines changed: 60 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import org.gradle.api.Project;
3434
import org.gradle.api.artifacts.Configuration;
3535
import org.gradle.api.artifacts.Dependency;
36-
import org.gradle.api.artifacts.dsl.DependencyHandler;
3736
import org.gradle.api.artifacts.result.DependencyResult;
3837

3938
import org.springframework.boot.build.bom.bomr.version.DependencyVersion;
@@ -398,17 +397,10 @@ public static class VersionAlignment {
398397
}
399398

400399
public Set<String> resolve() {
401-
if (this.managedBy == null) {
402-
throw new IllegalStateException("Version alignment without managedBy is not supported");
403-
}
404400
if (this.alignedVersions != null) {
405401
return this.alignedVersions;
406402
}
407-
Library managingLibrary = this.libraries.stream()
408-
.filter((candidate) -> this.managedBy.equals(candidate.getName()))
409-
.findFirst()
410-
.orElseThrow(() -> new IllegalStateException("Managing library '" + this.managedBy + "' not found."));
411-
Map<String, String> versions = resolveAligningDependencies(managingLibrary);
403+
Map<String, String> versions = resolveAligningDependencies();
412404
Set<String> versionsInLibrary = new HashSet<>();
413405
for (Group group : this.groups) {
414406
for (Module module : group.getModules()) {
@@ -428,18 +420,8 @@ public Set<String> resolve() {
428420
return this.alignedVersions;
429421
}
430422

431-
private Map<String, String> resolveAligningDependencies(Library manager) {
432-
DependencyHandler dependencyHandler = this.project.getDependencies();
433-
List<Dependency> boms = manager.getGroups()
434-
.stream()
435-
.flatMap((group) -> group.getBoms()
436-
.stream()
437-
.map((bom) -> dependencyHandler
438-
.platform(group.getId() + ":" + bom + ":" + manager.getVersion().getVersion())))
439-
.toList();
440-
List<Dependency> dependencies = new ArrayList<>();
441-
dependencies.addAll(boms);
442-
dependencies.add(dependencyHandler.create(this.from));
423+
private Map<String, String> resolveAligningDependencies() {
424+
List<Dependency> dependencies = getAligningDependencies();
443425
Configuration alignmentConfiguration = this.project.getConfigurations()
444426
.detachedConfiguration(dependencies.toArray(new Dependency[0]));
445427
Map<String, String> versions = new HashMap<>();
@@ -452,6 +434,58 @@ private Map<String, String> resolveAligningDependencies(Library manager) {
452434
return versions;
453435
}
454436

437+
private List<Dependency> getAligningDependencies() {
438+
if (this.managedBy == null) {
439+
Library fromLibrary = findFromLibrary();
440+
return List
441+
.of(this.project.getDependencies().create(this.from + ":" + fromLibrary.getVersion().getVersion()));
442+
}
443+
else {
444+
Library managingLibrary = findManagingLibrary();
445+
List<Dependency> boms = getBomDependencies(managingLibrary);
446+
List<Dependency> dependencies = new ArrayList<>();
447+
dependencies.addAll(boms);
448+
dependencies.add(this.project.getDependencies().create(this.from));
449+
return dependencies;
450+
}
451+
}
452+
453+
private Library findFromLibrary() {
454+
for (Library library : this.libraries) {
455+
for (Group group : library.getGroups()) {
456+
for (Module module : group.getModules()) {
457+
if (this.from.equals(group.getId() + ":" + module.getName())) {
458+
return library;
459+
}
460+
}
461+
}
462+
}
463+
return null;
464+
}
465+
466+
private Library findManagingLibrary() {
467+
if (this.managedBy == null) {
468+
return null;
469+
}
470+
return this.libraries.stream()
471+
.filter((candidate) -> this.managedBy.equals(candidate.getName()))
472+
.findFirst()
473+
.orElseThrow(() -> new IllegalStateException("Managing library '" + this.managedBy + "' not found."));
474+
}
475+
476+
private List<Dependency> getBomDependencies(Library manager) {
477+
if (manager == null) {
478+
return Collections.emptyList();
479+
}
480+
return manager.getGroups()
481+
.stream()
482+
.flatMap((group) -> group.getBoms()
483+
.stream()
484+
.map((bom) -> this.project.getDependencies()
485+
.platform(group.getId() + ":" + bom + ":" + manager.getVersion().getVersion())))
486+
.toList();
487+
}
488+
455489
String getFrom() {
456490
return this.from;
457491
}
@@ -462,7 +496,11 @@ String getManagedBy() {
462496

463497
@Override
464498
public String toString() {
465-
return "version from dependencies of " + this.from + " that is managed by " + this.managedBy;
499+
String result = "version from dependencies of " + this.from;
500+
if (this.managedBy != null) {
501+
result += " that is managed by " + this.managedBy;
502+
}
503+
return result;
466504
}
467505

468506
}

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ assertjVersion=3.25.3
99
commonsCodecVersion=1.16.1
1010
graalVersion=22.3
1111
hamcrestVersion=2.2
12-
jacksonVersion=2.17.1
13-
junitJupiterVersion=5.10.2
12+
jacksonVersion=2.17.2
13+
junitJupiterVersion=5.10.3
1414
kotlinVersion=1.9.24
1515
mavenVersion=3.9.4
1616
nativeBuildToolsVersion=0.10.2

settings.gradle

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ pluginManagement {
1919
}
2020

2121
plugins {
22-
id "com.gradle.develocity" version "3.17.2"
23-
id "io.spring.ge.conventions" version "0.0.17"
22+
id "com.gradle.develocity" version "3.17.5"
23+
id "io.spring.develocity.conventions" version "0.0.19"
2424
}
2525

2626
rootProject.name="spring-boot-build"
@@ -35,13 +35,6 @@ settings.gradle.projectsLoaded {
3535
value('Toolchain version', toolchainVersion)
3636
tag("JDK-$toolchainVersion")
3737
}
38-
def buildDir = settings.gradle.rootProject.getBuildDir()
39-
buildDir.mkdirs()
40-
new File(buildDir, "build-scan-uri.txt").text = "build scan not generated"
41-
buildScanPublished { scan ->
42-
buildDir.mkdirs()
43-
new File(buildDir, "build-scan-uri.txt").text = "<${scan.buildScanUri}|build scan>\n"
44-
}
4538
}
4639
}
4740
}

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitTemplateConfigurer.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -108,17 +108,17 @@ public void configure(RabbitTemplate template, ConnectionFactory connectionFacto
108108
map.from(templateProperties::isObservationEnabled).to(template::setObservationEnabled);
109109
map.from(templateProperties::getAllowedListPatterns)
110110
.whenNot(CollectionUtils::isEmpty)
111-
.to((allowListPatterns) -> setAllowedListPatterns(template.getMessageConverter(), allowListPatterns));
111+
.to((allowedListPatterns) -> setAllowedListPatterns(template.getMessageConverter(), allowedListPatterns));
112112
}
113113

114-
private void setAllowedListPatterns(MessageConverter messageConverter, List<String> allowListPatterns) {
114+
private void setAllowedListPatterns(MessageConverter messageConverter, List<String> allowedListPatterns) {
115115
if (messageConverter instanceof AllowedListDeserializingMessageConverter allowedListDeserializingMessageConverter) {
116-
allowedListDeserializingMessageConverter.setAllowedListPatterns(allowListPatterns);
116+
allowedListDeserializingMessageConverter.setAllowedListPatterns(allowedListPatterns);
117117
return;
118118
}
119-
throw new InvalidConfigurationPropertyValueException("spring.rabbitmq.template.allow-list-patterns",
120-
allowListPatterns,
121-
"Allow list patterns can only be applied to a AllowedListDeserializingMessageConverter");
119+
throw new InvalidConfigurationPropertyValueException("spring.rabbitmq.template.allowed-list-patterns",
120+
allowedListPatterns,
121+
"Allowed list patterns can only be applied to an AllowedListDeserializingMessageConverter");
122122
}
123123

124124
private boolean determineMandatoryFlag() {

spring-boot-project/spring-boot-dependencies/build.gradle

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ bom {
155155
releaseNotes("https://github.com/mojohaus/build-helper-maven-plugin/releases/tag/{version}")
156156
}
157157
}
158-
library("Byte Buddy", "1.14.17") {
158+
library("Byte Buddy", "1.14.18") {
159159
group("net.bytebuddy") {
160160
modules = [
161161
"byte-buddy",
@@ -306,7 +306,7 @@ bom {
306306
]
307307
}
308308
}
309-
library("Dependency Management Plugin", "1.1.5") {
309+
library("Dependency Management Plugin", "1.1.6") {
310310
group("io.spring.gradle") {
311311
modules = [
312312
"dependency-management-plugin"
@@ -441,11 +441,16 @@ bom {
441441
]
442442
}
443443
}
444-
library("GraphQL Java", "22.0") {
444+
library("GraphQL Java", "22.1") {
445445
prohibit {
446446
startsWith(["2018-", "2019-", "2020-", "2021-", "230521-"])
447447
because "These are snapshots that we don't want to see"
448448
}
449+
alignWith {
450+
version {
451+
from "org.springframework.graphql:spring-graphql"
452+
}
453+
}
449454
group("com.graphql-java") {
450455
modules = [
451456
"graphql-java"
@@ -456,7 +461,7 @@ bom {
456461
releaseNotes("https://github.com/graphql-java/graphql-java/releases/tag/v{version}")
457462
}
458463
}
459-
library("Groovy", "4.0.21") {
464+
library("Groovy", "4.0.22") {
460465
group("org.apache.groovy") {
461466
imports = [
462467
"groovy-bom"
@@ -602,7 +607,7 @@ bom {
602607
]
603608
}
604609
}
605-
library("HttpCore5", "5.2.4") {
610+
library("HttpCore5", "5.2.5") {
606611
group("org.apache.httpcomponents.core5") {
607612
modules = [
608613
"httpcore5",
@@ -859,7 +864,7 @@ bom {
859864
]
860865
}
861866
}
862-
library("Jetty", "12.0.10") {
867+
library("Jetty", "12.0.11") {
863868
group("org.eclipse.jetty.ee10") {
864869
imports = [
865870
"jetty-ee10-bom"
@@ -923,7 +928,7 @@ bom {
923928
releaseNotes("https://github.com/netplex/json-smart-v2/releases/tag/{version}")
924929
}
925930
}
926-
library("JsonAssert", "1.5.1") {
931+
library("JsonAssert", "1.5.3") {
927932
group("org.skyscreamer") {
928933
modules = [
929934
"jsonassert"
@@ -961,7 +966,7 @@ bom {
961966
releaseNotes("https://junit.org/junit5/docs/{version}/release-notes")
962967
}
963968
}
964-
library("Kafka", "3.7.0") {
969+
library("Kafka", "3.7.1") {
965970
group("org.apache.kafka") {
966971
modules = [
967972
"connect",
@@ -1095,7 +1100,7 @@ bom {
10951100
site("https://logback.qos.ch")
10961101
}
10971102
}
1098-
library("Lombok", "1.18.32") {
1103+
library("Lombok", "1.18.34") {
10991104
group("org.projectlombok") {
11001105
modules = [
11011106
"lombok"
@@ -1243,7 +1248,7 @@ bom {
12431248
]
12441249
}
12451250
}
1246-
library("Micrometer", "1.13.2-SNAPSHOT") {
1251+
library("Micrometer", "1.13.2") {
12471252
considerSnapshots()
12481253
group("io.micrometer") {
12491254
modules = [
@@ -1262,7 +1267,7 @@ bom {
12621267
releaseNotes("https://github.com/micrometer-metrics/micrometer/releases/tag/v{version}")
12631268
}
12641269
}
1265-
library("Micrometer Tracing", "1.3.2-SNAPSHOT") {
1270+
library("Micrometer Tracing", "1.3.2") {
12661271
considerSnapshots()
12671272
group("io.micrometer") {
12681273
imports = [
@@ -1303,7 +1308,7 @@ bom {
13031308
releaseNotes("https://github.com/mongodb/mongo-java-driver/releases/tag/r{version}")
13041309
}
13051310
}
1306-
library("MSSQL JDBC", "12.6.2.jre11") {
1311+
library("MSSQL JDBC", "12.6.3.jre11") {
13071312
prohibit {
13081313
endsWith(".jre8")
13091314
because "we want to use the jre11 version"
@@ -1354,7 +1359,7 @@ bom {
13541359
]
13551360
}
13561361
}
1357-
library("Neo4j Java Driver", "5.21.0") {
1362+
library("Neo4j Java Driver", "5.22.0") {
13581363
alignWith {
13591364
version {
13601365
from "org.springframework.data:spring-data-neo4j"
@@ -1573,7 +1578,7 @@ bom {
15731578
]
15741579
}
15751580
}
1576-
library("R2DBC MariaDB", "1.2.0") {
1581+
library("R2DBC MariaDB", "1.2.1") {
15771582
group("org.mariadb") {
15781583
modules = [
15791584
"r2dbc-mariadb"
@@ -1659,7 +1664,7 @@ bom {
16591664
]
16601665
}
16611666
}
1662-
library("Reactor Bom", "2023.0.7") {
1667+
library("Reactor Bom", "2023.0.8") {
16631668
considerSnapshots()
16641669
calendarName = "Reactor"
16651670
group("io.projectreactor") {
@@ -2192,6 +2197,10 @@ bom {
21922197
}
21932198
}
21942199
library("Undertow", "2.3.13.Final") {
2200+
prohibit {
2201+
versionRange "[2.3.14.Final]"
2202+
because "it contains a regression (https://issues.redhat.com/browse/UNDERTOW-2420)"
2203+
}
21952204
group("io.undertow") {
21962205
modules = [
21972206
"undertow-core",

0 commit comments

Comments
 (0)