Skip to content

Commit 539e33a

Browse files
authored
Merge branch 'master' into bdu/custom-auto-version
2 parents d01b8f3 + 6b7cf0a commit 539e33a

File tree

9 files changed

+111
-6
lines changed

9 files changed

+111
-6
lines changed

.gitlab-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ build:
255255
CACHE_TYPE: lib
256256
DEPENDENCY_CACHE_POLICY: pull
257257
script:
258-
- if [ $CI_PIPELINE_SOURCE == "schedule" ] ; then ./gradlew resolveAndLockAll --write-locks; fi
258+
- if [ $CI_PIPELINE_SOURCE == "schedule" ] ; then ./gradlew resolveAndLockAll --write-locks $GRADLE_ARGS; fi
259259
- ./gradlew clean :dd-java-agent:shadowJar :dd-trace-api:jar :dd-trace-ot:shadowJar -PskipTests $GRADLE_ARGS
260260
- echo UPSTREAM_TRACER_VERSION=$(java -jar workspace/dd-java-agent/build/libs/*.jar) >> upstream.env
261261
- echo "BUILD_JOB_NAME=$CI_JOB_NAME" >> build.env

buildSrc/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ testing {
6464
val test by getting(JvmTestSuite::class) {
6565
dependencies {
6666
implementation(libs.spock.core)
67-
implementation("org.codehaus.groovy:groovy-all:3.0.24")
67+
implementation(libs.groovy)
6868
}
6969
targets.configureEach {
7070
testTask.configure {

buildSrc/call-site-instrumentation-plugin/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ dependencies {
3939
testImplementation("net.bytebuddy", "byte-buddy", "1.17.5")
4040
testImplementation(libs.spock.core)
4141
testImplementation("org.objenesis", "objenesis", "3.0.1")
42-
testImplementation("org.codehaus.groovy", "groovy-all", "3.0.17")
42+
testImplementation(libs.groovy)
4343
testImplementation("javax.servlet", "javax.servlet-api", "3.0.1")
4444
testImplementation("com.github.spotbugs", "spotbugs-annotations", "4.2.0")
4545
}

dd-java-agent/agent-iast/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ dependencies {
5656
testFixturesApi project(':utils:test-utils')
5757
testImplementation libs.bytebuddy
5858
testImplementation('org.skyscreamer:jsonassert:1.5.1')
59-
testImplementation('org.codehaus.groovy:groovy-yaml:3.0.17')
59+
testImplementation libs.groovy.yaml
6060
testImplementation libs.guava
6161

6262
testImplementation group: 'io.grpc', name: 'grpc-core', version: grpcVersion

dd-java-agent/instrumentation/armeria/armeria-grpc-0.84/src/main/java/datadog/trace/instrumentation/armeria/grpc/client/GrpcInjectAdapter.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ public final class GrpcInjectAdapter implements CarrierSetter<Metadata> {
1111

1212
@Override
1313
public void set(final Metadata carrier, final String key, final String value) {
14-
carrier.put(Metadata.Key.of(key, Metadata.ASCII_STRING_MARSHALLER), value);
14+
Metadata.Key<String> metadataKey = Metadata.Key.of(key, Metadata.ASCII_STRING_MARSHALLER);
15+
if (carrier.containsKey(metadataKey)) {
16+
carrier.removeAll(
17+
metadataKey); // Remove existing to ensure identical behavior with other carriers
18+
}
19+
carrier.put(metadataKey, value);
1520
}
1621
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import datadog.trace.agent.test.naming.VersionedNamingTestBase
2+
import io.grpc.Metadata
3+
import static datadog.trace.instrumentation.grpc.client.GrpcInjectAdapter.SETTER
4+
5+
class GrpcInjectAdapterTest extends VersionedNamingTestBase {
6+
def "carrier overrides values for duplicate keys"() {
7+
setup:
8+
def carrier = new Metadata()
9+
10+
def baggage = [
11+
["ot-baggage-foo", "v1"],
12+
["ot-baggage-foo", "v2"],
13+
["ot-baggage-bar", "v3"]
14+
]
15+
16+
when:
17+
baggage.each { pair ->
18+
def (key, value) = pair
19+
SETTER.set(carrier, key, value)
20+
}
21+
22+
then:
23+
carrier.headerCount() == 2
24+
carrier.get(getKey("ot-baggage-foo")) == "v2" // overridden value wins
25+
carrier.get(getKey("ot-baggage-bar")) == "v3"
26+
}
27+
28+
Metadata.Key<String> getKey(String key){
29+
Metadata.Key.of(key, Metadata.ASCII_STRING_MARSHALLER)
30+
}
31+
32+
33+
@Override
34+
int version() {
35+
return 0
36+
}
37+
38+
@Override
39+
String service() {
40+
return null
41+
}
42+
43+
@Override
44+
String operation() {
45+
return null
46+
}
47+
}

dd-java-agent/instrumentation/grpc-1.5/src/main/java/datadog/trace/instrumentation/grpc/client/GrpcInjectAdapter.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ public final class GrpcInjectAdapter implements CarrierSetter<Metadata> {
1010

1111
@Override
1212
public void set(final Metadata carrier, final String key, final String value) {
13-
carrier.put(Metadata.Key.of(key, Metadata.ASCII_STRING_MARSHALLER), value);
13+
Metadata.Key<String> metadataKey = Metadata.Key.of(key, Metadata.ASCII_STRING_MARSHALLER);
14+
if (carrier.containsKey(metadataKey)) {
15+
carrier.removeAll(
16+
metadataKey); // Remove existing to ensure identical behavior with other carriers
17+
}
18+
carrier.put(metadataKey, value);
1419
}
1520
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import datadog.trace.agent.test.naming.VersionedNamingTestBase
2+
import io.grpc.Metadata
3+
import static datadog.trace.instrumentation.grpc.client.GrpcInjectAdapter.SETTER
4+
5+
class GrpcInjectAdapterTest extends VersionedNamingTestBase {
6+
def "carrier overrides values for duplicate keys"() {
7+
setup:
8+
def carrier = new Metadata()
9+
10+
def baggage = [
11+
["ot-baggage-foo", "v1"],
12+
["ot-baggage-foo", "v2"],
13+
["ot-baggage-bar", "v3"]
14+
]
15+
16+
when:
17+
baggage.each { pair ->
18+
def (key, value) = pair
19+
SETTER.set(carrier, key, value)
20+
}
21+
22+
then:
23+
carrier.headerCount() == 2
24+
carrier.get(getKey("ot-baggage-foo")) == "v2" // overridden value wins
25+
carrier.get(getKey("ot-baggage-bar")) == "v3"
26+
}
27+
28+
Metadata.Key<String> getKey(String key){
29+
Metadata.Key.of(key, Metadata.ASCII_STRING_MARSHALLER)
30+
}
31+
32+
33+
@Override
34+
int version() {
35+
return 0
36+
}
37+
38+
@Override
39+
String service() {
40+
return null
41+
}
42+
43+
@Override
44+
String operation() {
45+
return null
46+
}
47+
}

gradle/libs.versions.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ spock24-junit4 = { module = "org.spockframework:spock-junit4", version.ref = "sp
7272
spock24-spring = { module = "org.spockframework:spock-spring", version = "spock24" }
7373

7474
groovy = { module = "org.codehaus.groovy:groovy-all", version.ref = "groovy" }
75+
groovy-yaml = { module = "org.codehaus.groovy:groovy-yaml", version.ref = "groovy" }
7576
junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit5" }
7677
junit-jupiter-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "junit5" }
7778

0 commit comments

Comments
 (0)