Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion conventions/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ dependencies {
// When updating, update above in plugins too
implementation("com.diffplug.spotless:spotless-plugin-gradle:7.2.1")
implementation("com.google.guava:guava:33.4.8-jre")
implementation("com.gradleup.shadow:shadow-gradle-plugin:8.3.9")
implementation("com.gradleup.shadow:shadow-gradle-plugin:9.1.0")
implementation("org.apache.httpcomponents:httpclient:4.5.14")
implementation("com.gradle.develocity:com.gradle.develocity.gradle.plugin:4.1.1")
implementation("org.owasp:dependency-check-gradle:12.1.3")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ plugins {
// NOTE: any modifications below should also be made in
// io.opentelemetry.instrumentation.muzzle-check.gradle.kts
tasks.withType<ShadowJar>().configureEach {
// mergeServiceFiles requires that duplicate strategy is set to include
duplicatesStrategy = DuplicatesStrategy.INCLUDE
mergeServiceFiles()
// Merge any AWS SDK service files that may be present (too bad they didn't just use normal
// service loader...)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,11 +152,13 @@ afterEvaluate {
// shadowJar is only used for creating a jar for testing, but the shadow plugin automatically adds
// it to a project's published Java component. Skip it if publishing is configured for this
// project.
plugins.withId("maven-publish") {
configure<PublishingExtension> {
(components["java"] as AdhocComponentWithVariants).run {
withVariantsFromConfiguration(configurations["shadowRuntimeElements"]) {
skip()
afterEvaluate {
plugins.withId("maven-publish") {
configure<PublishingExtension> {
(components["java"] as AdhocComponentWithVariants).run {
withVariantsFromConfiguration(configurations["shadowRuntimeElements"]) {
skip()
}
}
}
}
Expand Down
11 changes: 5 additions & 6 deletions examples/distro/agent/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,10 @@ tasks {
task relocateJavaagentLibs(type: ShadowJar) {
configurations = [project.configurations.javaagentLibs]

duplicatesStrategy = DuplicatesStrategy.FAIL

archiveFileName.set("javaagentLibs-relocated.jar")

// mergeServiceFiles requires that duplicate strategy is set to include
duplicatesStrategy = DuplicatesStrategy.INCLUDE
mergeServiceFiles()
exclude("**/module-info.class")
relocatePackages(it)
Expand Down Expand Up @@ -105,11 +105,10 @@ tasks {

archiveClassifier.set("all")

duplicatesStrategy = DuplicatesStrategy.EXCLUDE
// mergeServiceFiles requires that duplicate strategy is set to include
duplicatesStrategy = DuplicatesStrategy.INCLUDE
mergeServiceFiles("inst/META-INF/services")

mergeServiceFiles {
include("inst/META-INF/services/*")
}
exclude("**/module-info.class")
relocatePackages(it)

Expand Down
2 changes: 1 addition & 1 deletion examples/distro/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ buildscript {
}
dependencies {
classpath "com.diffplug.spotless:spotless-plugin-gradle:7.2.1"
classpath "com.gradleup.shadow:shadow-gradle-plugin:8.3.9"
classpath "com.gradleup.shadow:shadow-gradle-plugin:9.1.0"
classpath "io.opentelemetry.instrumentation:gradle-plugins:2.20.0-alpha-SNAPSHOT"
}
}
Expand Down
23 changes: 22 additions & 1 deletion examples/distro/gradle/instrumentation.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ dependencies {

shadowJar {
configurations = [project.configurations.runtimeClasspath, project.configurations.testInstrumentation]

// mergeServiceFiles requires that duplicate strategy is set to include
duplicatesStrategy = DuplicatesStrategy.INCLUDE
mergeServiceFiles()

archiveFileName = 'agent-testing.jar'
Expand All @@ -46,13 +49,16 @@ tasks.withType(Test).configureEach {
inputs.file(shadowJar.archiveFile)

jvmArgs "-Dotel.javaagent.debug=true"
jvmArgs "-javaagent:${configurations.testAgent.files.first().absolutePath}"
jvmArgs "-Dotel.javaagent.experimental.initializer.jar=${shadowJar.archiveFile.get().asFile.absolutePath}"
jvmArgs "-Dotel.javaagent.testing.additional-library-ignores.enabled=false"
jvmArgs "-Dotel.javaagent.testing.fail-on-context-leak=true"
// prevent sporadic gradle deadlocks, see SafeLogger for more details
jvmArgs "-Dotel.javaagent.testing.transform-safe-logging.enabled=true"

jvmArgumentProviders.add(new JavaagentProvider(project.providers.provider {
configurations.testAgent.files.first()
}))

dependsOn shadowJar
dependsOn configurations.testAgent.buildDependencies

Expand All @@ -65,3 +71,18 @@ tasks.withType(Test).configureEach {
return true
}
}

class JavaagentProvider implements CommandLineArgumentProvider {
@InputFile
@PathSensitive(PathSensitivity.RELATIVE)
Provider<File> agentJar

JavaagentProvider(Provider<File> agentJar) {
this.agentJar = agentJar
}

@Override
Iterable<String> asArguments() {
return ["-javaagent:${agentJar.get().absolutePath}"]
}
}
11 changes: 5 additions & 6 deletions examples/distro/testing/agent-for-testing/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,10 @@ tasks {
task relocateJavaagentLibs(type: ShadowJar) {
configurations = [project.configurations.javaagentLibs]

duplicatesStrategy = DuplicatesStrategy.FAIL

archiveFileName.set("javaagentLibs-relocated.jar")

// mergeServiceFiles requires that duplicate strategy is set to include
duplicatesStrategy = DuplicatesStrategy.INCLUDE
mergeServiceFiles()
exclude("**/module-info.class")
relocatePackages(it)
Expand Down Expand Up @@ -100,11 +100,10 @@ tasks {

archiveClassifier.set("")

duplicatesStrategy = DuplicatesStrategy.EXCLUDE
// mergeServiceFiles requires that duplicate strategy is set to include
duplicatesStrategy = DuplicatesStrategy.INCLUDE
mergeServiceFiles("inst/META-INF/services")

mergeServiceFiles {
include("inst/META-INF/services/*")
}
exclude("**/module-info.class")
relocatePackages(it)

Expand Down
2 changes: 1 addition & 1 deletion examples/extension/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ plugins {
into a single jar.
See https://imperceptiblethoughts.com/shadow/ for more details about Shadow plugin.
*/
id "com.gradleup.shadow" version "8.3.9"
id "com.gradleup.shadow" version "9.1.0"
id "com.diffplug.spotless" version "7.2.1"

id "io.opentelemetry.instrumentation.muzzle-generation" version "2.20.0-alpha-SNAPSHOT"
Expand Down
2 changes: 1 addition & 1 deletion gradle-plugins/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ dependencies {
implementation("org.eclipse.aether:aether-transport-http:${aetherVersion}")
implementation("org.apache.maven:maven-aether-provider:3.3.9")

implementation("com.gradleup.shadow:shadow-gradle-plugin:8.3.9")
implementation("com.gradleup.shadow:shadow-gradle-plugin:9.1.0")

testImplementation("org.assertj:assertj-core:3.27.4")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ val muzzleBootstrap: Configuration by configurations.creating {
}

val shadowModule by tasks.registering(ShadowJar::class) {
from(tasks.jar)
from(zipTree(tasks.jar.get().archiveFile))

configurations = listOf(project.configurations.runtimeClasspath.get())

Expand All @@ -74,6 +74,8 @@ val shadowMuzzleBootstrap by tasks.registering(ShadowJar::class) {
// this is a copied from io.opentelemetry.instrumentation.javaagent-shadowing for now at least to
// avoid publishing io.opentelemetry.instrumentation.javaagent-shadowing publicly
tasks.withType<ShadowJar>().configureEach {
// mergeServiceFiles requires that duplicate strategy is set to include
duplicatesStrategy = DuplicatesStrategy.INCLUDE
mergeServiceFiles()
// Merge any AWS SDK service files that may be present (too bad they didn't just use normal
// service loader...)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,8 @@ tasks {
}

withType<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar>().configureEach {
// mergeServiceFiles requires that duplicate strategy is set to include
duplicatesStrategy = DuplicatesStrategy.INCLUDE
mergeServiceFiles {
include("software/amazon/awssdk/global/handlers/execution.interceptors")
}
Expand Down
2 changes: 2 additions & 0 deletions javaagent-internal-logging-simple/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ dependencies {

tasks {
val shadowJar by existing(ShadowJar::class) {
// mergeServiceFiles requires that duplicate strategy is set to include
duplicatesStrategy = DuplicatesStrategy.INCLUDE
// required for META-INF/services files relocation
mergeServiceFiles()

Expand Down
6 changes: 1 addition & 5 deletions javaagent/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ tasks {

excludeNonBootstrapClasses()

duplicatesStrategy = DuplicatesStrategy.EXCLUDE
duplicatesStrategy = DuplicatesStrategy.FAIL

archiveFileName.set("bootstrapLibs.jar")
}
Expand All @@ -161,8 +161,6 @@ tasks {

excludeBootstrapClasses()

duplicatesStrategy = DuplicatesStrategy.FAIL

archiveFileName.set("baseJavaagentLibs-relocated-tmp.jar")
}

Expand All @@ -183,8 +181,6 @@ tasks {
// remove MPL licensed content
exclude("okhttp3/internal/publicsuffix/PublicSuffixDatabase.list")

duplicatesStrategy = DuplicatesStrategy.FAIL

archiveFileName.set("javaagentLibs-relocated-tmp.jar")
}

Expand Down
2 changes: 2 additions & 0 deletions testing/armeria-shaded-for-testing/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ tasks {
relocate("org.HdrHistogram", "io.opentelemetry.testing.internal.org.hdrhistogram")
relocate("org.LatencyUtils", "io.opentelemetry.testing.internal.org.latencyutils")

// mergeServiceFiles requires that duplicate strategy is set to include
duplicatesStrategy = DuplicatesStrategy.INCLUDE
mergeServiceFiles()
}

Expand Down
2 changes: 2 additions & 0 deletions testing/wiremock-shaded-for-testing/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ tasks {
relocate("javax.servlet", "io.opentelemetry.testing.internal.servlet")
relocate("org.yaml", "io.opentelemetry.testing.internal.yaml")

// mergeServiceFiles requires that duplicate strategy is set to include
duplicatesStrategy = DuplicatesStrategy.INCLUDE
mergeServiceFiles()
}

Expand Down