Skip to content

Commit ee994e0

Browse files
author
Dave Syer
committed
Use new annotation for existing interceptor
1 parent d630a41 commit ee994e0

File tree

2 files changed

+13
-29
lines changed

2 files changed

+13
-29
lines changed

spring-grpc-spring-boot-autoconfigure/src/main/java/org/springframework/grpc/autoconfigure/server/GrpcServerObservationAutoConfiguration.java

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,15 @@
1515
*/
1616
package org.springframework.grpc.autoconfigure.server;
1717

18-
import io.grpc.ServerBuilder;
19-
import io.grpc.ServerInterceptor;
20-
import io.micrometer.core.instrument.binder.grpc.ObservationGrpcServerInterceptor;
21-
import io.micrometer.observation.ObservationRegistry;
2218
import org.springframework.boot.autoconfigure.AutoConfiguration;
2319
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2420
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2521
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
2622
import org.springframework.context.annotation.Bean;
27-
import org.springframework.grpc.server.ServerBuilderCustomizer;
23+
24+
import io.grpc.ServerInterceptor;
25+
import io.micrometer.core.instrument.binder.grpc.ObservationGrpcServerInterceptor;
26+
import io.micrometer.observation.ObservationRegistry;
2827

2928
@AutoConfiguration(
3029
afterName = "org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration")
@@ -35,14 +34,9 @@ public class GrpcServerObservationAutoConfiguration {
3534

3635
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
3736
@Bean
37+
@GlobalServerInterceptor
3838
ServerInterceptor observationGrpcServerInterceptor(ObservationRegistry observationRegistry) {
3939
return new ObservationGrpcServerInterceptor(observationRegistry);
4040
}
4141

42-
@Bean
43-
<T extends ServerBuilder<T>> ServerBuilderCustomizer<T> observationGrpcServerInterceptorCustomizer(
44-
ServerInterceptor observationGrpcServerInterceptor) {
45-
return (serverBuilder) -> serverBuilder.intercept(observationGrpcServerInterceptor);
46-
}
47-
4842
}

spring-grpc-spring-boot-autoconfigure/src/test/java/org/springframework/grpc/autoconfigure/server/GrpcServerObservationAutoConfigurationTests.java

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,17 @@
1616

1717
package org.springframework.grpc.autoconfigure.server;
1818

19-
import io.grpc.ServerBuilder;
20-
import io.micrometer.core.instrument.binder.grpc.ObservationGrpcServerInterceptor;
21-
import io.micrometer.observation.ObservationRegistry;
19+
import static org.assertj.core.api.Assertions.assertThat;
20+
21+
import org.assertj.core.api.Condition;
2222
import org.junit.jupiter.api.Test;
2323
import org.mockito.Mockito;
24-
2524
import org.springframework.boot.autoconfigure.AutoConfigurations;
2625
import org.springframework.boot.test.context.FilteredClassLoader;
2726
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
28-
import org.springframework.grpc.server.ServerBuilderCustomizer;
2927

30-
import static org.assertj.core.api.Assertions.assertThat;
31-
import static org.mockito.Mockito.mock;
32-
import static org.mockito.Mockito.verify;
28+
import io.micrometer.core.instrument.binder.grpc.ObservationGrpcServerInterceptor;
29+
import io.micrometer.observation.ObservationRegistry;
3330

3431
/**
3532
* Tests for the {@link GrpcServerObservationAutoConfiguration}.
@@ -79,19 +76,12 @@ void whenObservationPropertyDisabledThenAutoConfigIsSkipped() {
7976
.run(context -> assertThat(context).doesNotHaveBean(GrpcServerObservationAutoConfiguration.class));
8077
}
8178

82-
@SuppressWarnings({ "rawtypes", "unchecked" })
8379
@Test
8480
void whenAllConditionsAreMetThenInterceptorConfiguredAsExpected() {
8581
this.validContextRunner().run((context) -> {
86-
assertThat(context).hasSingleBean(ObservationGrpcServerInterceptor.class);
87-
assertThat(context).hasSingleBean(ServerBuilderCustomizer.class);
88-
// ensure the customizer in fact adds the interceptor to the builder
89-
ObservationGrpcServerInterceptor serverInterceptor = context
90-
.getBean(ObservationGrpcServerInterceptor.class);
91-
ServerBuilder<?> serverBuilder = mock();
92-
ServerBuilderCustomizer serverBuilderCustomizer = context.getBean(ServerBuilderCustomizer.class);
93-
serverBuilderCustomizer.customize(serverBuilder);
94-
verify(serverBuilder).intercept(serverInterceptor);
82+
assertThat(context).hasSingleBean(ObservationGrpcServerInterceptor.class)
83+
.has(new Condition<>(beans -> beans.getBeansWithAnnotation(GlobalServerInterceptor.class).size() == 1,
84+
"One global interceptor expected"));
9585
});
9686
}
9787

0 commit comments

Comments
 (0)