Skip to content

Commit 2e9c2c6

Browse files
committed
WIP
1 parent aa7092b commit 2e9c2c6

File tree

4 files changed

+71
-0
lines changed

4 files changed

+71
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
muzzle {
2+
pass {
3+
group = "org.crac"
4+
module = "crac"
5+
versions = "[1.3,)"
6+
}
7+
}
8+
9+
apply from: "$rootDir/gradle/java.gradle"
10+
11+
dependencies {
12+
compileOnly group: 'org.crac', name: 'crac', version: '1.3.0'
13+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package trace.instrumentation.crac;
2+
3+
import static net.bytebuddy.matcher.ElementMatchers.isTypeInitializer;
4+
5+
import com.google.auto.service.AutoService;
6+
import datadog.trace.agent.tooling.Instrumenter;
7+
import datadog.trace.agent.tooling.InstrumenterModule;
8+
import net.bytebuddy.asm.Advice;
9+
import org.crac.Core;
10+
11+
@AutoService(InstrumenterModule.class)
12+
public final class CracRuntimeInstrumentation extends InstrumenterModule.Tracing
13+
implements Instrumenter.ForSingleType {
14+
15+
public CracRuntimeInstrumentation() {
16+
super("crac");
17+
}
18+
19+
@Override
20+
public String instrumentedType() {
21+
return "org.crac.Crac";
22+
}
23+
24+
@Override
25+
public String[] helperClassNames() {
26+
return new String[] {packageName + ".TracerResource"};
27+
}
28+
29+
@Override
30+
public void methodAdvice(Instrumenter.MethodTransformer transformer) {
31+
transformer.applyAdvice(
32+
isTypeInitializer(), CracRuntimeInstrumentation.class.getName() + "$TracerResourceAdvice");
33+
}
34+
35+
public static class TracerResourceAdvice {
36+
@Advice.OnMethodExit(suppress = Throwable.class)
37+
public static void onExit() {
38+
Core.getGlobalContext().register(new TracerResource());
39+
}
40+
}
41+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package trace.instrumentation.crac;
2+
3+
import org.crac.Context;
4+
import org.crac.Resource;
5+
6+
public final class TracerResource implements Resource {
7+
@Override
8+
public void beforeCheckpoint(Context<? extends Resource> context) throws Exception {
9+
System.err.println("BEFORE CHECKPOINT");
10+
}
11+
12+
@Override
13+
public void afterRestore(Context<? extends Resource> context) throws Exception {
14+
System.err.println("AFTER RESTORE");
15+
}
16+
}

settings.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@ include ':dd-java-agent:instrumentation:couchbase:couchbase-2.0'
218218
include ':dd-java-agent:instrumentation:couchbase:couchbase-2.6'
219219
include ':dd-java-agent:instrumentation:couchbase:couchbase-3.1'
220220
include ':dd-java-agent:instrumentation:couchbase:couchbase-3.2'
221+
include ':dd-java-agent:instrumentation:crac'
221222
include ':dd-java-agent:instrumentation:cucumber'
222223
include ':dd-java-agent:instrumentation:cxf-2.1'
223224
include ':dd-java-agent:instrumentation:datanucleus-4'

0 commit comments

Comments
 (0)