Skip to content

Commit 269e330

Browse files
authored
Merge pull request #390 from DataDog/mar-kolya/enable-lettuce-fix-tests
Do not use advice class names in Lettuce instrumentation directly
2 parents 46428dc + 7c62e10 commit 269e330

File tree

3 files changed

+24
-22
lines changed

3 files changed

+24
-22
lines changed

dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceAsyncCommandsInstrumentation.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
@AutoService(Instrumenter.class)
1313
public class LettuceAsyncCommandsInstrumentation extends Instrumenter.Default {
1414

15+
public static final String PACKAGE =
16+
LettuceAsyncCommandsInstrumentation.class.getPackage().getName();
17+
1518
public LettuceAsyncCommandsInstrumentation() {
1619
super("lettuce", "lettuce-5-async");
1720
}
@@ -29,9 +32,7 @@ public ElementMatcher<? super ClassLoader> classLoaderMatcher() {
2932
@Override
3033
public String[] helperClassNames() {
3134
return new String[] {
32-
LettuceAsyncCommandsInstrumentation.class.getPackage().getName() + ".LettuceAsyncBiFunction",
33-
LettuceAsyncCommandsInstrumentation.class.getPackage().getName()
34-
+ ".LettuceInstrumentationUtil"
35+
PACKAGE + ".LettuceAsyncBiFunction", PACKAGE + ".LettuceInstrumentationUtil"
3536
};
3637
}
3738

@@ -42,7 +43,8 @@ public Map<ElementMatcher, String> transformers() {
4243
isMethod()
4344
.and(named("dispatch"))
4445
.and(takesArgument(0, named("io.lettuce.core.protocol.RedisCommand"))),
45-
LettuceAsyncCommandsAdvice.class.getName());
46+
// Cannot reference class directly here because this would lead to class load failure on Java7
47+
PACKAGE + ".LettuceAsyncCommandsAdvice");
4648
return transformers;
4749
}
4850
}

dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceClientInstrumentation.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@
1212
@AutoService(Instrumenter.class)
1313
public final class LettuceClientInstrumentation extends Instrumenter.Default {
1414

15+
public static final String PACKAGE = LettuceClientInstrumentation.class.getPackage().getName();
16+
1517
private static final String[] HELPER_CLASS_NAMES =
1618
new String[] {
1719
LettuceReactiveCommandsInstrumentation.class.getPackage().getName()
1820
+ ".LettuceInstrumentationUtil",
19-
LettuceClientInstrumentation.class.getPackage().getName() + ".LettuceAsyncBiFunction"
21+
PACKAGE + ".LettuceAsyncBiFunction"
2022
};
2123

2224
public LettuceClientInstrumentation() {
@@ -48,7 +50,8 @@ public Map<ElementMatcher, String> transformers() {
4850
.and(nameStartsWith("connect"))
4951
.and(nameEndsWith("Async"))
5052
.and(takesArgument(1, named("io.lettuce.core.RedisURI"))),
51-
ConnectionFutureAdvice.class.getName());
53+
// Cannot reference class directly here because this would lead to class load failure on Java7
54+
PACKAGE + ".ConnectionFutureAdvice");
5255
return transformers;
5356
}
5457
}

dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceReactiveCommandsInstrumentation.java

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,16 @@
55

66
import com.google.auto.service.AutoService;
77
import datadog.trace.agent.tooling.Instrumenter;
8-
import datadog.trace.instrumentation.lettuce.rx.LettuceFluxCreationAdvice;
9-
import datadog.trace.instrumentation.lettuce.rx.LettuceMonoCreationAdvice;
108
import java.util.HashMap;
119
import java.util.Map;
1210
import net.bytebuddy.matcher.ElementMatcher;
1311

1412
@AutoService(Instrumenter.class)
1513
public class LettuceReactiveCommandsInstrumentation extends Instrumenter.Default {
1614

15+
public static final String PACKAGE =
16+
LettuceReactiveCommandsInstrumentation.class.getPackage().getName();
17+
1718
public LettuceReactiveCommandsInstrumentation() {
1819
super("lettuce", "lettuce-5-rx");
1920
}
@@ -31,18 +32,12 @@ public ElementMatcher<? super ClassLoader> classLoaderMatcher() {
3132
@Override
3233
public String[] helperClassNames() {
3334
return new String[] {
34-
LettuceReactiveCommandsInstrumentation.class.getPackage().getName()
35-
+ ".LettuceInstrumentationUtil",
36-
LettuceReactiveCommandsInstrumentation.class.getPackage().getName()
37-
+ ".rx.LettuceMonoCreationAdvice",
38-
LettuceReactiveCommandsInstrumentation.class.getPackage().getName()
39-
+ ".rx.LettuceMonoDualConsumer",
40-
LettuceReactiveCommandsInstrumentation.class.getPackage().getName()
41-
+ ".rx.LettuceFluxCreationAdvice",
42-
LettuceReactiveCommandsInstrumentation.class.getPackage().getName()
43-
+ ".rx.LettuceFluxTerminationRunnable",
44-
LettuceReactiveCommandsInstrumentation.class.getPackage().getName()
45-
+ ".rx.LettuceFluxTerminationRunnable$FluxOnSubscribeConsumer"
35+
PACKAGE + ".LettuceInstrumentationUtil",
36+
PACKAGE + ".rx.LettuceMonoCreationAdvice",
37+
PACKAGE + ".rx.LettuceMonoDualConsumer",
38+
PACKAGE + ".rx.LettuceFluxCreationAdvice",
39+
PACKAGE + ".rx.LettuceFluxTerminationRunnable",
40+
PACKAGE + ".rx.LettuceFluxTerminationRunnable$FluxOnSubscribeConsumer"
4641
};
4742
}
4843

@@ -54,14 +49,16 @@ public Map<ElementMatcher, String> transformers() {
5449
.and(named("createMono"))
5550
.and(takesArgument(0, named("java.util.function.Supplier")))
5651
.and(returns(named("reactor.core.publisher.Mono"))),
57-
LettuceMonoCreationAdvice.class.getName());
52+
// Cannot reference class directly here because this would lead to class load failure on Java7
53+
PACKAGE + ".rx.LettuceMonoCreationAdvice");
5854
transformers.put(
5955
isMethod()
6056
.and(nameStartsWith("create"))
6157
.and(nameEndsWith("Flux"))
6258
.and(takesArgument(0, named("java.util.function.Supplier")))
6359
.and(returns(named(("reactor.core.publisher.Flux")))),
64-
LettuceFluxCreationAdvice.class.getName());
60+
// Cannot reference class directly here because this would lead to class load failure on Java7
61+
PACKAGE + ".rx.LettuceFluxCreationAdvice");
6562

6663
return transformers;
6764
}

0 commit comments

Comments
 (0)