Переглянути джерело

Publish shaded OpenTelemetry API and annotations for muzzle (#3555)

* Publish shaded OpenTelemetry API and annotations for muzzle

* code review
Mateusz Rzeszutek 3 роки тому
батько
коміт
229d8adc49

+ 9 - 1
buildSrc/src/main/kotlin/io.opentelemetry.instrumentation.muzzle-check.gradle.kts

@@ -268,10 +268,15 @@ fun inverseOf(muzzleDirective: MuzzleDirective, system: RepositorySystem, sessio
   val inverseDirectives = mutableSetOf<MuzzleDirective>()
 
   val allVersionsArtifact = DefaultArtifact(
-    muzzleDirective.group.get(), muzzleDirective.module.get(), "jar", "[,)")
+    muzzleDirective.group.get(),
+    muzzleDirective.module.get(),
+    muzzleDirective.classifier.get(),
+    "jar",
+    "[,)")
   val directiveArtifact = DefaultArtifact(
     muzzleDirective.group.get(),
     muzzleDirective.module.get(),
+    muzzleDirective.classifier.get(),
     "jar",
     muzzleDirective.versions.get())
 
@@ -294,6 +299,7 @@ fun inverseOf(muzzleDirective: MuzzleDirective, system: RepositorySystem, sessio
     val inverseDirective = objects.newInstance(MuzzleDirective::class).apply {
       group.set(muzzleDirective.group)
       module.set(muzzleDirective.module)
+      classifier.set(muzzleDirective.classifier)
       versions.set(version)
       assertPass.set(!muzzleDirective.assertPass.get())
       excludedDependencies.set(muzzleDirective.excludedDependencies)
@@ -325,6 +331,7 @@ fun muzzleDirectiveToArtifacts(muzzleDirective: MuzzleDirective, system: Reposit
   val directiveArtifact: Artifact = DefaultArtifact(
     muzzleDirective.group.get(),
     muzzleDirective.module.get(),
+    muzzleDirective.classifier.get(),
     "jar",
     muzzleDirective.versions.get())
 
@@ -339,6 +346,7 @@ fun muzzleDirectiveToArtifacts(muzzleDirective: MuzzleDirective, system: Reposit
       DefaultArtifact(
         muzzleDirective.group.get(),
         muzzleDirective.module.get(),
+        muzzleDirective.classifier.get(),
         "jar",
         it)
     }

+ 5 - 0
buildSrc/src/main/kotlin/io/opentelemetry/instrumentation/gradle/muzzle/MuzzleDirective.kt

@@ -15,6 +15,7 @@ abstract class MuzzleDirective {
   abstract val name: Property<String>
   abstract val group: Property<String>
   abstract val module: Property<String>
+  abstract val classifier: Property<String>
   abstract val versions: Property<String>
   abstract val skipVersions: SetProperty<String>
   abstract val additionalDependencies: ListProperty<String>
@@ -25,6 +26,7 @@ abstract class MuzzleDirective {
 
   init {
     name.convention("")
+    classifier.convention("")
     skipVersions.convention(emptySet())
     additionalDependencies.convention(listOf())
     excludedDependencies.convention(listOf())
@@ -88,6 +90,9 @@ abstract class MuzzleDirective {
         .append(module.get())
         .append(':')
         .append(versions.get())
+      if (classifier.isPresent) {
+        sb.append(':').append(classifier.get())
+      }
     }
     return sb.toString()
   }

+ 4 - 3
buildSrc/src/main/kotlin/otel.java-conventions.gradle.kts

@@ -18,10 +18,11 @@ plugins {
 val otelJava = extensions.create<OtelJavaExtension>("otelJava")
 
 afterEvaluate {
+  val previousBaseArchiveName = base.archivesName.get()
   if (findProperty("mavenGroupId") == "io.opentelemetry.javaagent.instrumentation") {
-    base.archivesName.set("opentelemetry-javaagent-${base.archivesName.get()}")
-  } else {
-    base.archivesName.set("opentelemetry-${base.archivesName.get()}")
+    base.archivesName.set("opentelemetry-javaagent-$previousBaseArchiveName")
+  } else if (!previousBaseArchiveName.startsWith("opentelemetry-")) {
+    base.archivesName.set("opentelemetry-$previousBaseArchiveName")
   }
 }
 

+ 2 - 0
instrumentation/opentelemetry-annotations-1.0/javaagent/build.gradle.kts

@@ -2,6 +2,8 @@ plugins {
   id("otel.javaagent-instrumentation")
 }
 
+// TODO: add muzzle once 1.4.0 is released
+
 val versions: Map<String, String> by project
 
 dependencies {

+ 2 - 0
instrumentation/opentelemetry-api-1.0/javaagent/build.gradle.kts

@@ -2,6 +2,8 @@ plugins {
   id("otel.javaagent-instrumentation")
 }
 
+// TODO: add muzzle once 1.4.0 is released
+
 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),

+ 4 - 0
opentelemetry-api-shaded-for-instrumenting/build.gradle.kts

@@ -2,8 +2,12 @@ plugins {
   id("com.github.johnrengelman.shadow")
 
   id("otel.java-conventions")
+  id("otel.publish-conventions")
 }
 
+description = "opentelemetry-api shaded for internal javaagent usage"
+group = "io.opentelemetry.javaagent"
+
 dependencies {
   implementation("io.opentelemetry:opentelemetry-api")
   implementation("io.opentelemetry:opentelemetry-api-metrics")

+ 4 - 0
opentelemetry-ext-annotations-shaded-for-instrumenting/build.gradle.kts

@@ -2,8 +2,12 @@ plugins {
   id("com.github.johnrengelman.shadow")
 
   id("otel.java-conventions")
+  id("otel.publish-conventions")
 }
 
+description = "opentelemetry-extension-annotations shaded for internal javaagent usage"
+group = "io.opentelemetry.javaagent"
+
 dependencies {
   implementation("io.opentelemetry:opentelemetry-extension-annotations")
   implementation("io.opentelemetry:opentelemetry-context")