Skip to content

Commit

Permalink
Stop publishing opentelemetry-exporter-jaeger-proto artifact (#4724)
Browse files Browse the repository at this point in the history
* Stop publishing opentelemetry-exporter-jaeger-proto artifact

* Load class by string
  • Loading branch information
jack-berg committed Sep 8, 2022
1 parent aea98ba commit c3a9f68
Show file tree
Hide file tree
Showing 7 changed files with 50 additions and 3 deletions.
1 change: 0 additions & 1 deletion README.md
Expand Up @@ -259,7 +259,6 @@ dependency as follows, replacing `{{artifact-id}}` with the value from the "Arti
| [OTLP Common](./exporters/otlp/common) | Shared OTLP components (internal) | `opentelemetry-exporter-otlp-common` | <!--VERSION_STABLE-->1.17.0<!--/VERSION_STABLE--> |
| [Jaeger gRPC Exporter](./exporters/jaeger) | Jaeger gRPC trace exporter | `opentelemetry-exporter-jaeger` | <!--VERSION_STABLE-->1.17.0<!--/VERSION_STABLE--> |
| [Jaeger Thrift Exporter](./exporters/jaeger-thrift) | Jaeger thrift trace exporter | `opentelemetry-exporter-jaeger-thift` | <!--VERSION_STABLE-->1.17.0<!--/VERSION_STABLE--> |
| [Jaeger Proto](./exporters/jaeger-proto) | Jaeger gRPC protobuf definitions (deprecated) | `opentelemetry-exporter-jaeger-proto` | <!--VERSION_STABLE-->1.17.0<!--/VERSION_STABLE--> |
| [Logging Exporter](./exporters/logging) | Logging exporters, includings metrics, traces, and logs | `opentelemetry-exporter-logging` | <!--VERSION_STABLE-->1.17.0<!--/VERSION_STABLE--> |
| [OTLP Logging Exporter](./exporters/logging-otlp) | Logging exporters in OTLP protobuf JSON format, including metrics, traces, and logs | `opentelemetry-exporter-logging-otlp` | <!--VERSION_STABLE-->1.17.0<!--/VERSION_STABLE--> |
| [Zipkin Exporter](./exporters/zipkin) | Zipkin trace exporter | `opentelemetry-exporter-zipkin` | <!--VERSION_STABLE-->1.17.0<!--/VERSION_STABLE--> |
Expand Down
10 changes: 10 additions & 0 deletions all/build.gradle.kts
Expand Up @@ -38,6 +38,16 @@ dependencies {
}
}
}

// For testing BOM references to artifacts that were previously published
testImplementation(platform(project(":bom")))
// The io.grpc.grpc-* dependencies are transitive dependencies of opentelemetry-exporter-jaeger-proto
// which must be provided by the user
testImplementation("io.opentelemetry:opentelemetry-exporter-jaeger-proto")
testImplementation("io.grpc:grpc-api")
testImplementation("io.grpc:grpc-protobuf")
testImplementation("io.grpc:grpc-stub")

testImplementation("com.tngtech.archunit:archunit-junit5")
}

Expand Down
23 changes: 23 additions & 0 deletions all/src/test/java/io/opentelemetry/all/FallbackArtifactsTest.java
@@ -0,0 +1,23 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.all;

import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;

class FallbackArtifactsTest {

@Test
void exporterJaegerProto() {
classAvailable("io.opentelemetry.exporter.jaeger.proto.api_v2.Collector");
classAvailable("io.opentelemetry.exporter.jaeger.proto.api_v2.CollectorServiceGrpc");
classAvailable("io.opentelemetry.exporter.jaeger.proto.api_v2.Model");
}

private static void classAvailable(String fqcn) {
Assertions.assertThatCode(() -> Class.forName(fqcn)).doesNotThrowAnyException();
}
}
5 changes: 4 additions & 1 deletion bom/build.gradle.kts
Expand Up @@ -6,4 +6,7 @@ description = "OpenTelemetry Bill of Materials"
group = "io.opentelemetry"
base.archivesName.set("opentelemetry-bom")

otelBom.projectFilter.set { !it.hasProperty("otel.release") }
otelBom.projectFilter.set { !it.hasProperty("otel.release") }

// Artifacts that were previously published and included in the BOM for backwards compatibility
otelBom.addFallback("opentelemetry-exporter-jaeger-proto", "1.17.0")
Expand Up @@ -6,9 +6,15 @@
package io.opentelemetry.gradle

import org.gradle.api.Project
import org.gradle.api.model.ObjectFactory
import org.gradle.api.provider.Property
import java.util.function.Predicate

abstract class OtelBomExtension {
abstract val projectFilter: Property<Predicate<Project>>
val fallbacks: MutableSet<String> = hashSetOf()

fun addFallback(artifactId: String, version: String) {
this.fallbacks.add("io.opentelemetry:" + artifactId + ":" + version)
}
}
7 changes: 7 additions & 0 deletions buildSrc/src/main/kotlin/otel.bom-conventions.gradle.kts
Expand Up @@ -61,4 +61,11 @@ afterEvaluate {
}
}
}
otelBom.fallbacks.forEach { fallback ->
dependencies {
constraints {
api(fallback)
}
}
}
}
1 change: 0 additions & 1 deletion exporters/jaeger-proto/build.gradle.kts
@@ -1,6 +1,5 @@
plugins {
id("otel.protobuf-conventions")
id("otel.publish-conventions")

id("otel.animalsniffer-conventions")
}
Expand Down

0 comments on commit c3a9f68

Please sign in to comment.