|
5 | 5 |
|
6 | 6 | package io.opentelemetry.instrumentation.spring.webflux.v5_3.internal; |
7 | 7 |
|
8 | | -import static java.util.logging.Level.FINE; |
9 | | - |
10 | 8 | import io.opentelemetry.instrumentation.spring.webflux.v5_3.SpringWebfluxClientTelemetryBuilder; |
11 | 9 | import io.opentelemetry.instrumentation.spring.webflux.v5_3.SpringWebfluxServerTelemetryBuilder; |
12 | | -import java.lang.reflect.InvocationTargetException; |
13 | | -import java.lang.reflect.Method; |
14 | | -import java.util.logging.Logger; |
| 10 | +import java.util.function.BiConsumer; |
15 | 11 | import javax.annotation.Nullable; |
16 | 12 |
|
17 | 13 | /** |
|
21 | 17 | */ |
22 | 18 | public class Experimental { |
23 | 19 |
|
24 | | - private static final Logger logger = Logger.getLogger(Experimental.class.getName()); |
25 | | - |
26 | 20 | @Nullable |
27 | | - private static final Method emitExperimentalClientTelemetryMethod = |
28 | | - getEmitExperimentalClientTelemetryMethod(); |
| 21 | + private static BiConsumer<SpringWebfluxClientTelemetryBuilder, Boolean> |
| 22 | + setEmitExperimentalClientTelemetry; |
29 | 23 |
|
30 | 24 | @Nullable |
31 | | - private static final Method emitExperimentalServerTelemetryMethod = |
32 | | - getEmitExperimentalServerTelemetryMethod(); |
| 25 | + private static BiConsumer<SpringWebfluxServerTelemetryBuilder, Boolean> |
| 26 | + setEmitExperimentalServerTelemetry; |
33 | 27 |
|
34 | 28 | public void setEmitExperimentalTelemetry( |
35 | 29 | SpringWebfluxClientTelemetryBuilder builder, boolean emitExperimentalTelemetry) { |
36 | | - |
37 | | - if (emitExperimentalClientTelemetryMethod != null) { |
38 | | - try { |
39 | | - emitExperimentalClientTelemetryMethod.invoke(builder, emitExperimentalTelemetry); |
40 | | - } catch (IllegalAccessException | InvocationTargetException e) { |
41 | | - logger.log(FINE, e.getMessage(), e); |
42 | | - } |
| 30 | + if (setEmitExperimentalClientTelemetry != null) { |
| 31 | + setEmitExperimentalClientTelemetry.accept(builder, emitExperimentalTelemetry); |
43 | 32 | } |
44 | 33 | } |
45 | 34 |
|
46 | 35 | public void setEmitExperimentalTelemetry( |
47 | 36 | SpringWebfluxServerTelemetryBuilder builder, boolean emitExperimentalTelemetry) { |
48 | | - |
49 | | - if (emitExperimentalServerTelemetryMethod != null) { |
50 | | - try { |
51 | | - emitExperimentalServerTelemetryMethod.invoke(builder, emitExperimentalTelemetry); |
52 | | - } catch (IllegalAccessException | InvocationTargetException e) { |
53 | | - logger.log(FINE, e.getMessage(), e); |
54 | | - } |
| 37 | + if (setEmitExperimentalServerTelemetry != null) { |
| 38 | + setEmitExperimentalServerTelemetry.accept(builder, emitExperimentalTelemetry); |
55 | 39 | } |
56 | 40 | } |
57 | 41 |
|
58 | | - @Nullable |
59 | | - private static Method getEmitExperimentalClientTelemetryMethod() { |
60 | | - try { |
61 | | - Method method = |
62 | | - SpringWebfluxClientTelemetryBuilder.class.getDeclaredMethod( |
63 | | - "setEmitExperimentalHttpClientTelemetry", boolean.class); |
64 | | - method.setAccessible(true); |
65 | | - return method; |
66 | | - } catch (NoSuchMethodException e) { |
67 | | - logger.log(FINE, e.getMessage(), e); |
68 | | - return null; |
69 | | - } |
| 42 | + public static void setSetEmitExperimentalClientTelemetry( |
| 43 | + BiConsumer<SpringWebfluxClientTelemetryBuilder, Boolean> setEmitExperimentalClientTelemetry) { |
| 44 | + Experimental.setEmitExperimentalClientTelemetry = setEmitExperimentalClientTelemetry; |
70 | 45 | } |
71 | 46 |
|
72 | | - @Nullable |
73 | | - private static Method getEmitExperimentalServerTelemetryMethod() { |
74 | | - try { |
75 | | - Method method = |
76 | | - SpringWebfluxServerTelemetryBuilder.class.getDeclaredMethod( |
77 | | - "setEmitExperimentalHttpServerTelemetry", boolean.class); |
78 | | - method.setAccessible(true); |
79 | | - return method; |
80 | | - } catch (NoSuchMethodException e) { |
81 | | - logger.log(FINE, e.getMessage(), e); |
82 | | - return null; |
83 | | - } |
| 47 | + public static void setSetEmitExperimentalServerTelemetry( |
| 48 | + BiConsumer<SpringWebfluxServerTelemetryBuilder, Boolean> setEmitExperimentalServerTelemetry) { |
| 49 | + Experimental.setEmitExperimentalServerTelemetry = setEmitExperimentalServerTelemetry; |
84 | 50 | } |
85 | 51 | } |
0 commit comments