Browse Source

Add dependency management for gRPC libraries

Closes gh-49670
pull/46608/head
Phillip Webb 2 weeks ago
parent
commit
b0c00d7602
  1. 7
      buildSrc/src/main/java/org/springframework/boot/build/bom/BomExtension.java
  2. 5
      buildSrc/src/main/java/org/springframework/boot/build/context/properties/DocumentConfigurationProperties.java
  3. 1
      gradle.properties
  4. 62
      platform/spring-boot-dependencies/build.gradle
  5. 5
      platform/spring-boot-internal-dependencies/build.gradle

7
buildSrc/src/main/java/org/springframework/boot/build/bom/BomExtension.java

@ -93,6 +93,13 @@ public class BomExtension { @@ -93,6 +93,13 @@ public class BomExtension {
return this.libraries;
}
public Library getLibrary(String name) {
return getLibraries().stream()
.filter((library) -> library.getName().equals(name))
.findFirst()
.orElseThrow(() -> new IllegalStateException("No library found named '%s'".formatted(name)));
}
public void upgrade(Action<UpgradeHandler> action) {
action.execute(this.upgradeHandler);
}

5
buildSrc/src/main/java/org/springframework/boot/build/context/properties/DocumentConfigurationProperties.java

@ -63,6 +63,7 @@ public abstract class DocumentConfigurationProperties extends DefaultTask { @@ -63,6 +63,7 @@ public abstract class DocumentConfigurationProperties extends DefaultTask {
Snippets snippets = new Snippets(this.configurationPropertyMetadata, getDeprecated().getOrElse(false));
snippets.add("application-properties.core", "Core Properties", this::corePrefixes);
snippets.add("application-properties.cache", "Cache Properties", this::cachePrefixes);
snippets.add("application-properties.grpc", "gRPC Properties", this::grpcPrefixes);
snippets.add("application-properties.mail", "Mail Properties", this::mailPrefixes);
snippets.add("application-properties.json", "JSON Properties", this::jsonPrefixes);
snippets.add("application-properties.data", "Data Properties", this::dataPrefixes);
@ -115,6 +116,10 @@ public abstract class DocumentConfigurationProperties extends DefaultTask { @@ -115,6 +116,10 @@ public abstract class DocumentConfigurationProperties extends DefaultTask {
config.accept("spring.cache");
}
private void grpcPrefixes(Config prefix) {
prefix.accept("spring.grpc");
}
private void mailPrefixes(Config config) {
config.accept("spring.mail");
config.accept("spring.sendgrid");

1
gradle.properties

@ -24,5 +24,6 @@ snakeYamlVersion=2.6 @@ -24,5 +24,6 @@ snakeYamlVersion=2.6
springFrameworkVersion=7.0.6
springFramework60xVersion=6.0.23
tomcatVersion=11.0.18
protobufGradlePluginVersion=0.9.6
kotlin.stdlib.default.dependency=false

62
platform/spring-boot-dependencies/build.gradle

@ -562,6 +562,30 @@ bom { @@ -562,6 +562,30 @@ bom {
site("https://groovy-lang.org")
}
}
library("Grpc Java", "1.78.0") {
group("io.grpc") {
bom("grpc-bom")
}
links {
github("https://github.com/grpc/grpc-java")
docs("https://grpc.io/docs/languages/java/")
releaseNotes("https://github.com/grpc/grpc-java/releases/tag/v{version}")
}
}
library("Grpc Kotlin", "1.5.0") {
group("io.grpc") {
modules = [
"grpc-kotlin-stub" {
exclude group: "javax.annotation", module: "javax.annotation-api"
}
]
}
links {
github("https://github.com/grpc/grpc-kotlin")
docs("https://grpc.io/docs/languages/kotlin/")
releaseNotes("https://github.com/grpc/grpc-kotlin/releases/tag/v{version}")
}
}
library("Gson", "2.13.2") {
group("com.google.code.gson") {
modules = [
@ -1883,6 +1907,27 @@ bom { @@ -1883,6 +1907,27 @@ bom {
releaseNotes("https://qpid.apache.org/releases/qpid-protonj2-{version}/release-notes.html")
}
}
library("Protobuf Common Protos", "2.65.0") {
group("com.google.api.grpc") {
modules = [
"proto-google-common-protos"
]
}
links {
github("https://github.com/googleapis/sdk-platform-java")
releaseNotes("https://github.com/googleapis/sdk-platform-java/releases/tag/v-{version}")
}
}
library("Protobuf Java", "4.34.0") {
group("com.google.protobuf") {
bom("protobuf-bom")
}
links {
site("https://protobuf.dev")
github("https://github.com/protocolbuffers/protobuf")
releaseNotes("https://github.com/protocolbuffers/protobuf/releases/tag/v{version}")
}
}
library("Quartz", "2.5.2") {
group("org.quartz-scheduler") {
modules = [
@ -2525,6 +2570,23 @@ bom { @@ -2525,6 +2570,23 @@ bom {
releaseNotes("https://github.com/spring-projects/spring-graphql/releases/tag/v{version}")
}
}
library("Spring gRPC", "1.1.0-SNAPSHOT") {
considerSnapshots()
group("org.springframework.grpc") {
modules = [
"spring-grpc-core"
]
}
links {
site("https://spring.io/projects/spring-grpc")
github("https://github.com/spring-projects/spring-grpc")
javadoc(version -> "https://docs.spring.io/spring-grpc/docs/%s/api"
.formatted(version.forMajorMinorGeneration()), "org.springframework.grpc")
docs(version -> "https://docs.spring.io/spring-grpc/docs/%s/reference"
.formatted(version.forMajorMinorGeneration()))
releaseNotes("https://github.com/spring-projects/spring-grpc/releases/tag/v{version}")
}
}
library("Spring HATEOAS", "3.1.0-M1") {
considerSnapshots()
group("org.springframework.hateoas") {

5
platform/spring-boot-internal-dependencies/build.gradle

@ -94,11 +94,6 @@ bom { @@ -94,11 +94,6 @@ bom {
]
}
}
library("gRPC", "1.73.0") {
group("io.grpc") {
bom("grpc-bom")
}
}
library("Janino", "3.1.12") {
group("org.codehaus.janino") {
bom("janino") {

Loading…
Cancel
Save