@@ -73,52 +73,54 @@ val shadowMuzzleBootstrap by tasks.registering(ShadowJar::class) {
7373
7474// this is a copied from io.opentelemetry.instrumentation.javaagent-shadowing for now at least to
7575// avoid publishing io.opentelemetry.instrumentation.javaagent-shadowing publicly
76- tasks.withType<ShadowJar >().configureEach {
77- mergeServiceFiles()
78- // mergeServiceFiles requires that duplicate strategy is set to include
79- filesMatching(" META-INF/services/**" ) {
80- duplicatesStrategy = DuplicatesStrategy .INCLUDE
81- }
82- // Merge any AWS SDK service files that may be present (too bad they didn't just use normal
83- // service loader...)
84- mergeServiceFiles(" software/amazon/awssdk/global/handlers" )
85- // mergeServiceFiles requires that duplicate strategy is set to include
86- filesMatching(" software/amazon/awssdk/global/handlers/**" ) {
87- duplicatesStrategy = DuplicatesStrategy .INCLUDE
88- }
76+ listOf (shadowModule, shadowMuzzleTooling, shadowMuzzleBootstrap).forEach { task ->
77+ task.configure {
78+ mergeServiceFiles()
79+ // mergeServiceFiles requires that duplicate strategy is set to include
80+ filesMatching(" META-INF/services/**" ) {
81+ duplicatesStrategy = DuplicatesStrategy .INCLUDE
82+ }
83+ // Merge any AWS SDK service files that may be present (too bad they didn't just use normal
84+ // service loader...)
85+ mergeServiceFiles(" software/amazon/awssdk/global/handlers" )
86+ // mergeServiceFiles requires that duplicate strategy is set to include
87+ filesMatching(" software/amazon/awssdk/global/handlers/**" ) {
88+ duplicatesStrategy = DuplicatesStrategy .INCLUDE
89+ }
8990
90- exclude(" **/module-info.class" )
91+ exclude(" **/module-info.class" )
9192
92- // rewrite dependencies calling Logger.getLogger
93- relocate(" java.util.logging.Logger" , " io.opentelemetry.javaagent.bootstrap.PatchLogger" )
93+ // rewrite dependencies calling Logger.getLogger
94+ relocate(" java.util.logging.Logger" , " io.opentelemetry.javaagent.bootstrap.PatchLogger" )
9495
95- if (project.findProperty(" disableShadowRelocate" ) != " true" ) {
96- // prevents conflict with library instrumentation, since these classes live in the bootstrap class loader
97- relocate(" io.opentelemetry.instrumentation" , " io.opentelemetry.javaagent.shaded.instrumentation" ) {
98- // Exclude resource providers since they live in the agent class loader
99- exclude(" io.opentelemetry.instrumentation.resources.*" )
100- exclude(" io.opentelemetry.instrumentation.spring.resources.*" )
101- }
96+ if (project.findProperty(" disableShadowRelocate" ) != " true" ) {
97+ // prevents conflict with library instrumentation, since these classes live in the bootstrap class loader
98+ relocate(" io.opentelemetry.instrumentation" , " io.opentelemetry.javaagent.shaded.instrumentation" ) {
99+ // Exclude resource providers since they live in the agent class loader
100+ exclude(" io.opentelemetry.instrumentation.resources.*" )
101+ exclude(" io.opentelemetry.instrumentation.spring.resources.*" )
102+ }
102103
103- // relocate(OpenTelemetry API) since these classes live in the bootstrap class loader
104- relocate(" io.opentelemetry.api" , " io.opentelemetry.javaagent.shaded.io.opentelemetry.api" )
105- relocate(" io.opentelemetry.semconv" , " io.opentelemetry.javaagent.shaded.io.opentelemetry.semconv" )
106- relocate(" io.opentelemetry.context" , " io.opentelemetry.javaagent.shaded.io.opentelemetry.context" )
107- relocate(" io.opentelemetry.common" , " io.opentelemetry.javaagent.shaded.io.opentelemetry.common" )
108- }
104+ // relocate(OpenTelemetry API) since these classes live in the bootstrap class loader
105+ relocate(" io.opentelemetry.api" , " io.opentelemetry.javaagent.shaded.io.opentelemetry.api" )
106+ relocate(" io.opentelemetry.semconv" , " io.opentelemetry.javaagent.shaded.io.opentelemetry.semconv" )
107+ relocate(" io.opentelemetry.context" , " io.opentelemetry.javaagent.shaded.io.opentelemetry.context" )
108+ relocate(" io.opentelemetry.common" , " io.opentelemetry.javaagent.shaded.io.opentelemetry.common" )
109+ }
109110
110- // relocate(the OpenTelemetry extensions that are used by instrumentation modules)
111- // these extensions live in the AgentClassLoader, and are injected into the user's class loader
112- // by the instrumentation modules that use them
113- relocate(" io.opentelemetry.contrib.awsxray" , " io.opentelemetry.javaagent.shaded.io.opentelemetry.contrib.awsxray" )
114- relocate(" io.opentelemetry.extension.kotlin" , " io.opentelemetry.javaagent.shaded.io.opentelemetry.extension.kotlin" )
111+ // relocate(the OpenTelemetry extensions that are used by instrumentation modules)
112+ // these extensions live in the AgentClassLoader, and are injected into the user's class loader
113+ // by the instrumentation modules that use them
114+ relocate(" io.opentelemetry.contrib.awsxray" , " io.opentelemetry.javaagent.shaded.io.opentelemetry.contrib.awsxray" )
115+ relocate(" io.opentelemetry.extension.kotlin" , " io.opentelemetry.javaagent.shaded.io.opentelemetry.extension.kotlin" )
115116
116- // this is for instrumentation of opentelemetry-api and opentelemetry-instrumentation-api
117- relocate(" application.io.opentelemetry" , " io.opentelemetry" )
118- relocate(" application.io.opentelemetry.instrumentation.api" , " io.opentelemetry.instrumentation.api" )
117+ // this is for instrumentation of opentelemetry-api and opentelemetry-instrumentation-api
118+ relocate(" application.io.opentelemetry" , " io.opentelemetry" )
119+ relocate(" application.io.opentelemetry.instrumentation.api" , " io.opentelemetry.instrumentation.api" )
119120
120- // this is for instrumentation on java.util.logging (since java.util.logging itself is shaded above)
121- relocate(" application.java.util.logging" , " java.util.logging" )
121+ // this is for instrumentation on java.util.logging (since java.util.logging itself is shaded above)
122+ relocate(" application.java.util.logging" , " java.util.logging" )
123+ }
122124}
123125
124126val compileMuzzle by tasks.registering {
0 commit comments