Skip to content

Commit bf21897

Browse files
committed
Merge branch 'main' into sqlcommenter2
2 parents 9fd6c53 + f81b2e7 commit bf21897

File tree

157 files changed

+1438
-2791
lines changed

Some content is hidden

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

157 files changed

+1438
-2791
lines changed

.github/renovate.json5

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,6 @@
9393
'com.fasterxml.jackson.core:**',
9494
],
9595
},
96-
{
97-
// prevent update to 2.4-groovy-4.0-SNAPSHOT
98-
allowedVersions: '!/\\-SNAPSHOT$/',
99-
matchPackageNames: [
100-
'org.spockframework:**',
101-
],
102-
},
10396
{
10497
// prevent 3.0.1u2 -> 3.0.1
10598
matchPackageNames: [

.github/workflows/build-common.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,7 @@ jobs:
247247
- 17
248248
- 21
249249
- 25 # renovate: datasource=java-version
250+
- 25-deny-unsafe
250251
vm:
251252
- hotspot
252253
- openj9
@@ -260,6 +261,8 @@ jobs:
260261
- true
261262
exclude:
262263
- vm: ${{ inputs.skip-openj9-tests && 'openj9' || '' }}
264+
- test-java-version: 25-deny-unsafe
265+
vm: openj9
263266
fail-fast: false
264267
steps:
265268
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
@@ -273,7 +276,7 @@ jobs:
273276
with:
274277
# using zulu because new releases get published quickly
275278
distribution: ${{ matrix.vm == 'hotspot' && 'zulu' || 'adopt-openj9'}}
276-
java-version: ${{ matrix.test-java-version }}
279+
java-version: ${{ matrix.test-java-version != '25-deny-unsafe' && matrix.test-java-version || '25' }}
277280

278281
- name: Set up JDK for running Gradle
279282
uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
@@ -329,6 +332,7 @@ jobs:
329332
-PtestJavaVersion=${{ matrix.test-java-version }}
330333
-PtestJavaVM=${{ matrix.vm }}
331334
-PtestIndy=${{ matrix.test-indy }}
335+
-PdenyUnsafe=${{ matrix.test-java-version == '25-deny-unsafe' && 'true' || 'false' }}
332336
-Porg.gradle.java.installations.paths=${{ steps.setup-test-java.outputs.path }}
333337
-Porg.gradle.java.installations.auto-download=false
334338
${{ inputs.no-build-cache && ' --no-build-cache' || '' }}
176 Bytes
Binary file not shown.

benchmark-overhead/gradle/wrapper/gradle-wrapper.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionSha256Sum=a17ddd85a26b6a7f5ddb71ff8b05fc5104c0202c6e64782429790c933686c806
4-
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
3+
distributionSha256Sum=df67a32e86e3276d011735facb1535f64d0d88df84fa87521e90becc2d735444
4+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip
55
networkTimeout=10000
66
validateDistributionUrl=true
77
zipStoreBase=GRADLE_USER_HOME

conventions/src/main/kotlin/io.opentelemetry.instrumentation.javaagent-testing.gradle.kts

Lines changed: 38 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ plugins {
66
id("io.opentelemetry.instrumentation.javaagent-shadowing")
77
}
88

9+
val denyUnsafe = gradle.startParameter.projectProperties["denyUnsafe"] == "true"
10+
extra["denyUnsafe"] = denyUnsafe
11+
912
dependencies {
1013
/*
1114
Dependencies added to this configuration will be found by the muzzle gradle plugin during code
@@ -72,31 +75,41 @@ class JavaagentTestArgumentsProvider(
7275
@PathSensitive(PathSensitivity.RELATIVE)
7376
val shadowJar: File,
7477
) : CommandLineArgumentProvider {
75-
override fun asArguments(): Iterable<String> = listOf(
76-
"-Dotel.javaagent.debug=true",
77-
"-javaagent:${agentShadowJar.absolutePath}",
78-
// make the path to the javaagent available to tests
79-
"-Dotel.javaagent.testing.javaagent-jar-path=${agentShadowJar.absolutePath}",
80-
"-Dotel.javaagent.experimental.initializer.jar=${shadowJar.absolutePath}",
81-
"-Dotel.javaagent.testing.additional-library-ignores.enabled=false",
82-
"-Dotel.javaagent.testing.fail-on-context-leak=${findProperty("failOnContextLeak") != false}",
83-
// prevent sporadic gradle deadlocks, see SafeLogger for more details
84-
"-Dotel.javaagent.testing.transform-safe-logging.enabled=true",
85-
// Reduce noise in assertion messages since we don't need to verify this in most tests. We check
86-
// in smoke tests instead.
87-
"-Dotel.javaagent.add-thread-details=false",
88-
"-Dotel.javaagent.experimental.indy=${findProperty("testIndy") == "true"}",
89-
// suppress repeated logging of "No metric data to export - skipping export."
90-
// since PeriodicMetricReader is configured with a short interval
91-
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.opentelemetry.sdk.metrics.export.PeriodicMetricReader=INFO",
92-
// suppress a couple of verbose ClassNotFoundException stack traces logged at debug level
93-
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.grpc.internal.ServerImplBuilder=INFO",
94-
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.grpc.internal.ManagedChannelImplBuilder=INFO",
95-
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.perfmark.PerfMark=INFO",
96-
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.grpc.Context=INFO",
97-
"-Dotel.java.experimental.span-attributes.copy-from-baggage.include=test-baggage-key-1,test-baggage-key-2",
98-
"-Dotel.instrumentation.common.peer-service-mapping=127.0.0.1=test-peer-service,localhost=test-peer-service,192.0.2.1=test-peer-service"
99-
)
78+
override fun asArguments(): Iterable<String> {
79+
val list = mutableListOf(
80+
"-Dotel.javaagent.debug=true",
81+
"-javaagent:${agentShadowJar.absolutePath}",
82+
// make the path to the javaagent available to tests
83+
"-Dotel.javaagent.testing.javaagent-jar-path=${agentShadowJar.absolutePath}",
84+
"-Dotel.javaagent.experimental.initializer.jar=${shadowJar.absolutePath}",
85+
"-Dotel.javaagent.testing.additional-library-ignores.enabled=false",
86+
"-Dotel.javaagent.testing.fail-on-context-leak=${findProperty("failOnContextLeak") != false}",
87+
// prevent sporadic gradle deadlocks, see SafeLogger for more details
88+
"-Dotel.javaagent.testing.transform-safe-logging.enabled=true",
89+
// Reduce noise in assertion messages since we don't need to verify this in most tests. We check
90+
// in smoke tests instead.
91+
"-Dotel.javaagent.add-thread-details=false",
92+
"-Dotel.javaagent.experimental.indy=${findProperty("testIndy") == "true"}",
93+
// suppress repeated logging of "No metric data to export - skipping export."
94+
// since PeriodicMetricReader is configured with a short interval
95+
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.opentelemetry.sdk.metrics.export.PeriodicMetricReader=INFO",
96+
// suppress a couple of verbose ClassNotFoundException stack traces logged at debug level
97+
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.grpc.internal.ServerImplBuilder=INFO",
98+
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.grpc.internal.ManagedChannelImplBuilder=INFO",
99+
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.perfmark.PerfMark=INFO",
100+
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.grpc.Context=INFO",
101+
"-Dotel.java.experimental.span-attributes.copy-from-baggage.include=test-baggage-key-1,test-baggage-key-2",
102+
"-Dotel.instrumentation.common.peer-service-mapping=127.0.0.1=test-peer-service,localhost=test-peer-service,192.0.2.1=test-peer-service"
103+
)
104+
if (denyUnsafe) {
105+
list += listOf(
106+
"-Dsun.misc.unsafe.memory.access=deny",
107+
"-Dotel.instrumentation.deny-unsafe.enabled=true",
108+
"-Dio.netty.noUnsafe=true"
109+
)
110+
}
111+
return list
112+
}
100113
}
101114

102115
// need to run this after evaluate because testSets plugin adds new test tasks

conventions/src/main/kotlin/otel.java-conventions.gradle.kts

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -187,24 +187,6 @@ testing {
187187
implementation("org.mockito:mockito-junit-jupiter")
188188

189189
implementation("org.objenesis:objenesis")
190-
implementation("org.spockframework:spock-core") {
191-
with(this as ExternalDependency) {
192-
// exclude optional dependencies
193-
exclude(group = "cglib", module = "cglib-nodep")
194-
exclude(group = "net.bytebuddy", module = "byte-buddy")
195-
exclude(group = "org.junit.platform", module = "junit-platform-testkit")
196-
exclude(group = "org.jetbrains", module = "annotations")
197-
exclude(group = "org.objenesis", module = "objenesis")
198-
exclude(group = "org.ow2.asm", module = "asm")
199-
}
200-
}
201-
implementation("org.spockframework:spock-junit4") {
202-
with(this as ExternalDependency) {
203-
// spock-core is already added as dependency
204-
// exclude it here to avoid pulling in optional dependencies
205-
exclude(group = "org.spockframework", module = "spock-core")
206-
}
207-
}
208190
implementation("ch.qos.logback:logback-classic")
209191
implementation("org.slf4j:log4j-over-slf4j")
210192
implementation("org.slf4j:jcl-over-slf4j")
@@ -342,7 +324,10 @@ tasks.withType<Test>().configureEach {
342324
val useJ9 = gradle.startParameter.projectProperties["testJavaVM"]?.run { this == "openj9" }
343325
?: false
344326
if (useJ9 && testJavaVersion != null && testJavaVersion.isJava8) {
345-
jvmArgs("-Xjit:exclude={io/opentelemetry/testing/internal/io/netty/buffer/HeapByteBufUtil.*},exclude={io/opentelemetry/testing/internal/io/netty/buffer/UnpooledHeapByteBuf.*},exclude={io/opentelemetry/testing/internal/io/netty/buffer/AbstractByteBuf.*}")
327+
jvmArgs("-Xjit:exclude={io/opentelemetry/testing/internal/io/netty/buffer/HeapByteBufUtil.*}," +
328+
"exclude={io/opentelemetry/testing/internal/io/netty/buffer/UnpooledHeapByteBuf.*}," +
329+
"exclude={io/opentelemetry/testing/internal/io/netty/buffer/AbstractByteBuf.*}," +
330+
"exclude={io/opentelemetry/testing/internal/io/netty/handler/codec/base64/Base64.*}")
346331
}
347332

348333
// There's no real harm in setting this for all tests even if any happen to not be using context

conventions/src/main/kotlin/otel.scala-conventions.gradle.kts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
// Enable testing scala code in groovy spock tests.
2-
31
plugins {
42
scala
53
}

dependencyManagement/build.gradle.kts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,9 @@ val CORE_DEPENDENCIES = listOf(
8181
// this top level to help consistently satisfy large numbers of transitive dependencies.
8282
val DEPENDENCIES = listOf(
8383
"org.junit.jupiter:junit-jupiter-api:5.14.0",
84-
"org.spockframework:spock-core:2.4-M6-groovy-4.0",
85-
"org.spockframework:spock-junit4:2.4-M6-groovy-4.0",
8684

8785
"io.r2dbc:r2dbc-proxy:1.1.6.RELEASE",
88-
"ch.qos.logback:logback-classic:1.3.15", // 1.4+ requires Java 11+
86+
"ch.qos.logback:logback-classic:1.3.16", // 1.4+ requires Java 11+
8987
"uk.org.webcompere:system-stubs-jupiter:2.0.3",
9088
"com.uber.nullaway:nullaway:0.12.10",
9189
"commons-beanutils:commons-beanutils:1.11.0",

docs/contributing/documenting-instrumentation.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ List of possible options:
209209
* `AUTO_INSTRUMENTATION_SHIM`: Instrumentation that adapts or bridges instrumentation from upstream libraries or frameworks
210210
* `CONTROLLER_SPANS`: Instrumentation that generates controller-level spans for controller/handler methods in web frameworks (disabled by default, experimental)
211211
* `VIEW_SPANS`: Instrumentation that generates view-level spans for view rendering such as templates or JSP (disabled by default, experimental)
212+
* `LOGGING_BRIDGE`: Instrumentation that bridges logging framework events to the OpenTelemetry Logs API. These instrumentations capture log records from standard logging frameworks and emit them as OpenTelemetry log records.
212213

213214
### Library Link
214215

docs/contributing/writing-instrumentation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ a `testImplementation` dependency on the `testing` submodule. Then, create a tes
226226
the abstract test class from `testing`. You should implement the abstract `configure()` method to
227227
initialize the library using the exposed mechanism to register interceptors/listeners, perhaps a
228228
method like `registerInterceptor`. You can also wrap the object with the instrumentation decorator.
229-
Make sure that the test class is marked as a library instrumentation test. Both JUnit and Spock test
229+
Make sure that the test class is marked as a library instrumentation test. JUnit test
230230
utilities expose a way to specify whether you're running a library or javaagent test. If the tests
231231
pass, the library instrumentation is working.
232232

0 commit comments

Comments
 (0)