|
5 | 5 |
|
6 | 6 | package io.opentelemetry.instrumentation.apachehttpclient.v5_2.internal; |
7 | 7 |
|
8 | | -import static java.util.logging.Level.FINE; |
9 | | - |
10 | 8 | import io.opentelemetry.instrumentation.apachehttpclient.v5_2.ApacheHttpClientTelemetryBuilder; |
11 | | -import java.lang.reflect.InvocationTargetException; |
12 | | -import java.lang.reflect.Method; |
13 | | -import java.util.logging.Logger; |
| 9 | +import java.util.function.BiConsumer; |
14 | 10 | import javax.annotation.Nullable; |
15 | 11 |
|
16 | 12 | /** |
|
20 | 16 | */ |
21 | 17 | public class Experimental { |
22 | 18 |
|
23 | | - private static final Logger logger = Logger.getLogger(Experimental.class.getName()); |
24 | | - |
25 | | - @Nullable private static final Method emitExperimentalTelemetry = getEmitExperimentalTelemetry(); |
| 19 | + @Nullable |
| 20 | + private static BiConsumer<ApacheHttpClientTelemetryBuilder, Boolean> setEmitExperimentalTelemetry; |
26 | 21 |
|
27 | 22 | public void setEmitExperimentalTelemetry( |
28 | 23 | ApacheHttpClientTelemetryBuilder builder, boolean emitExperimentalTelemetry) { |
29 | | - |
30 | | - if (Experimental.emitExperimentalTelemetry != null) { |
31 | | - try { |
32 | | - Experimental.emitExperimentalTelemetry.invoke(builder, emitExperimentalTelemetry); |
33 | | - } catch (IllegalAccessException | InvocationTargetException e) { |
34 | | - logger.log(FINE, e.getMessage(), e); |
35 | | - } |
| 24 | + if (setEmitExperimentalTelemetry != null) { |
| 25 | + setEmitExperimentalTelemetry.accept(builder, emitExperimentalTelemetry); |
36 | 26 | } |
37 | 27 | } |
38 | 28 |
|
39 | | - @Nullable |
40 | | - private static Method getEmitExperimentalTelemetry() { |
41 | | - try { |
42 | | - Method method = |
43 | | - ApacheHttpClientTelemetryBuilder.class.getDeclaredMethod( |
44 | | - "setEmitExperimentalHttpClientMetrics", boolean.class); |
45 | | - method.setAccessible(true); |
46 | | - return method; |
47 | | - } catch (NoSuchMethodException e) { |
48 | | - logger.log(FINE, e.getMessage(), e); |
49 | | - return null; |
50 | | - } |
| 29 | + public static void setSetEmitExperimentalTelemetry( |
| 30 | + BiConsumer<ApacheHttpClientTelemetryBuilder, Boolean> setEmitExperimentalTelemetry) { |
| 31 | + Experimental.setEmitExperimentalTelemetry = setEmitExperimentalTelemetry; |
51 | 32 | } |
52 | 33 | } |
0 commit comments