More care taken with starting netty server in webapp

This commit is contained in:
Dave Syer
2025-04-04 15:32:19 +01:00
parent a39904ca1c
commit 07e9e14d26
2 changed files with 10 additions and 3 deletions

View File

@@ -27,6 +27,7 @@ import org.springframework.boot.autoconfigure.condition.AllNestedConditions;
import org.springframework.boot.autoconfigure.condition.AnyNestedCondition;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnNotWebApplication;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
@@ -139,7 +140,13 @@ public class GrpcServerFactoryAutoConfiguration {
}
@ConditionalOnMissingClass("io.grpc.servlet.jakarta.GrpcServlet")
static class OnGrpcServletClass {
}
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
@ConditionalOnClass(GrpcServlet.class)
@ConditionalOnProperty(prefix = "spring.grpc.server", name = "servlet.enabled", havingValue = "false",
matchIfMissing = false)
static class OnExplicitlyDisabledServlet {

View File

@@ -25,6 +25,7 @@ import static org.mockito.Mockito.when;
import org.junit.jupiter.api.Test;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.ssl.SslAutoConfiguration;
import org.springframework.boot.test.context.FilteredClassLoader;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
@@ -52,9 +53,8 @@ class GrpcServletAutoConfigurationTests {
ServerServiceDefinition serviceDefinition = ServerServiceDefinition.builder("my-service").build();
when(service.bindService()).thenReturn(serviceDefinition);
// NOTE: we use noop server lifecycle to avoid startup
return new WebApplicationContextRunner()
.withConfiguration(
AutoConfigurations.of(GrpcServerAutoConfiguration.class, GrpcServerFactoryAutoConfiguration.class))
return new WebApplicationContextRunner().withConfiguration(AutoConfigurations.of(SslAutoConfiguration.class,
GrpcServerAutoConfiguration.class, GrpcServerFactoryAutoConfiguration.class))
.withBean(BindableService.class, () -> service);
}