Skip to content

Commit 2a419db

Browse files
authored
Refactor multiple modules names (#10276)
* remove stale java-concurrent build file * Allow parent module name matching in any order * Naming rules: allow iast suffix and add exclusion for org-json * Refactor spark instrumentations * Update codeowners * Move jersey-filter to jersey * Move filter-resteasy to resteasy
1 parent 9e2145d commit 2a419db

File tree

53 files changed

+35
-153
lines changed

Some content is hidden

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

53 files changed

+35
-153
lines changed

.github/CODEOWNERS

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@
103103

104104
# @DataDog/data-jobs-monitoring
105105
/dd-java-agent/instrumentation/spark/ @DataDog/data-jobs-monitoring
106-
/dd-java-agent/instrumentation/spark-executor/ @DataDog/data-jobs-monitoring
107106

108107
# @DataDog/data-streams-monitoring
109108
/dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/datastreams @DataDog/data-streams-monitoring

buildSrc/src/main/kotlin/datadog/gradle/plugin/naming/InstrumentationNamingPlugin.kt

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,11 +132,11 @@ class InstrumentationNamingPlugin : Plugin<Project> {
132132
// Rule 1: Module name must end with version pattern or one of the configured suffixes
133133
validateVersionOrSuffix(moduleName, relativePath, suffixes)?.let { return listOf(it) }
134134

135-
// Rule 2: Module name must contain parent directory name
136-
if (!moduleName.contains(parentName, ignoreCase = true)) {
135+
// Rule 2: Module name must contain parent directory name (all characters in any order)
136+
if (!containsAllChars(moduleName, parentName)) {
137137
return listOf(NamingViolation(
138138
relativePath,
139-
"Module name '$moduleName' should contain parent directory name '$parentName'"
139+
"Module name '$moduleName' should contain all characters from parent directory name '$parentName'"
140140
))
141141
}
142142

@@ -177,6 +177,20 @@ class InstrumentationNamingPlugin : Plugin<Project> {
177177
return null
178178
}
179179

180+
/**
181+
* Checks if all characters from 'required' string appear in 'source' string (case-insensitive).
182+
* Characters can appear in any order.
183+
*/
184+
private fun containsAllChars(source: String, required: String): Boolean {
185+
val sourceChars = source.lowercase().toList()
186+
val requiredChars = required.lowercase().groupingBy { it }.eachCount()
187+
val sourceCharCounts = sourceChars.groupingBy { it }.eachCount()
188+
189+
return requiredChars.all { (char, count) ->
190+
sourceCharCounts.getOrDefault(char, 0) >= count
191+
}
192+
}
193+
180194
private data class NamingViolation(
181195
val path: String,
182196
val message: String

dd-java-agent/instrumentation/build.gradle

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,11 @@ TaskProvider<JavaExec> registerIndexTask(String indexTaskName, String indexer, S
149149
return indexTask
150150
}
151151

152+
instrumentationNaming {
153+
exclusions = ["org-json-20230227"] // org-json does not use semver
154+
suffixes = ["-common", "-stubs", "-iast"]
155+
}
156+
152157
registerIndexTask(
153158
'generateInstrumenterIndex',
154159
'datadog.trace.agent.tooling.InstrumenterIndex$IndexGenerator',

dd-java-agent/instrumentation/java/java-concurrent/build.gradle

Lines changed: 0 additions & 16 deletions
This file was deleted.

dd-java-agent/instrumentation/java/java-concurrent/gradle.lockfile

Lines changed: 0 additions & 121 deletions
This file was deleted.

dd-java-agent/instrumentation/rs/jax-rs/jax-rs-annotations/jax-rs-annotations-2.0/filter-jersey/build.gradle renamed to dd-java-agent/instrumentation/jersey/jersey-filter-2.0/build.gradle

File renamed without changes.

dd-java-agent/instrumentation/rs/jax-rs/jax-rs-annotations/jax-rs-annotations-2.0/filter-jersey/gradle.lockfile renamed to dd-java-agent/instrumentation/jersey/jersey-filter-2.0/gradle.lockfile

File renamed without changes.

dd-java-agent/instrumentation/rs/jax-rs/jax-rs-annotations/jax-rs-annotations-2.0/filter-jersey/src/main/java/datadog/trace/instrumentation/jaxrs2/JerseyRequestContextInstrumentation.java renamed to dd-java-agent/instrumentation/jersey/jersey-filter-2.0/src/main/java/datadog/trace/instrumentation/jaxrs2/JerseyRequestContextInstrumentation.java

File renamed without changes.

dd-java-agent/instrumentation/rs/jax-rs/jax-rs-annotations/jax-rs-annotations-2.0/filter-resteasy-3.0/build.gradle renamed to dd-java-agent/instrumentation/resteasy/filter-resteasy/filter-resteasy-3.0/build.gradle

File renamed without changes.

dd-java-agent/instrumentation/rs/jax-rs/jax-rs-annotations/jax-rs-annotations-2.0/filter-resteasy-3.0/gradle.lockfile renamed to dd-java-agent/instrumentation/resteasy/filter-resteasy/filter-resteasy-3.0/gradle.lockfile

File renamed without changes.

0 commit comments

Comments
 (0)