Skip to content

Commit 87c9e0d

Browse files
authored
bump otel dumps (#433)
1 parent 2f9abd4 commit 87c9e0d

5 files changed

Lines changed: 52 additions & 5 deletions

File tree

build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ subprojects {
6464

6565
"opentelemetry_gradle_plugin" to "1.33.0-alpha",
6666
"byte_buddy" to "1.12.10",
67-
"slf4j" to "2.0.7"
67+
"slf4j" to "2.0.7",
68+
"jackson" to "2.18.9"
6869
))
6970
}
7071

javaagent-core/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ dependencies {
99
api("io.opentelemetry:opentelemetry-api:${versions["opentelemetry"]}")
1010
api("io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:${versions["opentelemetry"]}")
1111
implementation("org.slf4j:slf4j-api:${versions["slf4j"]}")
12-
implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.18.9")
12+
implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:${versions["jackson"]}")
1313
}

javaagent/build.gradle.kts

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@ plugins {
55
}
66

77
val versions: Map<String, String> by extra
8+
val jacksonVersion: String = versions["jackson"]!!
9+
10+
configurations {
11+
create("otelInstJacksonOverlay") {
12+
isCanBeResolved = true
13+
isCanBeConsumed = false
14+
}
15+
}
816

917
dependencies {
1018
// pin released version or snapshot with pinned version
@@ -13,6 +21,11 @@ dependencies {
1321
// https://dl.bintray.com/open-telemetry/maven/
1422
implementation("io.opentelemetry.javaagent", "opentelemetry-javaagent", version = "${versions["opentelemetry_java_agent_all"]}")
1523
implementation(project(":filter-api"))
24+
25+
add("otelInstJacksonOverlay", "com.fasterxml.jackson.core:jackson-annotations:$jacksonVersion")
26+
add("otelInstJacksonOverlay", "com.fasterxml.jackson.core:jackson-core:$jacksonVersion")
27+
add("otelInstJacksonOverlay", "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion")
28+
add("otelInstJacksonOverlay", "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:$jacksonVersion")
1629
}
1730

1831
base.archivesBaseName = "hypertrace-agent"
@@ -49,6 +62,14 @@ tasks.register<Copy>("extractOtelAgentJarInstClassdata") {
4962

5063
from(zipTree(otelJavaAgentJar)) {
5164
include("inst/**")
65+
// OTel ships Jackson 2.16.x in inst/; overlay with jacksonVersion after relocation
66+
exclude("inst/com/fasterxml/**")
67+
exclude("inst/org/yaml/**")
68+
exclude("inst/META-INF/maven/com.fasterxml.jackson.core/**")
69+
exclude("inst/META-INF/maven/com.fasterxml.jackson.dataformat/**")
70+
exclude("inst/META-INF/maven/org.yaml/**")
71+
exclude("inst/META-INF/versions/*/com/fasterxml/**")
72+
exclude("inst/META-INF/versions/*/org/yaml/**")
5273
rename("(^.*)\\.classdata$", "$1.class")
5374
}
5475

@@ -84,10 +105,35 @@ tasks.register<Copy>("extractRelocatedOtelClasses") {
84105
into("$buildDir/tmp/relocated-otel-classes")
85106
}
86107

108+
// Step 3c: Replace OTel's embedded Jackson with jacksonVersion
109+
tasks.register<Copy>("overlayOtelInstJackson") {
110+
description = "Replaces OTel embedded Jackson/SnakeYAML in inst/ with $jacksonVersion"
111+
112+
dependsOn("extractRelocatedOtelClasses")
113+
114+
val overlayJars = configurations["otelInstJacksonOverlay"].files
115+
116+
overlayJars.forEach { jar ->
117+
from(zipTree(jar)) {
118+
include("com/fasterxml/**")
119+
include("org/yaml/**")
120+
include("META-INF/maven/com.fasterxml.jackson.core/**")
121+
include("META-INF/maven/com.fasterxml.jackson.dataformat/**")
122+
include("META-INF/maven/org.yaml/**")
123+
include("META-INF/versions/**/com/fasterxml/**")
124+
include("META-INF/versions/**/org/yaml/**")
125+
exclude("**/module-info.class")
126+
}
127+
}
128+
129+
into("$buildDir/tmp/relocated-otel-classes/inst/org/hypertrace")
130+
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
131+
}
132+
87133
tasks.register("extractOtelInstrumentationToInst") {
88134
description = "Removes empty directories from the relocated classes directory"
89135

90-
dependsOn("extractRelocatedOtelClasses")
136+
dependsOn("overlayOtelInstJackson")
91137

92138
doLast {
93139
// Find and delete empty directories

otel-extensions/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ dependencies {
7171
api("com.google.protobuf:protobuf-java")
7272
api("com.google.protobuf:protobuf-java-util")
7373
// convert yaml to json, since java protobuf impl supports only json
74-
implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.18.9")
74+
implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:${versions["jackson"]}")
7575
// fix vulnerability
7676
constraints {
7777
api("com.google.code.gson:gson:2.8.9")

smoke-tests/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ dependencies{
2424
testImplementation("com.google.protobuf:protobuf-java-util:3.25.5")
2525
testImplementation("org.spockframework:spock-core:1.3-groovy-2.5")
2626
testImplementation("info.solidsoft.spock:spock-global-unroll:0.5.1")
27-
testImplementation("com.fasterxml.jackson.core:jackson-databind:2.18.9")
27+
testImplementation("com.fasterxml.jackson.core:jackson-databind:${versions["jackson"]}")
2828
testImplementation("org.codehaus.groovy:groovy-all:2.5.11")
2929
testImplementation("io.opentelemetry.semconv:opentelemetry-semconv:${versions["opentelemetry_semconv"]}")
3030
}

0 commit comments

Comments
 (0)