From 9e6c27eda6d1faebf2089e0b897f85cacac40819 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Tue, 19 Nov 2024 13:11:37 +0000 Subject: [PATCH] Tidy up conditions for servlet and inprocess --- .../server/GrpcServerFactoryAutoConfiguration.java | 2 +- .../InProcessGrpcServerFactoryAutoConfiguration.java | 5 +++++ .../additional-spring-configuration-metadata.json | 11 +++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 spring-grpc-test/src/main/resources/META-INF/additional-spring-configuration-metadata.json diff --git a/spring-grpc-spring-boot-autoconfigure/src/main/java/org/springframework/grpc/autoconfigure/server/GrpcServerFactoryAutoConfiguration.java b/spring-grpc-spring-boot-autoconfigure/src/main/java/org/springframework/grpc/autoconfigure/server/GrpcServerFactoryAutoConfiguration.java index bb27b57..731543f 100644 --- a/spring-grpc-spring-boot-autoconfigure/src/main/java/org/springframework/grpc/autoconfigure/server/GrpcServerFactoryAutoConfiguration.java +++ b/spring-grpc-spring-boot-autoconfigure/src/main/java/org/springframework/grpc/autoconfigure/server/GrpcServerFactoryAutoConfiguration.java @@ -64,7 +64,7 @@ public class GrpcServerFactoryAutoConfiguration { } @Configuration(proxyBeanMethods = false) - @ConditionalOnWebApplication + @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) static class GrpcServletConfiguration { @Bean diff --git a/spring-grpc-test/src/main/java/org/springframework/grpc/test/InProcessGrpcServerFactoryAutoConfiguration.java b/spring-grpc-test/src/main/java/org/springframework/grpc/test/InProcessGrpcServerFactoryAutoConfiguration.java index 48aaab0..8c8d795 100644 --- a/spring-grpc-test/src/main/java/org/springframework/grpc/test/InProcessGrpcServerFactoryAutoConfiguration.java +++ b/spring-grpc-test/src/main/java/org/springframework/grpc/test/InProcessGrpcServerFactoryAutoConfiguration.java @@ -18,6 +18,8 @@ package org.springframework.grpc.test; import java.util.List; import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnNotWebApplication; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; @@ -26,14 +28,17 @@ import org.springframework.grpc.autoconfigure.server.GrpcServerFactoryAutoConfig import org.springframework.grpc.server.ServerBuilderCustomizer; import org.springframework.grpc.server.service.GrpcServiceDiscoverer; +import io.grpc.BindableService; import io.grpc.inprocess.InProcessServerBuilder; @AutoConfiguration(before = { GrpcServerFactoryAutoConfiguration.class, GrpcClientAutoConfiguration.class }) @ConditionalOnProperty(prefix = "spring.grpc.inprocess", name = "enabled", havingValue = "true", matchIfMissing = true) +@ConditionalOnClass(BindableService.class) @ConditionalOnNotWebApplication public class InProcessGrpcServerFactoryAutoConfiguration { @Bean + @ConditionalOnBean(BindableService.class) InProcessGrpcServerFactory grpcServerFactory(GrpcServiceDiscoverer grpcServicesDiscoverer, List> customizers) { InProcessGrpcServerFactory factory = new InProcessGrpcServerFactory("0.0.0.0:0", customizers); diff --git a/spring-grpc-test/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-grpc-test/src/main/resources/META-INF/additional-spring-configuration-metadata.json new file mode 100644 index 0000000..7c5e6cc --- /dev/null +++ b/spring-grpc-test/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -0,0 +1,11 @@ +{ + "groups": [], + "properties": [ + { + "name": "spring.grpc.inprocess.enabled", + "type": "java.lang.Boolean", + "description": "Whether to enable the in-process server and client for testing.", + "defaultValue": true + } + ] +}