Skip to content

Commit f0eec59

Browse files
Fix Gradle v8.9 instrumentation (#7319)
1 parent 1538da0 commit f0eec59

2 files changed

Lines changed: 12 additions & 16 deletions

File tree

dd-java-agent/instrumentation/gradle/src/main/groovy/datadog/trace/instrumentation/gradle/CiVisibilityGradleListenerProvider.java renamed to dd-java-agent/instrumentation/gradle/src/main/groovy/datadog/trace/instrumentation/gradle/CiVisibilityGradleListenerInjector.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
package datadog.trace.instrumentation.gradle;
22

33
import org.gradle.initialization.ClassLoaderRegistry;
4-
import org.gradle.internal.service.ServiceRegistration;
4+
import org.gradle.internal.service.ServiceRegistry;
5+
import org.gradle.internal.service.scopes.BuildScopeServices;
56

6-
public class CiVisibilityGradleListenerProvider {
7-
private final ClassLoaderRegistry classLoaderRegistry;
7+
public class CiVisibilityGradleListenerInjector {
88

9-
public CiVisibilityGradleListenerProvider(ClassLoaderRegistry classLoaderRegistry) {
10-
this.classLoaderRegistry = classLoaderRegistry;
11-
}
12-
13-
public void configure(ServiceRegistration serviceRegistration) {
14-
Class<?> ciVisibilityGradleListener = loadCiVisibilityGradleListener();
15-
serviceRegistration.add(ciVisibilityGradleListener);
9+
public static void inject(ServiceRegistry parentServices, BuildScopeServices buildScopeServices) {
10+
ClassLoaderRegistry classLoaderRegistry = parentServices.get(ClassLoaderRegistry.class);
11+
Class<?> ciVisibilityGradleListener = loadCiVisibilityGradleListener(classLoaderRegistry);
12+
buildScopeServices.register(
13+
serviceRegistration -> serviceRegistration.add(ciVisibilityGradleListener));
1614
}
1715

1816
/**
@@ -24,7 +22,7 @@ public void configure(ServiceRegistration serviceRegistration) {
2422
* org.gradle.api.tasks.testing.Test} task), which is a plugin. Therefore, we cannot reference its
2523
* {@code Class} instance directly, and instead have to load it explicitly.
2624
*/
27-
private Class<?> loadCiVisibilityGradleListener() {
25+
private static Class<?> loadCiVisibilityGradleListener(ClassLoaderRegistry classLoaderRegistry) {
2826
try {
2927
return classLoaderRegistry
3028
.getPluginsClassLoader()

dd-java-agent/instrumentation/gradle/src/main/groovy/datadog/trace/instrumentation/gradle/GradleBuildScopeServicesInstrumentation.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import java.util.Set;
1111
import net.bytebuddy.asm.Advice;
1212
import net.bytebuddy.matcher.ElementMatcher;
13-
import org.gradle.initialization.ClassLoaderRegistry;
1413
import org.gradle.internal.service.ServiceRegistry;
1514
import org.gradle.internal.service.scopes.BuildScopeServices;
1615

@@ -36,7 +35,7 @@ public String instrumentedType() {
3635
@Override
3736
public String[] helperClassNames() {
3837
return new String[] {
39-
packageName + ".CiVisibilityGradleListenerProvider",
38+
packageName + ".CiVisibilityGradleListenerInjector",
4039
};
4140
}
4241

@@ -55,9 +54,8 @@ public static class Construct {
5554
@Advice.OnMethodExit(suppress = Throwable.class)
5655
public static void afterConstructor(
5756
@Advice.This final BuildScopeServices buildScopeServices,
58-
@Advice.Argument(0) final ServiceRegistry parent) {
59-
ClassLoaderRegistry classLoaderRegistry = parent.get(ClassLoaderRegistry.class);
60-
buildScopeServices.addProvider(new CiVisibilityGradleListenerProvider(classLoaderRegistry));
57+
@Advice.Argument(0) final ServiceRegistry parentServices) {
58+
CiVisibilityGradleListenerInjector.inject(parentServices, buildScopeServices);
6159
}
6260
}
6361
}

0 commit comments

Comments
 (0)