From d276733060ba25ea86454518ed34224c158b1400 Mon Sep 17 00:00:00 2001 From: Andrea Marziali Date: Thu, 6 Feb 2025 11:55:38 +0100 Subject: [PATCH] fix wildfly module dependencies --- .../instrumentation/wildfly-9/build.gradle | 36 ++++--------------- .../java/test/ModulePatchInstrumentation.java | 13 +++++-- 2 files changed, 18 insertions(+), 31 deletions(-) diff --git a/dd-java-agent/instrumentation/wildfly-9/build.gradle b/dd-java-agent/instrumentation/wildfly-9/build.gradle index 10d93694ef7..c40ee0cae67 100644 --- a/dd-java-agent/instrumentation/wildfly-9/build.gradle +++ b/dd-java-agent/instrumentation/wildfly-9/build.gradle @@ -8,24 +8,6 @@ repositories { maven { url 'https://maven.repository.redhat.com/ga/' } - ivy { - url 'https://download.jboss.org/' - patternLayout { - artifact '/[organisation]/[revision]/[module]/[organisation]-[module]-[revision].[ext]' - metadataSources { - artifact() - } - } - } - ivy { - url 'https://github.com/wildfly' - patternLayout { - artifact '/[organisation]/releases/download/[revision]/[organisation]-[revision].[ext]' - metadataSources { - artifact() - } - } - } } muzzle { @@ -46,9 +28,6 @@ addTestSuiteExtendingForDir("latestDepForkedTest", "latestDepTest", "test") configurations { wildflyTest wildflyLatestDepTest - wildflyLatestPoll { - canBeResolved = true - } } dependencies { @@ -68,17 +47,17 @@ dependencies { testRuntimeOnly group: 'org.jboss.shrinkwrap', name: 'shrinkwrap-spi', version: '1.2.6' testRuntimeOnly group: 'org.jboss.shrinkwrap', name: 'shrinkwrap-impl-base', version: '1.2.6' - wildflyTest "wildfly:servlet:21.0.0.Final@zip" + wildflyTest "org.wildfly:wildfly-dist:21.0.0.Final@zip" latestDepTestImplementation group: 'org.wildfly.core', name: 'wildfly-embedded', version: '+' latestDepTestImplementation group: 'org.wildfly.core', name: 'wildfly-server', version: '+' - wildflyLatestPoll group: 'org.wildfly', name: 'wildfly-dist', version: '+' + wildflyLatestDepTest "org.wildfly:wildfly-dist:+@zip" - configurations.wildflyLatestPoll.resolve() - def latestWildflyVersion = configurations.wildflyLatestPoll.resolvedConfiguration.getResolvedArtifacts().find { + configurations.wildflyLatestDepTest.resolve() + def latestWildflyVersion = configurations.wildflyLatestDepTest.resolvedConfiguration.getResolvedArtifacts().find { it.name == "wildfly-dist" }.moduleVersion.id.version - wildflyLatestDepTest "wildfly:wildfly:$latestWildflyVersion@zip" + latestDepForkedTest { configure { jvmArgs += ["-Dtest.jboss.home=$buildDir/wildfly-${latestWildflyVersion}"] @@ -110,14 +89,13 @@ def extractWildfly(config, zipFileNamePrefix, sync) { tasks.register("extractWildfly", Copy) { dependsOn configurations.wildflyTest mustRunAfter tasks.compileTestGroovy - extractWildfly(configurations.wildflyTest, "servlet", it) + extractWildfly(configurations.wildflyTest, "wildfly-dist", it) // When tests are disabled this would still be run, so disable this manually onlyIf { !project.rootProject.hasProperty("skipTests") } } tasks.register("extractLatestWildfly", Copy) { - dependsOn configurations.wildflyLatestDepTest mustRunAfter tasks.compileLatestDepTestGroovy mustRunAfter tasks.compileLatestDepForkedTestGroovy mustRunAfter tasks.compileLatestDepTestJava @@ -186,7 +164,7 @@ processTestResources { forkedTest { configure { - jvmArgs += ["-Dtest.jboss.home=$buildDir/wildfly-servlet-21.0.0.Final"] + jvmArgs += ["-Dtest.jboss.home=$buildDir/wildfly-21.0.0.Final"] } } diff --git a/dd-java-agent/instrumentation/wildfly-9/src/test/java/test/ModulePatchInstrumentation.java b/dd-java-agent/instrumentation/wildfly-9/src/test/java/test/ModulePatchInstrumentation.java index 84095fa4762..21924a6b35d 100644 --- a/dd-java-agent/instrumentation/wildfly-9/src/test/java/test/ModulePatchInstrumentation.java +++ b/dd-java-agent/instrumentation/wildfly-9/src/test/java/test/ModulePatchInstrumentation.java @@ -6,8 +6,10 @@ import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.agent.tooling.InstrumenterModule; import java.net.URL; +import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; +import java.util.List; import net.bytebuddy.asm.Advice; import org.jboss.modules.Module; @@ -41,8 +43,15 @@ public static void onExit( @Advice.This Module self, @Advice.Argument(0) String name, @Advice.Return(readOnly = false) Enumeration ret) { - if (self.getName().endsWith(".jdk")) { - ret = Collections.emptyEnumeration(); + if ("META-INF/services/javax.servlet.ServletContainerInitializer".equals(name)) { + final List list = new ArrayList<>(); + while (ret.hasMoreElements()) { + URL u = ret.nextElement(); + if (!u.toString().contains("logback-classic")) { + list.add(u); + } + } + ret = Collections.enumeration(list); } } }