Skip to content

Commit 29c62ae

Browse files
committed
remove reflection
1 parent ad12db2 commit 29c62ae

File tree

2 files changed

+13
-35
lines changed

2 files changed

+13
-35
lines changed

instrumentation/apache-httpclient/apache-httpclient-5.2/library/src/main/java/io/opentelemetry/instrumentation/apachehttpclient/v5_2/ApacheHttpClientTelemetryBuilder.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ public final class ApacheHttpClientTelemetryBuilder {
2424
private final DefaultHttpClientInstrumenterBuilder<ApacheHttpClientRequest, HttpResponse> builder;
2525
private final OpenTelemetry openTelemetry;
2626

27+
static {
28+
Experimental.setSetEmitExperimentalTelemetry(
29+
(builder, emit) -> builder.builder.setEmitExperimentalHttpClientMetrics(emit));
30+
}
31+
2732
ApacheHttpClientTelemetryBuilder(OpenTelemetry openTelemetry) {
2833
builder =
2934
DefaultHttpClientInstrumenterBuilder.create(
@@ -95,14 +100,6 @@ public ApacheHttpClientTelemetryBuilder setSpanNameExtractor(
95100
return this;
96101
}
97102

98-
/**
99-
* Can be used via the unstable method {@link
100-
* Experimental#setEmitExperimentalTelemetry(ApacheHttpClientTelemetryBuilder, boolean)}.
101-
*/
102-
void setEmitExperimentalHttpClientMetrics(boolean emitExperimentalHttpClientMetrics) {
103-
builder.setEmitExperimentalHttpClientMetrics(emitExperimentalHttpClientMetrics);
104-
}
105-
106103
/**
107104
* Returns a new {@link ApacheHttpClientTelemetry} configured with this {@link
108105
* ApacheHttpClientTelemetryBuilder}.

instrumentation/apache-httpclient/apache-httpclient-5.2/library/src/main/java/io/opentelemetry/instrumentation/apachehttpclient/v5_2/internal/Experimental.java

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,8 @@
55

66
package io.opentelemetry.instrumentation.apachehttpclient.v5_2.internal;
77

8-
import static java.util.logging.Level.FINE;
9-
108
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;
1410
import javax.annotation.Nullable;
1511

1612
/**
@@ -20,33 +16,18 @@
2016
*/
2117
public class Experimental {
2218

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;
2621

2722
public void setEmitExperimentalTelemetry(
2823
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);
3626
}
3727
}
3828

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;
5132
}
5233
}

0 commit comments

Comments
 (0)