From 9717b1fad32f8df1d3d975017f0ff267099a4dff Mon Sep 17 00:00:00 2001 From: Jack Berg <34418638+jack-berg@users.noreply.github.com> Date: Thu, 29 Oct 2026 13:15:15 -0500 Subject: [PATCH 1/2] Upgrade to errorprone 2.51.0 --- .../internal/InternalAttributeKeyImpl.java | 12 ++++------- .../logs/ExtendedDefaultLoggerProvider.java | 1 + .../trace/ExtendedDefaultTracerProvider.java | 1 + .../otel.errorprone-conventions.gradle.kts | 3 +++ .../gradle/customchecks/OtelImplJavadoc.java | 1 + .../customchecks/OtelInternalJavadoc.java | 1 + ...OtelPrivateConstructorForUtilityClass.java | 1 + dependencyManagement/build.gradle.kts | 2 +- .../internal/OtlpDeclarativeConfigUtil.java | 12 ++++++++--- .../AbstractGrpcTelemetryExporterTest.java | 1 + .../AbstractHttpTelemetryExporterTest.java | 1 + .../testing/internal/FakeTelemetryUtil.java | 1 + .../testing/internal/TelemetryExporter.java | 1 + .../internal/TelemetryExporterBuilder.java | 1 + .../internal/UpstreamGrpcSenderProvider.java | 20 +++++++++++-------- .../java/io/opentelemetry/Application.java | 1 + .../main/java/io/opentelemetry/Request.java | 1 + .../io/opentelemetry/javadocs/Artifact.java | 1 + .../ServiceResourceDetector.java | 1 + .../incubator/trace/OnEndSpanProcessor.java | 1 + .../incubator/trace/OnStartSpanProcessor.java | 1 + .../sampler/JaegerRemoteSamplerProvider.java | 1 + .../internal/state/ArrayBasedStack.java | 6 +++--- .../assertj/OpenTelemetryAssertions.java | 9 +++++++++ .../testing/slf4j/SuppressLogger.java | 1 + 25 files changed, 59 insertions(+), 23 deletions(-) diff --git a/api/all/src/main/java/io/opentelemetry/api/internal/InternalAttributeKeyImpl.java b/api/all/src/main/java/io/opentelemetry/api/internal/InternalAttributeKeyImpl.java index dfeca408c19..7d1e4486b55 100644 --- a/api/all/src/main/java/io/opentelemetry/api/internal/InternalAttributeKeyImpl.java +++ b/api/all/src/main/java/io/opentelemetry/api/internal/InternalAttributeKeyImpl.java @@ -5,6 +5,8 @@ package io.opentelemetry.api.internal; +import static java.util.Objects.requireNonNull; + import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.AttributeType; import java.nio.charset.StandardCharsets; @@ -25,14 +27,8 @@ public final class InternalAttributeKeyImpl implements AttributeKey { @Nullable private byte[] keyUtf8; private InternalAttributeKeyImpl(AttributeType type, String key) { - if (type == null) { - throw new NullPointerException("Null type"); - } - this.type = type; - if (key == null) { - throw new NullPointerException("Null key"); - } - this.key = key; + this.type = requireNonNull(type, "Null type"); + this.key = requireNonNull(key, "Null key"); this.hashCode = buildHashCode(type, key); } diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/logs/ExtendedDefaultLoggerProvider.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/logs/ExtendedDefaultLoggerProvider.java index 6cf93296689..f46163ff954 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/logs/ExtendedDefaultLoggerProvider.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/logs/ExtendedDefaultLoggerProvider.java @@ -9,6 +9,7 @@ import io.opentelemetry.api.logs.LoggerBuilder; import io.opentelemetry.api.logs.LoggerProvider; +/** A no-op logger provider supporting the incubating logs API. */ public class ExtendedDefaultLoggerProvider implements LoggerProvider { private static final LoggerProvider INSTANCE = new ExtendedDefaultLoggerProvider(); diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/trace/ExtendedDefaultTracerProvider.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/trace/ExtendedDefaultTracerProvider.java index b7bd2133ad7..ce6e897a986 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/trace/ExtendedDefaultTracerProvider.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/trace/ExtendedDefaultTracerProvider.java @@ -10,6 +10,7 @@ import io.opentelemetry.api.trace.TracerProvider; import javax.annotation.concurrent.ThreadSafe; +/** A no-op tracer provider supporting the incubating tracing API. */ @ThreadSafe public class ExtendedDefaultTracerProvider implements TracerProvider { diff --git a/buildSrc/src/main/kotlin/otel.errorprone-conventions.gradle.kts b/buildSrc/src/main/kotlin/otel.errorprone-conventions.gradle.kts index b34e9c50e33..ecc9da3115d 100644 --- a/buildSrc/src/main/kotlin/otel.errorprone-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/otel.errorprone-conventions.gradle.kts @@ -31,6 +31,7 @@ tasks { excludedPaths.set(".*/build/generated/.*|.*/internal/shaded/.*") // Still Java 8 + disable("TraditionalJavadocToMarkdown") disable("Varifier") // Doesn't currently use Var annotations. @@ -94,6 +95,8 @@ tasks { disable("MemberName") // Internal javadoc not needed for test or jmh classes disable("OtelInternalJavadoc") + // Javadoc not required for test or jmh classes + disable("MissingJavadoc") } option("NullAway:CustomContractAnnotations", "io.opentelemetry.api.internal.Contract") diff --git a/custom-checks/src/main/java/io/opentelemetry/gradle/customchecks/OtelImplJavadoc.java b/custom-checks/src/main/java/io/opentelemetry/gradle/customchecks/OtelImplJavadoc.java index 22a0178fefe..80044d0b832 100644 --- a/custom-checks/src/main/java/io/opentelemetry/gradle/customchecks/OtelImplJavadoc.java +++ b/custom-checks/src/main/java/io/opentelemetry/gradle/customchecks/OtelImplJavadoc.java @@ -20,6 +20,7 @@ import javax.annotation.Nullable; import javax.lang.model.element.Modifier; +/** Enforces API stability disclaimers on public types in impl packages. */ @BugPattern( summary = "This public impl class is missing the required javadoc disclaimer: \"" diff --git a/custom-checks/src/main/java/io/opentelemetry/gradle/customchecks/OtelInternalJavadoc.java b/custom-checks/src/main/java/io/opentelemetry/gradle/customchecks/OtelInternalJavadoc.java index 3c938a34fbd..2955b47f749 100644 --- a/custom-checks/src/main/java/io/opentelemetry/gradle/customchecks/OtelInternalJavadoc.java +++ b/custom-checks/src/main/java/io/opentelemetry/gradle/customchecks/OtelInternalJavadoc.java @@ -20,6 +20,7 @@ import javax.annotation.Nullable; import javax.lang.model.element.Modifier; +/** Enforces API stability disclaimers on public types in internal packages. */ @BugPattern( summary = "This public internal class doesn't contain any of the applicable javadoc disclaimers: \"" diff --git a/custom-checks/src/main/java/io/opentelemetry/gradle/customchecks/OtelPrivateConstructorForUtilityClass.java b/custom-checks/src/main/java/io/opentelemetry/gradle/customchecks/OtelPrivateConstructorForUtilityClass.java index 0f6a67a1798..fc9a983e34e 100644 --- a/custom-checks/src/main/java/io/opentelemetry/gradle/customchecks/OtelPrivateConstructorForUtilityClass.java +++ b/custom-checks/src/main/java/io/opentelemetry/gradle/customchecks/OtelPrivateConstructorForUtilityClass.java @@ -16,6 +16,7 @@ import com.google.errorprone.matchers.Description; import com.sun.source.tree.ClassTree; +/** Enforces private constructors on utility classes, including classes with a main method. */ @BugPattern( summary = "Classes which are not intended to be instantiated should be made non-instantiable with a private constructor. This includes utility classes (classes with only static members), and the main class.", diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts index 76553f81700..768ad9dc266 100644 --- a/dependencyManagement/build.gradle.kts +++ b/dependencyManagement/build.gradle.kts @@ -9,7 +9,7 @@ rootProject.extra["versions"] = dependencyVersions val autoValueVersion = "1.11.1" -val errorProneVersion = "2.50.0" +val errorProneVersion = "2.51.0" val jmhVersion = "1.37" // Mockito 5.x.x requires Java 11 https://github.com/mockito/mockito/releases/tag/v5.0.0 val mockitoVersion = "4.11.0" diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpDeclarativeConfigUtil.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpDeclarativeConfigUtil.java index 141f39ec4fb..4edb9bd3adf 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpDeclarativeConfigUtil.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpDeclarativeConfigUtil.java @@ -66,9 +66,9 @@ public static void configureOtlpExporterBuilder( boolean isHttpProtobuf, Consumer internalTelemetryVersionConsumer, Runnable setNoopMeterProvider) { - if (!(baseConfig instanceof ExtendedDeclarativeConfigProperties)) { - throw new IllegalArgumentException("Expected ExtendedDeclarativeConfigProperties"); - } + checkArgument( + baseConfig instanceof ExtendedDeclarativeConfigProperties, + "Expected ExtendedDeclarativeConfigProperties"); ExtendedDeclarativeConfigProperties config = (ExtendedDeclarativeConfigProperties) baseConfig; setComponentLoader.accept(config.getComponentLoader()); @@ -163,5 +163,11 @@ private static InternalTelemetryVersion getInternalTelemetryVersion( } } + private static void checkArgument(boolean isValid, String message) { + if (!isValid) { + throw new IllegalArgumentException(message); + } + } + private OtlpDeclarativeConfigUtil() {} } diff --git a/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractGrpcTelemetryExporterTest.java b/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractGrpcTelemetryExporterTest.java index 365fa2ca659..97e6481fbfb 100644 --- a/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractGrpcTelemetryExporterTest.java +++ b/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractGrpcTelemetryExporterTest.java @@ -113,6 +113,7 @@ import org.slf4j.event.Level; import org.slf4j.event.LoggingEvent; +/** Shared OTLP gRPC exporter tests for all telemetry signals. */ @TestInstance(TestInstance.Lifecycle.PER_CLASS) public abstract class AbstractGrpcTelemetryExporterTest { diff --git a/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractHttpTelemetryExporterTest.java b/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractHttpTelemetryExporterTest.java index 5f5b13b1adf..565a20fce88 100644 --- a/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractHttpTelemetryExporterTest.java +++ b/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractHttpTelemetryExporterTest.java @@ -103,6 +103,7 @@ import org.slf4j.event.Level; import org.slf4j.event.LoggingEvent; +/** Shared OTLP HTTP exporter tests for all telemetry signals. */ @TestInstance(TestInstance.Lifecycle.PER_CLASS) public abstract class AbstractHttpTelemetryExporterTest { diff --git a/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/FakeTelemetryUtil.java b/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/FakeTelemetryUtil.java index 2bdf65ef23e..f30fdabba50 100644 --- a/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/FakeTelemetryUtil.java +++ b/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/FakeTelemetryUtil.java @@ -29,6 +29,7 @@ import java.util.Collections; import java.util.concurrent.TimeUnit; +/** Creates sample telemetry for OTLP exporter tests. */ public class FakeTelemetryUtil { private static final String TRACE_ID = "00000000000000000000000000abc123"; diff --git a/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/TelemetryExporter.java b/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/TelemetryExporter.java index 3ce553bc654..7fbdcf8a4ea 100644 --- a/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/TelemetryExporter.java +++ b/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/TelemetryExporter.java @@ -27,6 +27,7 @@ import java.util.Collection; import java.util.concurrent.TimeUnit; +/** A signal-independent exporter interface for shared OTLP exporter tests. */ public interface TelemetryExporter extends AutoCloseable { /** Wraps a SpanExporter. */ diff --git a/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/TelemetryExporterBuilder.java b/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/TelemetryExporterBuilder.java index 779cc63905e..3d6c984ebf8 100644 --- a/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/TelemetryExporterBuilder.java +++ b/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/TelemetryExporterBuilder.java @@ -27,6 +27,7 @@ import javax.net.ssl.SSLContext; import javax.net.ssl.X509TrustManager; +/** A signal-independent exporter builder for shared OTLP exporter tests. */ public interface TelemetryExporterBuilder { static TelemetryExporterBuilder wrap(OtlpGrpcSpanExporterBuilder builder) { diff --git a/exporters/sender/grpc-managed-channel/src/main/java/io/opentelemetry/exporter/sender/grpc/managedchannel/internal/UpstreamGrpcSenderProvider.java b/exporters/sender/grpc-managed-channel/src/main/java/io/opentelemetry/exporter/sender/grpc/managedchannel/internal/UpstreamGrpcSenderProvider.java index 5f5af48ca5a..d4e355b2b64 100644 --- a/exporters/sender/grpc-managed-channel/src/main/java/io/opentelemetry/exporter/sender/grpc/managedchannel/internal/UpstreamGrpcSenderProvider.java +++ b/exporters/sender/grpc-managed-channel/src/main/java/io/opentelemetry/exporter/sender/grpc/managedchannel/internal/UpstreamGrpcSenderProvider.java @@ -23,20 +23,18 @@ public class UpstreamGrpcSenderProvider implements GrpcSenderProvider { @Override public GrpcSender createSender(GrpcSenderConfig grpcSenderConfig) { - if (!(grpcSenderConfig instanceof ExtendedGrpcSenderConfig)) { - throw new IllegalStateException( - "grpcSenderConfig must be an instance of ExtendedGrpcSenderConfig for UpstreamGrpcSenderProvider"); - } + checkState( + grpcSenderConfig instanceof ExtendedGrpcSenderConfig, + "grpcSenderConfig must be an instance of ExtendedGrpcSenderConfig for UpstreamGrpcSenderProvider"); ExtendedGrpcSenderConfig extendedSenderConfig = (ExtendedGrpcSenderConfig) grpcSenderConfig; boolean shutdownChannel = false; Object configManagedChannel = extendedSenderConfig.getMangedChannel(); ManagedChannel managedChannel; if (configManagedChannel != null) { - if (!(configManagedChannel instanceof ManagedChannel)) { - throw new IllegalStateException( - "managedChannel must be an instance of ManagedChannel for UpstreamGrpcSenderProvider"); - } + checkState( + configManagedChannel instanceof ManagedChannel, + "managedChannel must be an instance of ManagedChannel for UpstreamGrpcSenderProvider"); managedChannel = (ManagedChannel) configManagedChannel; } else { // Shutdown the channel as part of the exporter shutdown sequence if @@ -74,4 +72,10 @@ private static ManagedChannel minimalFallbackManagedChannel(URI endpoint) { } return channelBuilder.build(); } + + private static void checkState(boolean isValid, String message) { + if (!isValid) { + throw new IllegalStateException(message); + } + } } diff --git a/integration-tests/tracecontext/src/main/java/io/opentelemetry/Application.java b/integration-tests/tracecontext/src/main/java/io/opentelemetry/Application.java index 0b64333e147..d5ec50eb1a0 100644 --- a/integration-tests/tracecontext/src/main/java/io/opentelemetry/Application.java +++ b/integration-tests/tracecontext/src/main/java/io/opentelemetry/Application.java @@ -32,6 +32,7 @@ import java.util.stream.Collectors; import javax.annotation.Nullable; +/** HTTP server for the W3C trace context conformance tests. */ public final class Application { private static final Logger logger = Logger.getLogger(Application.class.getName()); diff --git a/integration-tests/tracecontext/src/main/java/io/opentelemetry/Request.java b/integration-tests/tracecontext/src/main/java/io/opentelemetry/Request.java index c1897b3be57..bce27218dda 100644 --- a/integration-tests/tracecontext/src/main/java/io/opentelemetry/Request.java +++ b/integration-tests/tracecontext/src/main/java/io/opentelemetry/Request.java @@ -8,6 +8,7 @@ import java.util.List; import javax.annotation.Nullable; +/** An outbound request in a trace context conformance test, including any nested requests. */ public final class Request { @Nullable private String url; @Nullable private List arguments; diff --git a/javadoc-crawler/src/main/java/io/opentelemetry/javadocs/Artifact.java b/javadoc-crawler/src/main/java/io/opentelemetry/javadocs/Artifact.java index f8370e5f1c1..3bcfdc80587 100644 --- a/javadoc-crawler/src/main/java/io/opentelemetry/javadocs/Artifact.java +++ b/javadoc-crawler/src/main/java/io/opentelemetry/javadocs/Artifact.java @@ -5,6 +5,7 @@ package io.opentelemetry.javadocs; +/** Maven coordinates of an artifact whose Javadoc is crawled. */ public class Artifact { private final String group; private final String name; diff --git a/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/ServiceResourceDetector.java b/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/ServiceResourceDetector.java index f09d44a6275..07aeb0ed3cc 100644 --- a/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/ServiceResourceDetector.java +++ b/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/ServiceResourceDetector.java @@ -15,6 +15,7 @@ import java.util.Collections; import java.util.UUID; +/** Detects the service name and generates a service instance ID for declarative configuration. */ public class ServiceResourceDetector implements ComponentProvider { private static final AttributeKey SERVICE_NAME = AttributeKey.stringKey("service.name"); diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/trace/OnEndSpanProcessor.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/trace/OnEndSpanProcessor.java index 4a207277201..5a8d24412e7 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/trace/OnEndSpanProcessor.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/trace/OnEndSpanProcessor.java @@ -42,6 +42,7 @@ public boolean isStartRequired() { return false; } + /** Callback invoked when a span ends. */ @FunctionalInterface public interface OnEnd { void apply(ReadableSpan span); diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/trace/OnStartSpanProcessor.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/trace/OnStartSpanProcessor.java index 1ef96c2e883..a291a14acc2 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/trace/OnStartSpanProcessor.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/trace/OnStartSpanProcessor.java @@ -43,6 +43,7 @@ public boolean isEndRequired() { return false; } + /** Callback invoked when a span starts. */ @FunctionalInterface public interface OnStart { void apply(Context context, ReadWriteSpan span); diff --git a/sdk-extensions/jaeger-remote-sampler/src/main/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/JaegerRemoteSamplerProvider.java b/sdk-extensions/jaeger-remote-sampler/src/main/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/JaegerRemoteSamplerProvider.java index 422a3b3f4e4..67069cf9397 100644 --- a/sdk-extensions/jaeger-remote-sampler/src/main/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/JaegerRemoteSamplerProvider.java +++ b/sdk-extensions/jaeger-remote-sampler/src/main/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/JaegerRemoteSamplerProvider.java @@ -13,6 +13,7 @@ import java.util.logging.Level; import java.util.logging.Logger; +/** Autoconfiguration provider for the {@code jaeger_remote} sampler. */ public class JaegerRemoteSamplerProvider implements ConfigurableSamplerProvider { private static final Logger LOGGER = diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/ArrayBasedStack.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/ArrayBasedStack.java index 907ec7e2234..9472276cb4e 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/ArrayBasedStack.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/ArrayBasedStack.java @@ -5,6 +5,8 @@ package io.opentelemetry.sdk.metrics.internal.state; +import static java.util.Objects.requireNonNull; + import javax.annotation.Nullable; /** @@ -38,9 +40,7 @@ public ArrayBasedStack() { * @throws NullPointerException if {@code element} is null */ public void push(T element) { - if (element == null) { - throw new NullPointerException("Null is not permitted as element in the stack"); - } + requireNonNull(element, "Null is not permitted as element in the stack"); if (size == array.length) { resizeArray(array.length * 2); } diff --git a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/OpenTelemetryAssertions.java b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/OpenTelemetryAssertions.java index c5e5f871753..c6693829ffa 100644 --- a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/OpenTelemetryAssertions.java +++ b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/OpenTelemetryAssertions.java @@ -255,22 +255,31 @@ public static AttributeAssertion equalTo(AttributeKey key, int value) { // Unique interfaces to prevent generic functional interface clash. These are not interesting at // all but are required to be able to use the same method name in methods like satisfies above. + /** Assertions on a string attribute value. */ public interface StringAssertConsumer extends Consumer> {} + /** Assertions on a boolean attribute value. */ public interface BooleanAssertConsumer extends Consumer> {} + /** Assertions on a long attribute value. */ public interface LongAssertConsumer extends Consumer> {} + /** Assertions on a double attribute value. */ public interface DoubleAssertConsumer extends Consumer> {} + /** Assertions on a string array attribute value. */ public interface StringListAssertConsumer extends Consumer> {} + /** Assertions on a boolean array attribute value. */ public interface BooleanListAssertConsumer extends Consumer> {} + /** Assertions on a long array attribute value. */ public interface LongListAssertConsumer extends Consumer> {} + /** Assertions on a double array attribute value. */ public interface DoubleListAssertConsumer extends Consumer> {} + /** Assertions on a structured attribute value. */ public interface ValueAssertConsumer extends Consumer>> {} private static List toList(boolean... values) { diff --git a/testing-internal/src/main/java/io/opentelemetry/internal/testing/slf4j/SuppressLogger.java b/testing-internal/src/main/java/io/opentelemetry/internal/testing/slf4j/SuppressLogger.java index 34aad42c2f1..7c5789ba6ac 100644 --- a/testing-internal/src/main/java/io/opentelemetry/internal/testing/slf4j/SuppressLogger.java +++ b/testing-internal/src/main/java/io/opentelemetry/internal/testing/slf4j/SuppressLogger.java @@ -22,6 +22,7 @@ /** The names of {@link java.util.logging.Logger}s to be suppressed. */ String loggerName() default ""; + /** Container for repeated {@link SuppressLogger} annotations. */ @Retention(RetentionPolicy.RUNTIME) @interface SuppressLoggers { SuppressLogger[] value(); From 97adf82ccba06a367a1cc70060d160283ea0e791 Mon Sep 17 00:00:00 2001 From: Jack Berg <34418638+jack-berg@users.noreply.github.com> Date: Thu, 29 Oct 2026 16:57:16 -0500 Subject: [PATCH 2/2] fix build --- .../declarativeconfig/EntitiesEnvResourceDetector.java | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/EntitiesEnvResourceDetector.java b/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/EntitiesEnvResourceDetector.java index 172dbce98eb..dd23c815c72 100644 --- a/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/EntitiesEnvResourceDetector.java +++ b/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/EntitiesEnvResourceDetector.java @@ -14,6 +14,7 @@ import io.opentelemetry.sdk.resources.Resource; import java.util.Collections; +/** Detects entities set from {@code OTEL_ENTITIES} for declarative configuration. */ public class EntitiesEnvResourceDetector implements ComponentProvider { @Override