3
3
import java .util .function .BooleanSupplier ;
4
4
5
5
import io .quarkus .arc .deployment .AdditionalBeanBuildItem ;
6
+ import io .quarkus .bootstrap .classloading .QuarkusClassLoader ;
6
7
import io .quarkus .deployment .annotations .BuildProducer ;
7
8
import io .quarkus .deployment .annotations .BuildStep ;
8
9
import io .quarkus .deployment .builditem .AdditionalIndexedClassesBuildItem ;
9
- import io .quarkus .micrometer .runtime .MicrometerRecorder ;
10
10
import io .quarkus .micrometer .runtime .config .MicrometerConfig ;
11
11
12
12
/**
@@ -22,27 +22,27 @@ public class GrpcBinderProcessor {
22
22
static final String CLIENT_INTERCEPTOR = "io.grpc.ClientInterceptor" ;
23
23
static final String SERVER_INTERCEPTOR = "io.grpc.ServerInterceptor" ;
24
24
25
- static final Class <?> CLIENT_INTERCEPTOR_CLASS = MicrometerRecorder .getClassForName (CLIENT_INTERCEPTOR );
26
- static final Class <?> SERVER_INTERCEPTOR_CLASS = MicrometerRecorder .getClassForName (SERVER_INTERCEPTOR );
27
-
28
25
static class GrpcClientSupportEnabled implements BooleanSupplier {
29
26
MicrometerConfig mConfig ;
30
27
31
28
public boolean getAsBoolean () {
32
- return CLIENT_INTERCEPTOR_CLASS != null && mConfig .checkBinderEnabledWithDefault (mConfig .binder .grpcClient );
29
+ return QuarkusClassLoader .isClassPresentAtRuntime (CLIENT_INTERCEPTOR )
30
+ && mConfig .checkBinderEnabledWithDefault (mConfig .binder .grpcClient );
33
31
}
34
32
}
35
33
36
34
static class GrpcServerSupportEnabled implements BooleanSupplier {
37
35
MicrometerConfig mConfig ;
38
36
39
37
public boolean getAsBoolean () {
40
- return SERVER_INTERCEPTOR_CLASS != null && mConfig .checkBinderEnabledWithDefault (mConfig .binder .grpcServer );
38
+ return QuarkusClassLoader .isClassPresentAtRuntime (SERVER_INTERCEPTOR )
39
+ && mConfig .checkBinderEnabledWithDefault (mConfig .binder .grpcServer );
41
40
}
42
41
}
43
42
44
43
@ BuildStep (onlyIf = GrpcClientSupportEnabled .class )
45
- AdditionalBeanBuildItem addGrpcClientMetricInterceptor () {
44
+ AdditionalBeanBuildItem addGrpcClientMetricInterceptor (BuildProducer <AdditionalIndexedClassesBuildItem > producer ) {
45
+ producer .produce (new AdditionalIndexedClassesBuildItem (CLIENT_GRPC_METRICS_INTERCEPTOR ));
46
46
return AdditionalBeanBuildItem .unremovableOf (CLIENT_GRPC_METRICS_INTERCEPTOR );
47
47
}
48
48
0 commit comments