Skip to content

Commit d57ed80

Browse files
committed
Refactor
1 parent 735e827 commit d57ed80

File tree

6 files changed

+47
-83
lines changed

6 files changed

+47
-83
lines changed

dd-java-agent/instrumentation/mule-4/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ muzzle {
3333
assertInverse true
3434
javaVersion = "17"
3535
excludeDependency 'com.google.code.findbugs:jsr305'
36+
additionalDependencies +="org.mule.runtime:mule-tracer-customization-impl:4.5.0"
3637
}
3738
}
3839

@@ -69,7 +70,6 @@ configurations {
6970
}
7071

7172
configurations.all {
72-
// WHY this is in the CI classpath and not locally?
7373
exclude group: 'pull-parser', module: 'pull-parser'
7474

7575
resolutionStrategy {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package datadog.trace.instrumentation.mule4;
2+
3+
import datadog.trace.agent.tooling.InstrumenterModule;
4+
import java.util.HashMap;
5+
import java.util.Map;
6+
7+
public abstract class AbstractMuleInstrumentation extends InstrumenterModule.Tracing {
8+
public AbstractMuleInstrumentation() {
9+
super("mule");
10+
}
11+
12+
@Override
13+
protected boolean defaultEnabled() {
14+
return false;
15+
}
16+
17+
@Override
18+
public Map<String, String> contextStore() {
19+
final Map<String, String> contextStore = new HashMap<>();
20+
contextStore.put("org.mule.runtime.api.event.EventContext", packageName + ".SpanState");
21+
contextStore.put(
22+
"org.mule.runtime.tracer.api.span.info.InitialSpanInfo",
23+
"org.mule.runtime.api.component.Component");
24+
return contextStore;
25+
}
26+
27+
@Override
28+
public String[] helperClassNames() {
29+
return new String[] {
30+
packageName + ".MuleDecorator",
31+
packageName + ".DDEventTracer",
32+
packageName + ".SpanState",
33+
packageName + ".NoopMuleSpan",
34+
};
35+
}
36+
}

dd-java-agent/instrumentation/mule-4/src/main/java/datadog/trace/instrumentation/mule4/ComponentMessageInstrumentation.java

+3-27
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
import datadog.trace.bootstrap.InstrumentationContext;
88
import datadog.trace.bootstrap.instrumentation.api.AgentScope;
99
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
10-
import java.util.Collections;
11-
import java.util.Map;
1210
import net.bytebuddy.asm.Advice;
1311
import net.bytebuddy.matcher.ElementMatchers;
1412
import org.mule.runtime.api.event.EventContext;
@@ -20,29 +18,12 @@
2018
* handler.
2119
*/
2220
@AutoService(InstrumenterModule.class)
23-
public class ComponentMessageInstrumentation extends InstrumenterModule.Tracing
21+
public class ComponentMessageInstrumentation extends AbstractMuleInstrumentation
2422
implements Instrumenter.ForSingleType {
2523

26-
public ComponentMessageInstrumentation() {
27-
super("mule");
28-
}
29-
30-
@Override
31-
protected boolean defaultEnabled() {
32-
return false;
33-
}
34-
35-
@Override
36-
public Map<String, String> contextStore() {
37-
return Collections.singletonMap(
38-
"org.mule.runtime.api.event.EventContext", packageName + ".SpanState");
39-
}
40-
4124
@Override
42-
public String[] helperClassNames() {
43-
return new String[] {
44-
packageName + ".SpanState",
45-
};
25+
public String instrumentedType() {
26+
return "org.mule.runtime.module.extension.internal.runtime.operation.ComponentMessageProcessor";
4627
}
4728

4829
@Override
@@ -56,11 +37,6 @@ public void methodAdvice(MethodTransformer transformer) {
5637
getClass().getName() + "$ProcessAdvice");
5738
}
5839

59-
@Override
60-
public String instrumentedType() {
61-
return "org.mule.runtime.module.extension.internal.runtime.operation.ComponentMessageProcessor";
62-
}
63-
6440
public static class ProcessAdvice {
6541
@Advice.OnMethodEnter(suppress = Throwable.class)
6642
public static AgentScope before(@Advice.Argument(0) final CoreEvent event) {

dd-java-agent/instrumentation/mule-4/src/main/java/datadog/trace/instrumentation/mule4/EventContextInstrumentation.java

+1-24
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,20 @@
11
package datadog.trace.instrumentation.mule4;
22

3-
import static java.util.Collections.singletonMap;
43
import static net.bytebuddy.matcher.ElementMatchers.isConstructor;
54

65
import com.google.auto.service.AutoService;
76
import datadog.trace.agent.tooling.Instrumenter;
87
import datadog.trace.agent.tooling.InstrumenterModule;
9-
import java.util.Map;
108

119
/**
1210
* Events in Mule have an {@code EventContext} attached to them, that travels with the event through
1311
* the system. We attach the active span to the concrete implementation of the {@code EventContext}
1412
* and activate/deactivate the span when mule changes which event it is processing.
1513
*/
1614
@AutoService(InstrumenterModule.class)
17-
public final class EventContextInstrumentation extends InstrumenterModule.Tracing
15+
public final class EventContextInstrumentation extends AbstractMuleInstrumentation
1816
implements Instrumenter.ForKnownTypes {
1917

20-
public EventContextInstrumentation() {
21-
super("mule");
22-
}
23-
24-
@Override
25-
protected boolean defaultEnabled() {
26-
return false;
27-
}
28-
2918
@Override
3019
public String[] knownMatchingTypes() {
3120
return new String[] {
@@ -34,18 +23,6 @@ public String[] knownMatchingTypes() {
3423
};
3524
}
3625

37-
@Override
38-
public Map<String, String> contextStore() {
39-
return singletonMap("org.mule.runtime.api.event.EventContext", packageName + ".SpanState");
40-
}
41-
42-
@Override
43-
public String[] helperClassNames() {
44-
return new String[] {
45-
packageName + ".SpanState",
46-
};
47-
}
48-
4926
@Override
5027
public void methodAdvice(MethodTransformer transformer) {
5128
transformer.applyAdvice(isConstructor(), packageName + ".EventContextCreationAdvice");

dd-java-agent/instrumentation/mule-4/src/main/java/datadog/trace/instrumentation/mule4/EventTracerInstrumentation.java

+1-31
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
import datadog.trace.agent.tooling.InstrumenterModule;
66
import datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers;
77
import datadog.trace.bootstrap.InstrumentationContext;
8-
import java.util.HashMap;
9-
import java.util.Map;
108
import net.bytebuddy.asm.Advice;
119
import org.mule.runtime.api.component.Component;
1210
import org.mule.runtime.api.event.EventContext;
@@ -15,36 +13,8 @@
1513
import org.mule.runtime.tracer.api.span.info.InitialSpanInfo;
1614

1715
@AutoService(InstrumenterModule.class)
18-
public class EventTracerInstrumentation extends InstrumenterModule.Tracing
16+
public class EventTracerInstrumentation extends AbstractMuleInstrumentation
1917
implements Instrumenter.ForSingleType {
20-
public EventTracerInstrumentation() {
21-
super("mule");
22-
}
23-
24-
@Override
25-
protected boolean defaultEnabled() {
26-
return false;
27-
}
28-
29-
@Override
30-
public Map<String, String> contextStore() {
31-
final Map<String, String> contextStore = new HashMap<>();
32-
contextStore.put("org.mule.runtime.api.event.EventContext", packageName + ".SpanState");
33-
contextStore.put(
34-
"org.mule.runtime.tracer.api.span.info.InitialSpanInfo",
35-
"org.mule.runtime.api.component.Component");
36-
return contextStore;
37-
}
38-
39-
@Override
40-
public String[] helperClassNames() {
41-
return new String[] {
42-
packageName + ".MuleDecorator",
43-
packageName + ".DDEventTracer",
44-
packageName + ".SpanState",
45-
packageName + ".NoopMuleSpan",
46-
};
47-
}
4818

4919
@Override
5020
public String instrumentedType() {

dd-java-agent/instrumentation/mule-4/src/main/java/datadog/trace/instrumentation/mule4/ExecutionInitialSpanInfoInstrumentation.java

+5
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ public ExecutionInitialSpanInfoInstrumentation() {
2222
super("mule");
2323
}
2424

25+
@Override
26+
protected boolean defaultEnabled() {
27+
return false;
28+
}
29+
2530
@Override
2631
public String instrumentedType() {
2732
return "org.mule.runtime.tracer.customization.impl.info.ExecutionInitialSpanInfo";

0 commit comments

Comments
 (0)