Browse Source

Cleaner manifest preservation (#4750)

* Cleaner manifest preservation

* Add explicit dependency
Nikita Salnikov-Tarnovski 3 years ago
parent
commit
d20961621e
2 changed files with 19 additions and 23 deletions
  1. 10 10
      examples/extension/build.gradle
  2. 9 13
      testing/agent-for-testing/build.gradle.kts

+ 10 - 10
examples/extension/build.gradle

@@ -99,24 +99,24 @@ dependencies {
   add("codegen", "ch.qos.logback:logback-classic:1.2.3")
 }
 
-//Extracts manifest from OpenTelemetry Java agent to reuse it later
-task agentManifest(type: Copy) {
-  from zipTree(configurations.otel.singleFile).matching {
-    include 'META-INF/MANIFEST.MF'
-  }
-  into buildDir
-}
-
 //Produces a copy of upstream javaagent with this extension jar included inside it
 //The location of extension directory inside agent jar is hard-coded in the agent source code
 task extendedAgent(type: Jar) {
-  dependsOn agentManifest
+  dependsOn(configurations.otel)
   archiveFileName = "opentelemetry-javaagent.jar"
-  manifest.from "$buildDir/META-INF/MANIFEST.MF"
   from zipTree(configurations.otel.singleFile)
   from(tasks.shadowJar.archiveFile) {
     into "extensions"
   }
+
+  //Preserve MANIFEST.MF file from the upstream javaagent
+  doFirst {
+    manifest.from(
+      zipTree(configurations.otel.singleFile).matching {
+        include 'META-INF/MANIFEST.MF'
+      }.singleFile
+    )
+  }
 }
 
 tasks {

+ 9 - 13
testing/agent-for-testing/build.gradle.kts

@@ -25,24 +25,20 @@ dependencies {
 }
 
 tasks {
-  // Extracts manifest from OpenTelemetry Java agent to reuse it later
-  val agentManifest by registering(Copy::class) {
-    dependsOn(agent)
-    from(
-      zipTree(agent.singleFile).matching {
-        include("META-INF/MANIFEST.MF")
-      }
-    )
-    into("$buildDir/tmp")
-  }
-
   jar {
-    dependsOn(agentManifest)
-    manifest.from("$buildDir/tmp/META-INF/MANIFEST.MF")
+    dependsOn(agent)
     from(zipTree(agent.singleFile))
     from(extensionLibs) {
       into("extensions")
     }
+
+    doFirst {
+      manifest.from(
+        zipTree(agent.singleFile).matching {
+          include("META-INF/MANIFEST.MF")
+        }.singleFile
+      )
+    }
   }
 
   afterEvaluate {