Skip to content

Commit 3333149

Browse files
committed
add generic arg
1 parent 3435a1c commit 3333149

31 files changed

+113
-91
lines changed

smoke-tests/src/main/java/io/opentelemetry/smoketest/SmokeTestInstrumentationExtension.java

Lines changed: 22 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
* }
4848
* </pre>
4949
*/
50-
public class SmokeTestInstrumentationExtension extends InstrumentationExtension
50+
public class SmokeTestInstrumentationExtension<T> extends InstrumentationExtension
5151
implements TelemetryRetrieverProvider {
5252

5353
private final TestContainerManager containerManager = createContainerManager();
@@ -61,12 +61,7 @@ public class SmokeTestInstrumentationExtension extends InstrumentationExtension
6161

6262
private final AutoCleanupExtension autoCleanup = AutoCleanupExtension.create();
6363

64-
@FunctionalInterface
65-
public interface GetTargetImage {
66-
String getTargetImage(String jdk, String serverVersion, boolean windows);
67-
}
68-
69-
private final GetTargetImage getTargetImage;
64+
private final Function<T, String> getTargetImage;
7065
private final String[] command;
7166
private final String jvmArgsEnvVarName;
7267
private final boolean setServiceName;
@@ -77,7 +72,7 @@ public interface GetTargetImage {
7772
private final Duration telemetryTimeout;
7873

7974
private SmokeTestInstrumentationExtension(
80-
GetTargetImage getTargetImage,
75+
Function<T, String> getTargetImage,
8176
String[] command,
8277
String jvmArgsEnvVarName,
8378
boolean setServiceName,
@@ -146,17 +141,13 @@ public Set<String> getSpanTraceIds() {
146141
return spans().stream().map(SpanData::getTraceId).collect(Collectors.toSet());
147142
}
148143

149-
public SmokeTestOutput start(int jdk) {
150-
return start(String.valueOf(jdk), null, false);
151-
}
152-
153-
public SmokeTestOutput start(String jdk, String serverVersion, boolean windows) {
144+
public SmokeTestOutput start(T arg) {
154145
autoCleanup.deferCleanup(() -> containerManager.stopTarget());
155146

156147
return new SmokeTestOutput(
157148
this,
158149
containerManager.startTarget(
159-
getTargetImage.getTargetImage(jdk, serverVersion, windows),
150+
getTargetImage.apply(arg),
160151
agentPath,
161152
jvmArgsEnvVarName,
162153
extraEnv,
@@ -172,16 +163,12 @@ public TelemetryRetriever getTelemetryRetriever() {
172163
return telemetryRetriever;
173164
}
174165

175-
public static Builder builder(Function<String, String> getTargetImage) {
176-
return builder((jdk, serverVersion, windows) -> getTargetImage.apply(jdk));
177-
}
178-
179-
public static Builder builder(GetTargetImage getTargetImage) {
180-
return new Builder(getTargetImage);
166+
public static <T> Builder<T> builder(Function<T, String> getTargetImage) {
167+
return new Builder<T>(getTargetImage);
181168
}
182169

183-
public static Builder springBoot(String imageTag) {
184-
return builder(
170+
public static Builder<Integer> springBoot(String imageTag) {
171+
return new Builder<Integer>(
185172
jdk ->
186173
String.format(
187174
"ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-spring-boot:jdk%s-%s",
@@ -197,8 +184,8 @@ private static TestContainerManager createContainerManager() {
197184
: new LinuxTestContainerManager();
198185
}
199186

200-
public static class Builder {
201-
private final GetTargetImage getTargetImage;
187+
public static class Builder<T> {
188+
private final Function<T, String> getTargetImage;
202189
private String[] command;
203190
private String jvmArgsEnvVarName = "JAVA_TOOL_OPTIONS";
204191
private boolean setServiceName = true;
@@ -208,68 +195,68 @@ public static class Builder {
208195
private List<Integer> extraPorts = List.of();
209196
private Duration telemetryTimeout = Duration.ofSeconds(30);
210197

211-
private Builder(GetTargetImage getTargetImage) {
198+
private Builder(Function<T, String> getTargetImage) {
212199
this.getTargetImage = getTargetImage;
213200
}
214201

215202
/** Sets the command to run in the target container. */
216203
@CanIgnoreReturnValue
217-
public Builder command(String... command) {
204+
public Builder<T> command(String... command) {
218205
this.command = command;
219206
return this;
220207
}
221208

222209
/** Sets the environment variable name used to pass JVM arguments to the target application. */
223210
@CanIgnoreReturnValue
224-
public Builder jvmArgsEnvVarName(String jvmArgsEnvVarName) {
211+
public Builder<T> jvmArgsEnvVarName(String jvmArgsEnvVarName) {
225212
this.jvmArgsEnvVarName = jvmArgsEnvVarName;
226213
return this;
227214
}
228215

229216
/** Enables or disables setting the default service name for the target application. */
230217
@CanIgnoreReturnValue
231-
public Builder setServiceName(boolean setServiceName) {
218+
public Builder<T> setServiceName(boolean setServiceName) {
232219
this.setServiceName = setServiceName;
233220
return this;
234221
}
235222

236223
/** Adds an environment variable to the target application's environment. */
237224
@CanIgnoreReturnValue
238-
public Builder env(String key, String value) {
225+
public Builder<T> env(String key, String value) {
239226
this.extraEnv.put(key, value);
240227
return this;
241228
}
242229

243230
/** Specifies additional files to copy to the target container. */
244231
@CanIgnoreReturnValue
245-
public Builder extraResources(ResourceMapping... resources) {
232+
public Builder<T> extraResources(ResourceMapping... resources) {
246233
this.extraResources = List.of(resources);
247234
return this;
248235
}
249236

250237
/** Sets the wait strategy for the target container startup. */
251238
@CanIgnoreReturnValue
252-
public Builder waitStrategy(@Nullable TargetWaitStrategy waitStrategy) {
239+
public Builder<T> waitStrategy(@Nullable TargetWaitStrategy waitStrategy) {
253240
this.waitStrategy = waitStrategy;
254241
return this;
255242
}
256243

257244
/** Specifies additional ports to expose from the target container. */
258245
@CanIgnoreReturnValue
259-
public Builder extraPorts(Integer... ports) {
246+
public Builder<T> extraPorts(Integer... ports) {
260247
this.extraPorts = List.of(ports);
261248
return this;
262249
}
263250

264251
/** Sets the timeout duration for retrieving telemetry data. */
265252
@CanIgnoreReturnValue
266-
public Builder telemetryTimeout(Duration telemetryTimeout) {
253+
public Builder<T> telemetryTimeout(Duration telemetryTimeout) {
267254
this.telemetryTimeout = telemetryTimeout;
268255
return this;
269256
}
270257

271-
public SmokeTestInstrumentationExtension build() {
272-
return new SmokeTestInstrumentationExtension(
258+
public SmokeTestInstrumentationExtension<T> build() {
259+
return new SmokeTestInstrumentationExtension<T>(
273260
getTargetImage,
274261
command,
275262
jvmArgsEnvVarName,

smoke-tests/src/main/java/io/opentelemetry/smoketest/SmokeTestOutput.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ public class SmokeTestOutput {
1919

2020
private static final Pattern TRACE_ID_PATTERN =
2121
Pattern.compile(".*trace_id=(?<traceId>[a-zA-Z0-9]+).*");
22-
private final SmokeTestInstrumentationExtension extension;
22+
private final SmokeTestInstrumentationExtension<?> extension;
2323
private final Consumer<OutputFrame> output;
2424

2525
public SmokeTestOutput(
26-
SmokeTestInstrumentationExtension extension, Consumer<OutputFrame> output) {
26+
SmokeTestInstrumentationExtension<?> extension, Consumer<OutputFrame> output) {
2727
this.extension = extension;
2828
this.output = output;
2929
}

smoke-tests/src/test/java/io/opentelemetry/smoketest/AgentDebugLoggingTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
class AgentDebugLoggingTest {
1616

1717
@RegisterExtension
18-
static final SmokeTestInstrumentationExtension testing =
18+
static final SmokeTestInstrumentationExtension<Integer> testing =
1919
SmokeTestInstrumentationExtension.springBoot("20250915.17728045097")
2020
.waitStrategy(
2121
new TargetWaitStrategy.Log(

smoke-tests/src/test/java/io/opentelemetry/smoketest/DeclarativeConfigurationSmokeTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
class DeclarativeConfigurationSmokeTest {
2222

2323
@RegisterExtension
24-
static final SmokeTestInstrumentationExtension testing =
24+
static final SmokeTestInstrumentationExtension<Integer> testing =
2525
SmokeTestInstrumentationExtension.springBoot("20241021.11448062567")
2626
.env("OTEL_EXPERIMENTAL_CONFIG_FILE", "declarative-config.yaml")
2727
.extraResources(ResourceMapping.of("declarative-config.yaml", "/declarative-config.yaml"))

smoke-tests/src/test/java/io/opentelemetry/smoketest/GrpcSmokeTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
class GrpcSmokeTest {
2323

2424
@RegisterExtension
25-
static final SmokeTestInstrumentationExtension testing =
26-
SmokeTestInstrumentationExtension.builder(
25+
static final SmokeTestInstrumentationExtension<Integer> testing =
26+
SmokeTestInstrumentationExtension.<Integer>builder(
2727
jdk ->
2828
String.format(
2929
"ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-grpc:jdk%s-20241021.11448062549",

smoke-tests/src/test/java/io/opentelemetry/smoketest/LogsSmokeTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
class LogsSmokeTest {
1919

2020
@RegisterExtension
21-
static final SmokeTestInstrumentationExtension testing =
21+
static final SmokeTestInstrumentationExtension<Integer> testing =
2222
SmokeTestInstrumentationExtension.springBoot("20211213.1570880324").build();
2323

2424
@ParameterizedTest

smoke-tests/src/test/java/io/opentelemetry/smoketest/PlaySmokeTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
class PlaySmokeTest {
1919

2020
@RegisterExtension
21-
static final SmokeTestInstrumentationExtension testing =
22-
SmokeTestInstrumentationExtension.builder(
21+
static final SmokeTestInstrumentationExtension<Integer> testing =
22+
SmokeTestInstrumentationExtension.<Integer>builder(
2323
jdk ->
2424
String.format(
2525
"ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-play:jdk%s-20241022.11450623960",

smoke-tests/src/test/java/io/opentelemetry/smoketest/PrometheusSmokeTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class PrometheusSmokeTest {
1919
private static final int PROMETHEUS_PORT = 9090;
2020

2121
@RegisterExtension
22-
static final SmokeTestInstrumentationExtension testing =
22+
static final SmokeTestInstrumentationExtension<Integer> testing =
2323
SmokeTestInstrumentationExtension.springBoot("20211213.1570880324")
2424
.env("OTEL_METRICS_EXPORTER", "prometheus")
2525
.env("OTEL_EXPORTER_PROMETHEUS_PORT", String.valueOf(PROMETHEUS_PORT))

smoke-tests/src/test/java/io/opentelemetry/smoketest/QuarkusSmokeTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
class QuarkusSmokeTest {
1818

1919
@RegisterExtension
20-
static final SmokeTestInstrumentationExtension testing =
21-
SmokeTestInstrumentationExtension.builder(
20+
static final SmokeTestInstrumentationExtension<Integer> testing =
21+
SmokeTestInstrumentationExtension.<Integer>builder(
2222
jdk ->
2323
String.format(
2424
"ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-quarkus:jdk%s-20250915.17728045126",

smoke-tests/src/test/java/io/opentelemetry/smoketest/SdkDisabledSmokeTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
class SdkDisabledSmokeTest {
1818

1919
@RegisterExtension
20-
static final SmokeTestInstrumentationExtension testing =
20+
static final SmokeTestInstrumentationExtension<Integer> testing =
2121
SmokeTestInstrumentationExtension.springBoot("20211213.1570880324")
2222
.env("OTEL_SDK_DISABLED", "true")
2323
.telemetryTimeout(Duration.ofSeconds(5))

0 commit comments

Comments
 (0)