1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- plugins {
- id("com.github.johnrengelman.shadow")
- id("otel.java-conventions")
- }
- val shadowInclude by configurations.creating {
- isCanBeResolved = true
- isCanBeConsumed = false
- }
- dependencies {
- compileOnly("com.github.ben-manes.caffeine:caffeine")
- shadowInclude("com.github.ben-manes.caffeine:caffeine") {
- exclude("com.google.errorprone", "error_prone_annotations")
- exclude("org.checkerframework", "checker-qual")
- }
- compileOnly("com.blogspot.mydailyjava:weak-lock-free")
- shadowInclude("com.blogspot.mydailyjava:weak-lock-free")
- }
- // patch inner class from Caffeine to avoid ForkJoinTask from being loaded too early in the javaagent
- val patch by sourceSets.creating {
- java {}
- }
- tasks {
- shadowJar {
- configurations = listOf(shadowInclude)
- relocate("com.github.benmanes.caffeine", "io.opentelemetry.instrumentation.api.internal.shaded.caffeine")
- relocate("com.blogspot.mydailyjava.weaklockfree", "io.opentelemetry.instrumentation.api.internal.shaded.weaklockfree")
- minimize()
- }
- val extractShadowJar by registering(Copy::class) {
- dependsOn(shadowJar)
- // replace caffeine class with our patched version
- from(zipTree(shadowJar.get().archiveFile)) {
- exclude("io/opentelemetry/instrumentation/api/internal/shaded/caffeine/cache/BoundedLocalCache\$PerformCleanupTask.class")
- }
- from(patch.output) {
- include("io/opentelemetry/instrumentation/api/internal/shaded/caffeine/cache/BoundedLocalCache\$PerformCleanupTask.class")
- }
- into("build/extracted/shadow")
- // prevents empty com/github/benmanes/caffeine/cache path from ending up in instrumentation-api
- includeEmptyDirs = false
- }
- }
|