From 102d09e921b0e54070e8914af20057430a9fabec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D0=B0=D1=86=D1=83=D1=80=D0=B0=20=D0=A1=D0=B5=D1=80?= =?UTF-8?q?=D0=B3=D0=B5=D0=B9=20=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD?= =?UTF-8?q?=D0=B4=D1=80=D0=BE=D0=B2=D0=B8=D1=87?= Date: Fri, 6 Sep 2024 15:42:09 +0300 Subject: [PATCH] Feat(timeout) changed the name of timeout property to defaultRequestTimeout --- ...faultRequestTimeoutAutoConfiguration.java} | 14 ++++----- .../client/config/GrpcChannelProperties.java | 29 ++++++++++--------- ...RequestTimeoutSetupClientInterceptor.java} | 10 +++---- ...itional-spring-configuration-metadata.json | 2 +- ...ot.autoconfigure.AutoConfiguration.imports | 2 +- .../test/config/BaseAutoConfiguration.java | 4 +-- ...a => DefaultRequestTimeoutSetupTests.java} | 15 +++++----- 7 files changed, 39 insertions(+), 37 deletions(-) rename grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/autoconfigure/{GrpcClientTimeoutAutoConfiguration.java => GrpcClientDefaultRequestTimeoutAutoConfiguration.java} (78%) rename grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/interceptor/{TimeoutSetupClientInterceptor.java => DefaultRequestTimeoutSetupClientInterceptor.java} (77%) rename tests/src/test/java/net/devh/boot/grpc/test/setup/{TimeoutSetupTests.java => DefaultRequestTimeoutSetupTests.java} (87%) diff --git a/grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/autoconfigure/GrpcClientTimeoutAutoConfiguration.java b/grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/autoconfigure/GrpcClientDefaultRequestTimeoutAutoConfiguration.java similarity index 78% rename from grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/autoconfigure/GrpcClientTimeoutAutoConfiguration.java rename to grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/autoconfigure/GrpcClientDefaultRequestTimeoutAutoConfiguration.java index 79b66ad6..68fd79d3 100644 --- a/grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/autoconfigure/GrpcClientTimeoutAutoConfiguration.java +++ b/grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/autoconfigure/GrpcClientDefaultRequestTimeoutAutoConfiguration.java @@ -28,17 +28,17 @@ import lombok.extern.slf4j.Slf4j; import net.devh.boot.grpc.client.channelfactory.GrpcChannelConfigurer; import net.devh.boot.grpc.client.config.GrpcChannelsProperties; -import net.devh.boot.grpc.client.interceptor.TimeoutSetupClientInterceptor; +import net.devh.boot.grpc.client.interceptor.DefaultRequestTimeoutSetupClientInterceptor; /** - * The request timeout autoconfiguration for the client. + * The default request timeout autoconfiguration for the client. * *

* You can disable this config by using: *

* *
- * @ImportAutoConfiguration(exclude = GrpcClientTimeoutAutoConfiguration.class)
+ * @ImportAutoConfiguration(exclude = GrpcClientDefaultRequestTimeoutAutoConfiguration.class)
  * 
* * @author Sergei Batsura (batsura.sa@gmail.com) @@ -46,7 +46,7 @@ @Slf4j @Configuration(proxyBeanMethods = false) @AutoConfigureBefore(GrpcClientAutoConfiguration.class) -public class GrpcClientTimeoutAutoConfiguration { +public class GrpcClientDefaultRequestTimeoutAutoConfiguration { /** * Creates a {@link GrpcChannelConfigurer} bean applying the default request timeout from config to each new call @@ -54,16 +54,16 @@ public class GrpcClientTimeoutAutoConfiguration { * * @param props The properties for timeout configuration. * @return The GrpcChannelConfigurer bean with interceptor if timeout is configured. - * @see TimeoutSetupClientInterceptor + * @see DefaultRequestTimeoutSetupClientInterceptor */ @Bean GrpcChannelConfigurer timeoutGrpcChannelConfigurer(final GrpcChannelsProperties props) { requireNonNull(props, "properties"); return (channel, name) -> { - Duration timeout = props.getChannel(name).getTimeout(); + Duration timeout = props.getChannel(name).getDefaultRequestTimeout(); if (timeout != null && timeout.toMillis() > 0L) { - channel.intercept(new TimeoutSetupClientInterceptor(timeout)); + channel.intercept(new DefaultRequestTimeoutSetupClientInterceptor(timeout)); } }; } diff --git a/grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/config/GrpcChannelProperties.java b/grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/config/GrpcChannelProperties.java index 0fea730c..9044678f 100644 --- a/grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/config/GrpcChannelProperties.java +++ b/grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/config/GrpcChannelProperties.java @@ -120,31 +120,32 @@ public void setAddress(final String address) { } // -------------------------------------------------- - // Target Timeout + // Target DefaultRequestTimeout // -------------------------------------------------- - private Duration timeout = null; + private Duration defaultRequestTimeout = null; /** - * Gets the default timeout for each new call. + * Gets the default request timeout for each new call. * - * @return The connection timeout or null - * @see #setTimeout(Duration) + * @return The default request timeout or null + * @see #setDefaultRequestTimeout(Duration) */ - public Duration getTimeout() { - return this.timeout; + public Duration getDefaultRequestTimeout() { + return this.defaultRequestTimeout; } /** - * Set the default timeout duration for new calls (on a per call basis). By default and if zero value is configured, - * the timeout will not be used. The default timeout will be ignored, if a deadline has been applied manually. + * Set the default request timeout duration for new calls (on a per call basis). By default and if zero value is + * configured, the timeout will not be used. The default request timeout will be ignored, if a deadline has been + * applied manually. * - * @param timeout The connection timeout or null. + * @param defaultRequestTimeout the default request timeout or null. * * @see CallOptions#withDeadlineAfter(long, TimeUnit) */ - public void setTimeout(Duration timeout) { - this.timeout = timeout; + public void setDefaultRequestTimeout(Duration defaultRequestTimeout) { + this.defaultRequestTimeout = defaultRequestTimeout; } // -------------------------------------------------- @@ -509,8 +510,8 @@ public void copyDefaultsFrom(final GrpcChannelProperties config) { if (this.address == null) { this.address = config.address; } - if (this.timeout == null) { - this.timeout = config.timeout; + if (this.defaultRequestTimeout == null) { + this.defaultRequestTimeout = config.defaultRequestTimeout; } if (this.defaultLoadBalancingPolicy == null) { this.defaultLoadBalancingPolicy = config.defaultLoadBalancingPolicy; diff --git a/grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/interceptor/TimeoutSetupClientInterceptor.java b/grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/interceptor/DefaultRequestTimeoutSetupClientInterceptor.java similarity index 77% rename from grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/interceptor/TimeoutSetupClientInterceptor.java rename to grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/interceptor/DefaultRequestTimeoutSetupClientInterceptor.java index cfbec930..3a7e90cc 100644 --- a/grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/interceptor/TimeoutSetupClientInterceptor.java +++ b/grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/interceptor/DefaultRequestTimeoutSetupClientInterceptor.java @@ -34,12 +34,12 @@ * @author Sergei Batsura (batsura.sa@gmail.com) */ @Slf4j -public class TimeoutSetupClientInterceptor implements ClientInterceptor { +public class DefaultRequestTimeoutSetupClientInterceptor implements ClientInterceptor { - private final Duration timeout; + private final Duration defaultRequestTimeout; - public TimeoutSetupClientInterceptor(Duration timeout) { - this.timeout = requireNonNull(timeout, "timeout"); + public DefaultRequestTimeoutSetupClientInterceptor(Duration defaultRequestTimeout) { + this.defaultRequestTimeout = requireNonNull(defaultRequestTimeout, "defaultRequestTimeout"); } @Override @@ -50,7 +50,7 @@ public ClientCall interceptCall( if (callOptions.getDeadline() == null) { return next.newCall(method, - callOptions.withDeadlineAfter(timeout.toMillis(), TimeUnit.MILLISECONDS)); + callOptions.withDeadlineAfter(defaultRequestTimeout.toMillis(), TimeUnit.MILLISECONDS)); } else { return next.newCall(method, callOptions); } diff --git a/grpc-client-spring-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/grpc-client-spring-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json index bc69852a..d259292f 100644 --- a/grpc-client-spring-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/grpc-client-spring-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -108,7 +108,7 @@ "defaultValue": 0 }, { - "name": "grpc.client.GLOBAL.timeout", + "name": "grpc.client.GLOBAL.defaultRequestTimeout", "type": "java.time.Duration", "sourceType": "net.devh.boot.grpc.client.config.GrpcChannelProperties", "description": "The default timeout is applied to each new call. By default, and if a zero value is configured, the timeout will not be set. The default timeout will be ignored if a deadline has been set manually." diff --git a/grpc-client-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/grpc-client-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 15107b8b..1608d654 100644 --- a/grpc-client-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/grpc-client-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -4,4 +4,4 @@ net.devh.boot.grpc.client.autoconfigure.GrpcClientHealthAutoConfiguration net.devh.boot.grpc.client.autoconfigure.GrpcClientMicrometerTraceAutoConfiguration net.devh.boot.grpc.client.autoconfigure.GrpcClientSecurityAutoConfiguration net.devh.boot.grpc.client.autoconfigure.GrpcDiscoveryClientAutoConfiguration -net.devh.boot.grpc.client.autoconfigure.GrpcClientTimeoutAutoConfiguration +net.devh.boot.grpc.client.autoconfigure.GrpcClientDefaultRequestTimeoutAutoConfiguration diff --git a/tests/src/test/java/net/devh/boot/grpc/test/config/BaseAutoConfiguration.java b/tests/src/test/java/net/devh/boot/grpc/test/config/BaseAutoConfiguration.java index 928c9a3d..780cb77e 100644 --- a/tests/src/test/java/net/devh/boot/grpc/test/config/BaseAutoConfiguration.java +++ b/tests/src/test/java/net/devh/boot/grpc/test/config/BaseAutoConfiguration.java @@ -20,7 +20,7 @@ import org.springframework.context.annotation.Configuration; import net.devh.boot.grpc.client.autoconfigure.GrpcClientAutoConfiguration; -import net.devh.boot.grpc.client.autoconfigure.GrpcClientTimeoutAutoConfiguration; +import net.devh.boot.grpc.client.autoconfigure.GrpcClientDefaultRequestTimeoutAutoConfiguration; import net.devh.boot.grpc.common.autoconfigure.GrpcCommonCodecAutoConfiguration; import net.devh.boot.grpc.server.autoconfigure.GrpcServerAutoConfiguration; import net.devh.boot.grpc.server.autoconfigure.GrpcServerFactoryAutoConfiguration; @@ -29,7 +29,7 @@ @Configuration @ImportAutoConfiguration({GrpcCommonCodecAutoConfiguration.class, GrpcServerAutoConfiguration.class, GrpcServerFactoryAutoConfiguration.class, GrpcServerSecurityAutoConfiguration.class, - GrpcClientAutoConfiguration.class, GrpcClientTimeoutAutoConfiguration.class}) + GrpcClientAutoConfiguration.class, GrpcClientDefaultRequestTimeoutAutoConfiguration.class}) public class BaseAutoConfiguration { } diff --git a/tests/src/test/java/net/devh/boot/grpc/test/setup/TimeoutSetupTests.java b/tests/src/test/java/net/devh/boot/grpc/test/setup/DefaultRequestTimeoutSetupTests.java similarity index 87% rename from tests/src/test/java/net/devh/boot/grpc/test/setup/TimeoutSetupTests.java rename to tests/src/test/java/net/devh/boot/grpc/test/setup/DefaultRequestTimeoutSetupTests.java index b93c94d6..25d5c6df 100644 --- a/tests/src/test/java/net/devh/boot/grpc/test/setup/TimeoutSetupTests.java +++ b/tests/src/test/java/net/devh/boot/grpc/test/setup/DefaultRequestTimeoutSetupTests.java @@ -38,18 +38,18 @@ import net.devh.boot.grpc.test.proto.SomeType; /** - * These tests check the property {@link GrpcChannelProperties#getTimeout()} ()}. + * These tests check the property {@link GrpcChannelProperties#getDefaultRequestTimeout()}}. */ -public class TimeoutSetupTests { +public class DefaultRequestTimeoutSetupTests { @Slf4j @SpringBootTest(properties = { "grpc.client.GLOBAL.address=localhost:9090", - "grpc.client.GLOBAL.timeout=1s", + "grpc.client.GLOBAL.defaultRequestTimeout=1s", "grpc.client.GLOBAL.negotiationType=PLAINTEXT", }) @SpringJUnitConfig(classes = {ServiceConfiguration.class, BaseAutoConfiguration.class}) - static class TimeoutSetupTest extends AbstractSimpleServerClientTest { + static class DefaultRequestTimeoutSetupTest extends AbstractSimpleServerClientTest { @Test @SneakyThrows @@ -72,7 +72,8 @@ void testServiceStubTimeoutEnabledAndSuccessful() { @SneakyThrows @DirtiesContext void testServiceStubManuallyConfiguredDeadlineTakesPrecedenceOfTheConfigOne() { - log.info("--- Starting test that manually configured deadline takes precedence of the config timeout ---"); + log.info( + "--- Starting test that manually configured deadline takes precedence of the config default request timeout ---"); final StreamRecorder streamRecorder = StreamRecorder.create(); StreamObserver echo = this.testServiceStub.withDeadlineAfter(5L, TimeUnit.SECONDS).echo(streamRecorder); @@ -87,11 +88,11 @@ void testServiceStubManuallyConfiguredDeadlineTakesPrecedenceOfTheConfigOne() { @Slf4j @SpringBootTest(properties = { "grpc.client.GLOBAL.address=localhost:9090", - "grpc.client.GLOBAL.timeout=0s", + "grpc.client.GLOBAL.defaultRequestTimeout=0s", "grpc.client.GLOBAL.negotiationType=PLAINTEXT", }) @SpringJUnitConfig(classes = {ServiceConfiguration.class, BaseAutoConfiguration.class}) - static class ZeroTimeoutSetupTest extends AbstractSimpleServerClientTest { + static class ZeroDefaultRequestTimeoutSetupTest extends AbstractSimpleServerClientTest { } }