Skip to content

Commit 1664d58

Browse files
Merge branch 'master' into alexeyk/groovy-spock-cleanup-classpath
2 parents a821fc4 + c714e59 commit 1664d58

File tree

515 files changed

+2956
-1737
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

515 files changed

+2956
-1737
lines changed

.gitlab-ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ workflow:
6161
- "17"
6262
- "21"
6363
- "25"
64+
- "26"
6465
- "semeru11"
6566
- "oracle8"
6667
- "zulu8"

buildSrc/src/main/kotlin/datadog/gradle/plugin/config/ConfigInversionLinter.kt

Lines changed: 54 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,40 @@ class ConfigInversionLinter : Plugin<Project> {
2626
}
2727
}
2828

29+
// Data class for fields from generated class
30+
private data class LoadedConfigFields(
31+
val supported: Set<String>,
32+
val aliasMapping: Map<String, String> = emptyMap()
33+
)
34+
35+
// Cache for fields from generated class
36+
private var cachedConfigFields: LoadedConfigFields? = null
37+
38+
// Helper function to load fields from the generated class
39+
private fun loadConfigFields(
40+
mainSourceSetOutput: org.gradle.api.file.FileCollection,
41+
generatedClassName: String
42+
): LoadedConfigFields {
43+
return cachedConfigFields ?: run {
44+
val urls = mainSourceSetOutput.files.map { it.toURI().toURL() }.toTypedArray()
45+
URLClassLoader(urls, LoadedConfigFields::class.java.classLoader).use { cl ->
46+
val clazz = Class.forName(generatedClassName, true, cl)
47+
48+
val supportedField = clazz.getField("SUPPORTED").get(null)
49+
@Suppress("UNCHECKED_CAST")
50+
val supportedSet = when (supportedField) {
51+
is Set<*> -> supportedField as Set<String>
52+
is Map<*, *> -> supportedField.keys as Set<String>
53+
else -> throw IllegalStateException("SUPPORTED field must be either Set<String> or Map<String, Any>, but was ${supportedField?.javaClass}")
54+
}
55+
56+
@Suppress("UNCHECKED_CAST")
57+
val aliasMappingMap = clazz.getField("ALIAS_MAPPING").get(null) as Map<String, String>
58+
LoadedConfigFields(supportedSet, aliasMappingMap)
59+
}.also { cachedConfigFields = it }
60+
}
61+
}
62+
2963
/** Registers `logEnvVarUsages` (scan for DD_/OTEL_ tokens and fail if unsupported). */
3064
private fun registerLogEnvVarUsages(target: Project, extension: SupportedTracerConfigurations) {
3165
val ownerPath = extension.configOwnerPath
@@ -52,16 +86,11 @@ private fun registerLogEnvVarUsages(target: Project, extension: SupportedTracerC
5286
inputs.files(javaFiles)
5387
outputs.upToDateWhen { true }
5488
doLast {
55-
// 1) Build classloader from the owner project’s runtime classpath
56-
val urls = mainSourceSetOutput.get().get().files.map { it.toURI().toURL() }.toTypedArray()
57-
val supported: Set<String> = URLClassLoader(urls, javaClass.classLoader).use { cl ->
58-
// 2) Load the generated class + read static field
59-
val clazz = Class.forName(generatedFile.get(), true, cl)
60-
@Suppress("UNCHECKED_CAST")
61-
clazz.getField("SUPPORTED").get(null) as Set<String>
62-
}
89+
// 1) Load configuration fields from the generated class
90+
val configFields = loadConfigFields(mainSourceSetOutput.get().get(), generatedFile.get())
91+
val supported = configFields.supported
6392

64-
// 3) Scan our sources and compare
93+
// 2) Scan our sources and compare
6594
val repoRoot = target.projectDir.toPath()
6695
val tokenRegex = Regex("\"(?:DD_|OTEL_)[A-Za-z0-9_]+\"")
6796

@@ -79,7 +108,7 @@ private fun registerLogEnvVarUsages(target: Project, extension: SupportedTracerC
79108
}
80109
tokenRegex.findAll(raw).forEach { m ->
81110
val token = m.value.trim('"')
82-
if (token !in supported) add("$rel:${i + 1} -> Unsupported token'$token'")
111+
if (token !in supported) add("$rel:${i + 1} -> Unsupported token '$token'")
83112
}
84113
}
85114
}
@@ -167,15 +196,9 @@ private fun registerCheckConfigStringsTask(project: Project, extension: Supporte
167196
throw GradleException("Config directory not found: ${configDir.absolutePath}")
168197
}
169198

170-
val urls = mainSourceSetOutput.get().get().files.map { it.toURI().toURL() }.toTypedArray()
171-
val (supported, aliasMapping) = URLClassLoader(urls, javaClass.classLoader).use { cl ->
172-
val clazz = Class.forName(generatedFile.get(), true, cl)
173-
@Suppress("UNCHECKED_CAST")
174-
val supportedSet = clazz.getField("SUPPORTED").get(null) as Set<String>
175-
@Suppress("UNCHECKED_CAST")
176-
val aliasMappingMap = clazz.getField("ALIAS_MAPPING").get(null) as Map<String, String>
177-
Pair(supportedSet, aliasMappingMap)
178-
}
199+
val configFields = loadConfigFields(mainSourceSetOutput.get().get(), generatedFile.get())
200+
val supported = configFields.supported
201+
val aliasMapping = configFields.aliasMapping
179202

180203
var parserConfig = ParserConfiguration()
181204
parserConfig.setLanguageLevel(ParserConfiguration.LanguageLevel.JAVA_8)
@@ -192,23 +215,23 @@ private fun registerCheckConfigStringsTask(project: Project, extension: Supporte
192215
.map { it as? FieldDeclaration }
193216
.ifPresent { field ->
194217
if (field.hasModifiers(Modifier.Keyword.PUBLIC, Modifier.Keyword.STATIC, Modifier.Keyword.FINAL) &&
195-
varDecl.typeAsString == "String") {
218+
varDecl.typeAsString == "String") {
196219

197-
val fieldName = varDecl.nameAsString
198-
if (fieldName.endsWith("_DEFAULT")) return@ifPresent
199-
val init = varDecl.initializer.orElse(null) ?: return@ifPresent
220+
val fieldName = varDecl.nameAsString
221+
if (fieldName.endsWith("_DEFAULT")) return@ifPresent
222+
val init = varDecl.initializer.orElse(null) ?: return@ifPresent
200223

201-
if (init !is StringLiteralExpr) return@ifPresent
202-
val rawValue = init.value
224+
if (init !is StringLiteralExpr) return@ifPresent
225+
val rawValue = init.value
203226

204-
val normalized = normalize(rawValue)
205-
if (normalized !in supported && normalized !in aliasMapping) {
206-
val line = varDecl.range.map { it.begin.line }.orElse(1)
207-
add("$fileName:$line -> Config '$rawValue' normalizes to '$normalized' " +
208-
"which is missing from '${extension.jsonFile.get()}'")
227+
val normalized = normalize(rawValue)
228+
if (normalized !in supported && normalized !in aliasMapping) {
229+
val line = varDecl.range.map { it.begin.line }.orElse(1)
230+
add("$fileName:$line -> Config '$rawValue' normalizes to '$normalized' " +
231+
"which is missing from '${extension.jsonFile.get()}'")
232+
}
209233
}
210234
}
211-
}
212235
}
213236
}
214237
}

buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmSpec.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class TestJvmSpec(val project: Project) {
5656
"stable" -> {
5757
val javaVersions = project.providers.environmentVariablesPrefixedBy("JAVA_").map { javaHomes ->
5858
javaHomes
59-
.filter { it.key.matches(Regex("^JAVA_[0-9]+_HOME$")) }
59+
.filter { it.key.matches(Regex("^JAVA_[0-9]+_HOME$")) && it.key != "JAVA_26_HOME" } // JDK 26 is EA
6060
.map { Regex("^JAVA_(\\d+)_HOME$").find(it.key)!!.groupValues[1].toInt() }
6161
}.get()
6262

communication/gradle.lockfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ io.leangen.geantyref:geantyref:1.3.16=testRuntimeClasspath
4747
jaxen:jaxen:1.2.0=spotbugs
4848
jline:jline:2.14.6=testRuntimeClasspath
4949
junit:junit:4.13.2=testCompileClasspath,testRuntimeClasspath
50-
net.bytebuddy:byte-buddy-agent:1.17.7=testCompileClasspath,testRuntimeClasspath
51-
net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testRuntimeClasspath
50+
net.bytebuddy:byte-buddy-agent:1.18.1=testCompileClasspath,testRuntimeClasspath
51+
net.bytebuddy:byte-buddy:1.18.1=testCompileClasspath,testRuntimeClasspath
5252
net.jcip:jcip-annotations:1.0=compileClasspath,spotbugs,testCompileClasspath,testRuntimeClasspath
5353
net.sf.saxon:Saxon-HE:11.4=spotbugs
5454
org.apache.ant:ant-antlr:1.10.14=codenarc

components/json/gradle.lockfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ org.apache.ant:ant-launcher:1.10.15=jmhRuntimeClasspath,testRuntimeClasspath
3131
org.apache.ant:ant:1.10.15=jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
3232
org.apache.bcel:bcel:6.5.0=spotbugs
3333
org.apache.commons:commons-lang3:3.12.0=spotbugs
34-
org.apache.commons:commons-math3:3.2=jmh,jmhCompileClasspath,jmhRuntimeClasspath
34+
org.apache.commons:commons-math3:3.6.1=jmh,jmhCompileClasspath,jmhRuntimeClasspath
3535
org.apache.commons:commons-text:1.10.0=spotbugs
3636
org.apache.httpcomponents.client5:httpclient5:5.1.3=spotbugs
3737
org.apache.httpcomponents.core5:httpcore5-h2:5.1.3=spotbugs
@@ -89,10 +89,10 @@ org.junit:junit-bom:5.12.2=jmhRuntimeClasspath,testCompileClasspath,testRuntimeC
8989
org.junit:junit-bom:5.9.1=spotbugs
9090
org.mockito:mockito-core:4.4.0=jmhRuntimeClasspath,testRuntimeClasspath
9191
org.objenesis:objenesis:3.3=jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
92-
org.openjdk.jmh:jmh-core:1.36=jmh,jmhCompileClasspath,jmhRuntimeClasspath
93-
org.openjdk.jmh:jmh-generator-asm:1.36=jmh,jmhCompileClasspath,jmhRuntimeClasspath
94-
org.openjdk.jmh:jmh-generator-bytecode:1.36=jmh,jmhCompileClasspath,jmhRuntimeClasspath
95-
org.openjdk.jmh:jmh-generator-reflection:1.36=jmh,jmhCompileClasspath,jmhRuntimeClasspath
92+
org.openjdk.jmh:jmh-core:1.37=jmh,jmhCompileClasspath,jmhRuntimeClasspath
93+
org.openjdk.jmh:jmh-generator-asm:1.37=jmh,jmhCompileClasspath,jmhRuntimeClasspath
94+
org.openjdk.jmh:jmh-generator-bytecode:1.37=jmh,jmhCompileClasspath,jmhRuntimeClasspath
95+
org.openjdk.jmh:jmh-generator-reflection:1.37=jmh,jmhCompileClasspath,jmhRuntimeClasspath
9696
org.opentest4j:opentest4j:1.3.0=jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
9797
org.ow2.asm:asm-analysis:9.4=spotbugs
9898
org.ow2.asm:asm-commons:9.4=spotbugs

dd-java-agent/agent-aiguard/gradle.lockfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ io.leangen.geantyref:geantyref:1.3.16=testRuntimeClasspath
4141
jaxen:jaxen:1.2.0=spotbugs
4242
jline:jline:2.14.6=testRuntimeClasspath
4343
junit:junit:4.13.2=testCompileClasspath,testRuntimeClasspath
44-
net.bytebuddy:byte-buddy-agent:1.17.7=testCompileClasspath,testRuntimeClasspath
45-
net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testRuntimeClasspath
44+
net.bytebuddy:byte-buddy-agent:1.18.1=testCompileClasspath,testRuntimeClasspath
45+
net.bytebuddy:byte-buddy:1.18.1=testCompileClasspath,testRuntimeClasspath
4646
net.jcip:jcip-annotations:1.0=compileClasspath,spotbugs,testCompileClasspath,testRuntimeClasspath
4747
net.sf.saxon:Saxon-HE:11.4=spotbugs
4848
org.apache.ant:ant-antlr:1.10.14=codenarc

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ javax.servlet:javax.servlet-api:3.1.0=jmhRuntimeClasspath,testCompileClasspath,t
4545
jaxen:jaxen:1.2.0=spotbugs
4646
jline:jline:2.14.6=jmhRuntimeClasspath,testRuntimeClasspath
4747
junit:junit:4.13.2=jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
48-
net.bytebuddy:byte-buddy-agent:1.17.7=jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
49-
net.bytebuddy:byte-buddy:1.17.7=jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
48+
net.bytebuddy:byte-buddy-agent:1.18.1=jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
49+
net.bytebuddy:byte-buddy:1.18.1=jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
5050
net.java.dev.jna:jna-platform:5.8.0=jmhRuntimeClasspath,testRuntimeClasspath
5151
net.java.dev.jna:jna:5.8.0=jmhRuntimeClasspath,testRuntimeClasspath
5252
net.jcip:jcip-annotations:1.0=compileClasspath,jmhCompileClasspath,jmhRuntimeClasspath,spotbugs,testCompileClasspath,testRuntimeClasspath

dd-java-agent/agent-builder/gradle.lockfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ javax.servlet:javax.servlet-api:3.1.0=testCompileClasspath,testRuntimeClasspath
4545
jaxen:jaxen:1.2.0=spotbugs
4646
jline:jline:2.14.6=testRuntimeClasspath
4747
junit:junit:4.13.2=testCompileClasspath,testRuntimeClasspath
48-
net.bytebuddy:byte-buddy-agent:1.17.7=compileClasspath,main_java11CompileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
49-
net.bytebuddy:byte-buddy:1.17.7=compileClasspath,main_java11CompileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
48+
net.bytebuddy:byte-buddy-agent:1.18.1=compileClasspath,main_java11CompileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
49+
net.bytebuddy:byte-buddy:1.18.1=compileClasspath,main_java11CompileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
5050
net.java.dev.jna:jna-platform:5.8.0=runtimeClasspath,testRuntimeClasspath
5151
net.java.dev.jna:jna:5.8.0=runtimeClasspath,testRuntimeClasspath
5252
net.jcip:jcip-annotations:1.0=compileClasspath,spotbugs,testCompileClasspath,testRuntimeClasspath

dd-java-agent/agent-ci-visibility/civisibility-instrumentation-test-fixtures/gradle.lockfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ javax.servlet:javax.servlet-api:3.1.0=compileClasspath,runtimeClasspath,testComp
5151
jaxen:jaxen:1.2.0=spotbugs
5252
jline:jline:2.14.6=runtimeClasspath,testRuntimeClasspath
5353
junit:junit:4.13.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
54-
net.bytebuddy:byte-buddy-agent:1.17.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
55-
net.bytebuddy:byte-buddy:1.17.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
54+
net.bytebuddy:byte-buddy-agent:1.18.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
55+
net.bytebuddy:byte-buddy:1.18.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
5656
net.java.dev.jna:jna-platform:5.8.0=runtimeClasspath,testRuntimeClasspath
5757
net.java.dev.jna:jna:5.8.0=runtimeClasspath,testRuntimeClasspath
5858
net.jcip:jcip-annotations:1.0=compileClasspath,spotbugs,testCompileClasspath,testRuntimeClasspath

dd-java-agent/agent-ci-visibility/civisibility-test-fixtures/gradle.lockfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ javax.servlet:javax.servlet-api:3.1.0=compileClasspath,runtimeClasspath,testComp
5151
jaxen:jaxen:1.2.0=spotbugs
5252
jline:jline:2.14.6=runtimeClasspath,testRuntimeClasspath
5353
junit:junit:4.13.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
54-
net.bytebuddy:byte-buddy-agent:1.17.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
55-
net.bytebuddy:byte-buddy:1.17.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
54+
net.bytebuddy:byte-buddy-agent:1.18.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
55+
net.bytebuddy:byte-buddy:1.18.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
5656
net.java.dev.jna:jna-platform:5.8.0=runtimeClasspath,testRuntimeClasspath
5757
net.java.dev.jna:jna:5.8.0=runtimeClasspath,testRuntimeClasspath
5858
net.jcip:jcip-annotations:1.0=compileClasspath,spotbugs,testCompileClasspath,testRuntimeClasspath

0 commit comments

Comments
 (0)