Skip to content

Commit 102d09e

Browse files
Бацура Сергей АлександровичБацура Сергей Александрович
Бацура Сергей Александрович
authored and
Бацура Сергей Александрович
committed
Feat(timeout) changed the name of timeout property to defaultRequestTimeout
1 parent 9db6998 commit 102d09e

File tree

7 files changed

+39
-37
lines changed

7 files changed

+39
-37
lines changed
+7-7
Original file line numberDiff line numberDiff line change
@@ -28,42 +28,42 @@
2828
import lombok.extern.slf4j.Slf4j;
2929
import net.devh.boot.grpc.client.channelfactory.GrpcChannelConfigurer;
3030
import net.devh.boot.grpc.client.config.GrpcChannelsProperties;
31-
import net.devh.boot.grpc.client.interceptor.TimeoutSetupClientInterceptor;
31+
import net.devh.boot.grpc.client.interceptor.DefaultRequestTimeoutSetupClientInterceptor;
3232

3333
/**
34-
* The request timeout autoconfiguration for the client.
34+
* The default request timeout autoconfiguration for the client.
3535
*
3636
* <p>
3737
* You can disable this config by using:
3838
* </p>
3939
*
4040
* <pre>
41-
* <code>@ImportAutoConfiguration(exclude = GrpcClientTimeoutAutoConfiguration.class)</code>
41+
* <code>@ImportAutoConfiguration(exclude = GrpcClientDefaultRequestTimeoutAutoConfiguration.class)</code>
4242
* </pre>
4343
*
4444
* @author Sergei Batsura ([email protected])
4545
*/
4646
@Slf4j
4747
@Configuration(proxyBeanMethods = false)
4848
@AutoConfigureBefore(GrpcClientAutoConfiguration.class)
49-
public class GrpcClientTimeoutAutoConfiguration {
49+
public class GrpcClientDefaultRequestTimeoutAutoConfiguration {
5050

5151
/**
5252
* Creates a {@link GrpcChannelConfigurer} bean applying the default request timeout from config to each new call
5353
* using a {@link ClientInterceptor}.
5454
*
5555
* @param props The properties for timeout configuration.
5656
* @return The GrpcChannelConfigurer bean with interceptor if timeout is configured.
57-
* @see TimeoutSetupClientInterceptor
57+
* @see DefaultRequestTimeoutSetupClientInterceptor
5858
*/
5959
@Bean
6060
GrpcChannelConfigurer timeoutGrpcChannelConfigurer(final GrpcChannelsProperties props) {
6161
requireNonNull(props, "properties");
6262

6363
return (channel, name) -> {
64-
Duration timeout = props.getChannel(name).getTimeout();
64+
Duration timeout = props.getChannel(name).getDefaultRequestTimeout();
6565
if (timeout != null && timeout.toMillis() > 0L) {
66-
channel.intercept(new TimeoutSetupClientInterceptor(timeout));
66+
channel.intercept(new DefaultRequestTimeoutSetupClientInterceptor(timeout));
6767
}
6868
};
6969
}

grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/config/GrpcChannelProperties.java

+15-14
Original file line numberDiff line numberDiff line change
@@ -120,31 +120,32 @@ public void setAddress(final String address) {
120120
}
121121

122122
// --------------------------------------------------
123-
// Target Timeout
123+
// Target DefaultRequestTimeout
124124
// --------------------------------------------------
125125

126-
private Duration timeout = null;
126+
private Duration defaultRequestTimeout = null;
127127

128128
/**
129-
* Gets the default timeout for each new call.
129+
* Gets the default request timeout for each new call.
130130
*
131-
* @return The connection timeout or null
132-
* @see #setTimeout(Duration)
131+
* @return The default request timeout or null
132+
* @see #setDefaultRequestTimeout(Duration)
133133
*/
134-
public Duration getTimeout() {
135-
return this.timeout;
134+
public Duration getDefaultRequestTimeout() {
135+
return this.defaultRequestTimeout;
136136
}
137137

138138
/**
139-
* Set the default timeout duration for new calls (on a per call basis). By default and if zero value is configured,
140-
* the timeout will not be used. The default timeout will be ignored, if a deadline has been applied manually.
139+
* Set the default request timeout duration for new calls (on a per call basis). By default and if zero value is
140+
* configured, the timeout will not be used. The default request timeout will be ignored, if a deadline has been
141+
* applied manually.
141142
*
142-
* @param timeout The connection timeout or null.
143+
* @param defaultRequestTimeout the default request timeout or null.
143144
*
144145
* @see CallOptions#withDeadlineAfter(long, TimeUnit)
145146
*/
146-
public void setTimeout(Duration timeout) {
147-
this.timeout = timeout;
147+
public void setDefaultRequestTimeout(Duration defaultRequestTimeout) {
148+
this.defaultRequestTimeout = defaultRequestTimeout;
148149
}
149150

150151
// --------------------------------------------------
@@ -509,8 +510,8 @@ public void copyDefaultsFrom(final GrpcChannelProperties config) {
509510
if (this.address == null) {
510511
this.address = config.address;
511512
}
512-
if (this.timeout == null) {
513-
this.timeout = config.timeout;
513+
if (this.defaultRequestTimeout == null) {
514+
this.defaultRequestTimeout = config.defaultRequestTimeout;
514515
}
515516
if (this.defaultLoadBalancingPolicy == null) {
516517
this.defaultLoadBalancingPolicy = config.defaultLoadBalancingPolicy;
+5-5
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,12 @@
3434
* @author Sergei Batsura ([email protected])
3535
*/
3636
@Slf4j
37-
public class TimeoutSetupClientInterceptor implements ClientInterceptor {
37+
public class DefaultRequestTimeoutSetupClientInterceptor implements ClientInterceptor {
3838

39-
private final Duration timeout;
39+
private final Duration defaultRequestTimeout;
4040

41-
public TimeoutSetupClientInterceptor(Duration timeout) {
42-
this.timeout = requireNonNull(timeout, "timeout");
41+
public DefaultRequestTimeoutSetupClientInterceptor(Duration defaultRequestTimeout) {
42+
this.defaultRequestTimeout = requireNonNull(defaultRequestTimeout, "defaultRequestTimeout");
4343
}
4444

4545
@Override
@@ -50,7 +50,7 @@ public <ReqT, RespT> ClientCall<ReqT, RespT> interceptCall(
5050

5151
if (callOptions.getDeadline() == null) {
5252
return next.newCall(method,
53-
callOptions.withDeadlineAfter(timeout.toMillis(), TimeUnit.MILLISECONDS));
53+
callOptions.withDeadlineAfter(defaultRequestTimeout.toMillis(), TimeUnit.MILLISECONDS));
5454
} else {
5555
return next.newCall(method, callOptions);
5656
}

grpc-client-spring-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
"defaultValue": 0
109109
},
110110
{
111-
"name": "grpc.client.GLOBAL.timeout",
111+
"name": "grpc.client.GLOBAL.defaultRequestTimeout",
112112
"type": "java.time.Duration",
113113
"sourceType": "net.devh.boot.grpc.client.config.GrpcChannelProperties",
114114
"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."

grpc-client-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ net.devh.boot.grpc.client.autoconfigure.GrpcClientHealthAutoConfiguration
44
net.devh.boot.grpc.client.autoconfigure.GrpcClientMicrometerTraceAutoConfiguration
55
net.devh.boot.grpc.client.autoconfigure.GrpcClientSecurityAutoConfiguration
66
net.devh.boot.grpc.client.autoconfigure.GrpcDiscoveryClientAutoConfiguration
7-
net.devh.boot.grpc.client.autoconfigure.GrpcClientTimeoutAutoConfiguration
7+
net.devh.boot.grpc.client.autoconfigure.GrpcClientDefaultRequestTimeoutAutoConfiguration

tests/src/test/java/net/devh/boot/grpc/test/config/BaseAutoConfiguration.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import org.springframework.context.annotation.Configuration;
2121

2222
import net.devh.boot.grpc.client.autoconfigure.GrpcClientAutoConfiguration;
23-
import net.devh.boot.grpc.client.autoconfigure.GrpcClientTimeoutAutoConfiguration;
23+
import net.devh.boot.grpc.client.autoconfigure.GrpcClientDefaultRequestTimeoutAutoConfiguration;
2424
import net.devh.boot.grpc.common.autoconfigure.GrpcCommonCodecAutoConfiguration;
2525
import net.devh.boot.grpc.server.autoconfigure.GrpcServerAutoConfiguration;
2626
import net.devh.boot.grpc.server.autoconfigure.GrpcServerFactoryAutoConfiguration;
@@ -29,7 +29,7 @@
2929
@Configuration
3030
@ImportAutoConfiguration({GrpcCommonCodecAutoConfiguration.class, GrpcServerAutoConfiguration.class,
3131
GrpcServerFactoryAutoConfiguration.class, GrpcServerSecurityAutoConfiguration.class,
32-
GrpcClientAutoConfiguration.class, GrpcClientTimeoutAutoConfiguration.class})
32+
GrpcClientAutoConfiguration.class, GrpcClientDefaultRequestTimeoutAutoConfiguration.class})
3333
public class BaseAutoConfiguration {
3434

3535
}

tests/src/test/java/net/devh/boot/grpc/test/setup/TimeoutSetupTests.java renamed to tests/src/test/java/net/devh/boot/grpc/test/setup/DefaultRequestTimeoutSetupTests.java

+8-7
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,18 @@
3838
import net.devh.boot.grpc.test.proto.SomeType;
3939

4040
/**
41-
* These tests check the property {@link GrpcChannelProperties#getTimeout()} ()}.
41+
* These tests check the property {@link GrpcChannelProperties#getDefaultRequestTimeout()}}.
4242
*/
43-
public class TimeoutSetupTests {
43+
public class DefaultRequestTimeoutSetupTests {
4444

4545
@Slf4j
4646
@SpringBootTest(properties = {
4747
"grpc.client.GLOBAL.address=localhost:9090",
48-
"grpc.client.GLOBAL.timeout=1s",
48+
"grpc.client.GLOBAL.defaultRequestTimeout=1s",
4949
"grpc.client.GLOBAL.negotiationType=PLAINTEXT",
5050
})
5151
@SpringJUnitConfig(classes = {ServiceConfiguration.class, BaseAutoConfiguration.class})
52-
static class TimeoutSetupTest extends AbstractSimpleServerClientTest {
52+
static class DefaultRequestTimeoutSetupTest extends AbstractSimpleServerClientTest {
5353

5454
@Test
5555
@SneakyThrows
@@ -72,7 +72,8 @@ void testServiceStubTimeoutEnabledAndSuccessful() {
7272
@SneakyThrows
7373
@DirtiesContext
7474
void testServiceStubManuallyConfiguredDeadlineTakesPrecedenceOfTheConfigOne() {
75-
log.info("--- Starting test that manually configured deadline takes precedence of the config timeout ---");
75+
log.info(
76+
"--- Starting test that manually configured deadline takes precedence of the config default request timeout ---");
7677
final StreamRecorder<SomeType> streamRecorder = StreamRecorder.create();
7778
StreamObserver<SomeType> echo =
7879
this.testServiceStub.withDeadlineAfter(5L, TimeUnit.SECONDS).echo(streamRecorder);
@@ -87,11 +88,11 @@ void testServiceStubManuallyConfiguredDeadlineTakesPrecedenceOfTheConfigOne() {
8788
@Slf4j
8889
@SpringBootTest(properties = {
8990
"grpc.client.GLOBAL.address=localhost:9090",
90-
"grpc.client.GLOBAL.timeout=0s",
91+
"grpc.client.GLOBAL.defaultRequestTimeout=0s",
9192
"grpc.client.GLOBAL.negotiationType=PLAINTEXT",
9293
})
9394
@SpringJUnitConfig(classes = {ServiceConfiguration.class, BaseAutoConfiguration.class})
94-
static class ZeroTimeoutSetupTest extends AbstractSimpleServerClientTest {
95+
static class ZeroDefaultRequestTimeoutSetupTest extends AbstractSimpleServerClientTest {
9596
}
9697

9798
}

0 commit comments

Comments
 (0)