Skip to content

Commit 8bf78ad

Browse files
committed
Move jpms clearance advice to bootstrap
1 parent 8b63e5a commit 8bf78ad

File tree

5 files changed

+11
-34
lines changed

5 files changed

+11
-34
lines changed

dd-java-agent/agent-bootstrap/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ compileMain_java11Java.configure {
4545
dependencies {
4646
main_java11CompileOnly project(':internal-api')
4747
main_java11CompileOnly sourceSets.main.output
48+
main_java11CompileOnly libs.bytebuddy
4849
}
4950

5051
jar {

dd-java-agent/instrumentation/mule-4/src/main/java11/datadog/trace/instrumentation/mule4/JpmsAdvisingHelper.java renamed to dd-java-agent/agent-bootstrap/src/main/java11/datadog/trace/bootstrap/instrumentation/jpms/JpmsAdvisingHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package datadog.trace.instrumentation.mule4;
1+
package datadog.trace.bootstrap.instrumentation.jpms;
22

33
import datadog.trace.api.GenericClassValue;
44
import java.util.concurrent.atomic.AtomicBoolean;

dd-java-agent/instrumentation/mule-4/src/main/java11/datadog/trace/instrumentation/mule4/JpmsClearanceAdvice.java renamed to dd-java-agent/agent-bootstrap/src/main/java11/datadog/trace/bootstrap/instrumentation/jpms/JpmsClearanceAdvice.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1-
package datadog.trace.instrumentation.mule4;
1+
package datadog.trace.bootstrap.instrumentation.jpms;
22

3-
import static datadog.trace.instrumentation.mule4.JpmsAdvisingHelper.ALREADY_PROCESSED_CACHE;
3+
import static datadog.trace.bootstrap.instrumentation.jpms.JpmsAdvisingHelper.ALREADY_PROCESSED_CACHE;
44

55
import net.bytebuddy.asm.Advice;
66
import net.bytebuddy.implementation.bytecode.assign.Assigner;
77

8+
/**
9+
* This advice can be used by any instrumentation needing that the instrumented class export its
10+
* package to the unnamed module (where our things resides). This ensures that an instrumentation
11+
* will grant visibility to that class.
12+
*/
813
public class JpmsClearanceAdvice {
914
@Advice.OnMethodExit(suppress = Throwable.class)
1015
public static void openOnReturn(@Advice.This(typing = Assigner.Typing.DYNAMIC) Object self) {

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

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,6 @@ configurations.all {
9090
}
9191

9292
sourceSets {
93-
main_java11 {
94-
java.srcDirs "${project.projectDir}/src/main/java11"
95-
}
9693
test {
9794
output.dir("$buildDir/generated-resources/test", builtBy: 'generateAppResources')
9895
}
@@ -104,20 +101,6 @@ sourceSets {
104101
}
105102
}
106103

107-
compileMain_java11Java.configure {
108-
setJavaVersion(it, 11)
109-
sourceCompatibility = JavaVersion.VERSION_1_8
110-
targetCompatibility = JavaVersion.VERSION_1_8
111-
}
112-
113-
jar {
114-
from sourceSets.main_java11.output
115-
}
116-
117-
forbiddenApisMain_java11 {
118-
failOnMissingClasses = false
119-
}
120-
121104
tasks.named("compileTestGroovy").configure {
122105
dependsOn 'mvnPackage', 'extractMuleServices'
123106
}
@@ -138,13 +121,7 @@ tasks.named("compileLatestDepForkedTestJava").configure {
138121
dependencies {
139122
compileOnly group: 'org.mule.runtime', name: 'mule-core', version: muleVersion
140123
compileOnly group: 'org.mule.runtime', name: 'mule-tracer-customization-impl', version: muleVersion
141-
compileOnly sourceSets.main_java11.output
142-
143-
main_java11CompileOnly project(':internal-api')
144-
main_java11CompileOnly project(':dd-java-agent:agent-tooling')
145-
main_java11CompileOnly project(':dd-java-agent:agent-bootstrap')
146124

147-
testImplementation sourceSets.main_java11.output
148125
testImplementation project(':dd-java-agent:instrumentation:aws-common')
149126
testImplementation project(':dd-java-agent:instrumentation:reactor-core-3.1')
150127
testImplementation project(':dd-java-agent:instrumentation:reactive-streams')

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

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,6 @@ public String[] knownMatchingTypes() {
2929
};
3030
}
3131

32-
@Override
33-
public String[] helperClassNames() {
34-
return new String[] {
35-
packageName + ".JpmsAdvisingHelper",
36-
};
37-
}
38-
3932
@Override
4033
public Reference[] additionalMuzzleReferences() {
4134
return new Reference[] {
@@ -54,6 +47,7 @@ public Reference[] additionalMuzzleReferences() {
5447
@Override
5548
public void methodAdvice(MethodTransformer transformer) {
5649
// it does not work with typeInitializer()
57-
transformer.applyAdvice(isConstructor(), packageName + ".JpmsClearanceAdvice");
50+
transformer.applyAdvice(
51+
isConstructor(), "datadog.trace.bootstrap.instrumentation.jpms.JpmsClearanceAdvice");
5852
}
5953
}

0 commit comments

Comments
 (0)