1234567891011121314151617181920212223242526272829 |
- apply from: "$rootDir/gradle/instrumentation.gradle"
- dependencies {
- // this instrumentation needs to be able to reference both the OpenTelemetry API
- // that is shaded in the bootstrap class loader (for sending telemetry to the agent),
- // and the OpenTelemetry API that the user brings (in order to capture that telemetry)
- //
- // since (all) instrumentation already uses OpenTelemetry API for sending telemetry to the agent,
- // this instrumentation uses a "temporarily shaded" OpenTelemetry API to represent the
- // OpenTelemetry API that the user brings
- //
- // then later, after the OpenTelemetry API in the bootstrap class loader is shaded,
- // the "temporarily shaded" OpenTelemetry API is unshaded, so that it will apply to the
- // OpenTelemetry API that the user brings
- //
- // so in the code "unshaded.io.opentelemetry.*" refers to the (unshaded) OpenTelemetry API that
- // the user brings (as those references will be translated during the build to remove the
- // "unshaded." prefix)
- //
- // and in the code "io.opentelemetry.*" refers to the (shaded) OpenTelemetry API that is in the
- // bootstrap class loader (as those references will later be shaded)
- compileOnly project(path: ':opentelemetry-api-beta-shaded-for-instrumenting', configuration: 'shadow')
- compileOnly project(path: ':opentelemetry-auto-annotations-beta-shaded-for-instrumenting', configuration: 'shadow')
- // using OpenTelemetry SDK to make sure that instrumentation doesn't cause
- // OpenTelemetrySdk.getTracerProvider() to throw ClassCastException
- testImplementation project(path: ':opentelemetry-sdk-beta-shaded-for-instrumenting', configuration: 'shadow')
- testImplementation project(path: ':opentelemetry-auto-annotations-beta-shaded-for-instrumenting', configuration: 'shadow')
- }
|