Skip to content

Commit eb8ee19

Browse files
committed
avoid reflection
1 parent c4562fc commit eb8ee19

File tree

2 files changed

+20
-21
lines changed

2 files changed

+20
-21
lines changed

javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/config/DeclarativeConfigEarlyInitAgentConfig.java

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import io.opentelemetry.javaagent.extension.DeclarativeConfigPropertiesBridge;
1212
import io.opentelemetry.sdk.OpenTelemetrySdk;
1313
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
14+
import io.opentelemetry.sdk.autoconfigure.SdkAutoConfigureAccess;
1415
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
1516
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
1617
import io.opentelemetry.sdk.common.CompletableResultCode;
@@ -20,8 +21,6 @@
2021
import io.opentelemetry.sdk.resources.Resource;
2122
import java.io.FileInputStream;
2223
import java.io.IOException;
23-
import java.lang.reflect.InvocationTargetException;
24-
import java.lang.reflect.Method;
2524
import java.util.Arrays;
2625
import java.util.Objects;
2726
import javax.annotation.Nullable;
@@ -98,25 +97,8 @@ public AutoConfiguredOpenTelemetrySdk installOpenTelemetrySdk(ClassLoader extens
9897

9998
setForceFlush(sdk);
10099

101-
try {
102-
Method method =
103-
AutoConfiguredOpenTelemetrySdk.class.getDeclaredMethod(
104-
"create",
105-
OpenTelemetrySdk.class,
106-
Resource.class,
107-
ConfigProperties.class,
108-
Object.class);
109-
method.setAccessible(true);
110-
return (AutoConfiguredOpenTelemetrySdk)
111-
method.invoke(
112-
null,
113-
sdk,
114-
Resource.getDefault(),
115-
this.declarativeConfigProperties,
116-
this.configProvider);
117-
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
118-
throw new IllegalStateException("Error calling create on AutoConfiguredOpenTelemetrySdk", e);
119-
}
100+
return SdkAutoConfigureAccess.create(
101+
sdk, Resource.getDefault(), this.declarativeConfigProperties, this.configProvider);
120102
}
121103

122104
static void setForceFlush(OpenTelemetrySdk sdk) {
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.sdk.autoconfigure;
7+
8+
import io.opentelemetry.sdk.OpenTelemetrySdk;
9+
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
10+
import io.opentelemetry.sdk.resources.Resource;
11+
12+
public class SdkAutoConfigureAccess {
13+
public static AutoConfiguredOpenTelemetrySdk create(
14+
OpenTelemetrySdk sdk, Resource resource, ConfigProperties config, Object configProvider) {
15+
return AutoConfiguredOpenTelemetrySdk.create(sdk, resource, config, configProvider);
16+
}
17+
}

0 commit comments

Comments
 (0)