From 9e0fb3ddf2aa63888d422d6428797baf7cc3ac11 Mon Sep 17 00:00:00 2001 From: "sentry-junior[bot]" <264270552+sentry-junior[bot]@users.noreply.github.com> Date: Thu, 27 Aug 2026 08:46:24 +0000 Subject: [PATCH] ref(core): Mark NoOp stubs as @ApiStatus.Internal These no-op implementations are SDK plumbing, not public API. Marking them internal now documents the contract so they can be relocated in a future major without implying customer support. Co-Authored-By: Nelson Osacky --- .../main/java/io/sentry/graphql/NoOpSubscriptionHandler.java | 2 ++ .../main/java/io/sentry/NoOpCompositePerformanceCollector.java | 2 ++ sentry/src/main/java/io/sentry/NoOpContinuousProfiler.java | 2 ++ sentry/src/main/java/io/sentry/NoOpDistributionApi.java | 1 + sentry/src/main/java/io/sentry/NoOpEnvelopeReader.java | 2 ++ sentry/src/main/java/io/sentry/NoOpFeedbackApi.java | 2 ++ sentry/src/main/java/io/sentry/NoOpHub.java | 3 ++- sentry/src/main/java/io/sentry/NoOpLogger.java | 2 ++ sentry/src/main/java/io/sentry/NoOpProfileConverter.java | 2 ++ .../src/main/java/io/sentry/NoOpReplayBreadcrumbConverter.java | 2 ++ sentry/src/main/java/io/sentry/NoOpReplayController.java | 2 ++ sentry/src/main/java/io/sentry/NoOpScope.java | 1 + sentry/src/main/java/io/sentry/NoOpScopes.java | 1 + sentry/src/main/java/io/sentry/NoOpScopesLifecycleToken.java | 3 +++ sentry/src/main/java/io/sentry/NoOpScopesStorage.java | 2 ++ sentry/src/main/java/io/sentry/NoOpSocketTagger.java | 2 ++ sentry/src/main/java/io/sentry/NoOpSpan.java | 2 ++ sentry/src/main/java/io/sentry/NoOpTransaction.java | 1 + sentry/src/main/java/io/sentry/NoOpTransactionProfiler.java | 2 ++ sentry/src/main/java/io/sentry/NoopVersionDetector.java | 3 +++ .../java/io/sentry/backpressure/NoOpBackpressureMonitor.java | 3 +++ .../java/io/sentry/internal/modules/NoOpModulesLoader.java | 2 ++ sentry/src/main/java/io/sentry/logger/NoOpLoggerApi.java | 2 ++ .../main/java/io/sentry/logger/NoOpLoggerBatchProcessor.java | 2 ++ sentry/src/main/java/io/sentry/metrics/NoOpMetricsApi.java | 2 ++ .../main/java/io/sentry/metrics/NoOpMetricsBatchProcessor.java | 2 ++ .../src/main/java/io/sentry/transport/NoOpEnvelopeCache.java | 2 ++ .../src/main/java/io/sentry/transport/NoOpTransportGate.java | 3 +++ 28 files changed, 56 insertions(+), 1 deletion(-) diff --git a/sentry-graphql-core/src/main/java/io/sentry/graphql/NoOpSubscriptionHandler.java b/sentry-graphql-core/src/main/java/io/sentry/graphql/NoOpSubscriptionHandler.java index 839f4137191..1f28aae1072 100644 --- a/sentry-graphql-core/src/main/java/io/sentry/graphql/NoOpSubscriptionHandler.java +++ b/sentry-graphql-core/src/main/java/io/sentry/graphql/NoOpSubscriptionHandler.java @@ -2,8 +2,10 @@ import graphql.execution.instrumentation.parameters.InstrumentationFieldFetchParameters; import io.sentry.IScopes; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; +@ApiStatus.Internal public final class NoOpSubscriptionHandler implements SentrySubscriptionHandler { private static final @NotNull NoOpSubscriptionHandler instance = new NoOpSubscriptionHandler(); diff --git a/sentry/src/main/java/io/sentry/NoOpCompositePerformanceCollector.java b/sentry/src/main/java/io/sentry/NoOpCompositePerformanceCollector.java index a159be9182f..0c1b08ef696 100644 --- a/sentry/src/main/java/io/sentry/NoOpCompositePerformanceCollector.java +++ b/sentry/src/main/java/io/sentry/NoOpCompositePerformanceCollector.java @@ -1,9 +1,11 @@ package io.sentry; import java.util.List; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +@ApiStatus.Internal public final class NoOpCompositePerformanceCollector implements CompositePerformanceCollector { private static final NoOpCompositePerformanceCollector instance = diff --git a/sentry/src/main/java/io/sentry/NoOpContinuousProfiler.java b/sentry/src/main/java/io/sentry/NoOpContinuousProfiler.java index 4cda59e7c33..b34f76825d9 100644 --- a/sentry/src/main/java/io/sentry/NoOpContinuousProfiler.java +++ b/sentry/src/main/java/io/sentry/NoOpContinuousProfiler.java @@ -1,8 +1,10 @@ package io.sentry; import io.sentry.protocol.SentryId; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; +@ApiStatus.Internal public final class NoOpContinuousProfiler implements IContinuousProfiler { private static final NoOpContinuousProfiler instance = new NoOpContinuousProfiler(); diff --git a/sentry/src/main/java/io/sentry/NoOpDistributionApi.java b/sentry/src/main/java/io/sentry/NoOpDistributionApi.java index f4380a02fd3..b1b5d1a78d9 100644 --- a/sentry/src/main/java/io/sentry/NoOpDistributionApi.java +++ b/sentry/src/main/java/io/sentry/NoOpDistributionApi.java @@ -8,6 +8,7 @@ import org.jetbrains.annotations.NotNull; /** No-op implementation of IDistributionApi. Used when distribution module is not available. */ +@ApiStatus.Internal @ApiStatus.Experimental public final class NoOpDistributionApi implements IDistributionApi { diff --git a/sentry/src/main/java/io/sentry/NoOpEnvelopeReader.java b/sentry/src/main/java/io/sentry/NoOpEnvelopeReader.java index f06533c3255..c2a0597b1ba 100644 --- a/sentry/src/main/java/io/sentry/NoOpEnvelopeReader.java +++ b/sentry/src/main/java/io/sentry/NoOpEnvelopeReader.java @@ -2,9 +2,11 @@ import java.io.IOException; import java.io.InputStream; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +@ApiStatus.Internal public final class NoOpEnvelopeReader implements IEnvelopeReader { private static final NoOpEnvelopeReader instance = new NoOpEnvelopeReader(); diff --git a/sentry/src/main/java/io/sentry/NoOpFeedbackApi.java b/sentry/src/main/java/io/sentry/NoOpFeedbackApi.java index 23ea5cb47eb..dd6ed59c77c 100644 --- a/sentry/src/main/java/io/sentry/NoOpFeedbackApi.java +++ b/sentry/src/main/java/io/sentry/NoOpFeedbackApi.java @@ -2,9 +2,11 @@ import io.sentry.protocol.Feedback; import io.sentry.protocol.SentryId; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +@ApiStatus.Internal public final class NoOpFeedbackApi implements IFeedbackApi { private static final NoOpFeedbackApi instance = new NoOpFeedbackApi(); diff --git a/sentry/src/main/java/io/sentry/NoOpHub.java b/sentry/src/main/java/io/sentry/NoOpHub.java index d5ef143d342..d6ec5774e2b 100644 --- a/sentry/src/main/java/io/sentry/NoOpHub.java +++ b/sentry/src/main/java/io/sentry/NoOpHub.java @@ -14,10 +14,11 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -@Deprecated /** * @deprecated use {@link NoOpScopes} instead. */ +@Deprecated +@ApiStatus.Internal public final class NoOpHub implements IHub { private static final NoOpHub instance = new NoOpHub(); diff --git a/sentry/src/main/java/io/sentry/NoOpLogger.java b/sentry/src/main/java/io/sentry/NoOpLogger.java index 9b036d8d77b..b42f5c6f05e 100644 --- a/sentry/src/main/java/io/sentry/NoOpLogger.java +++ b/sentry/src/main/java/io/sentry/NoOpLogger.java @@ -1,9 +1,11 @@ package io.sentry; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** No-op implementation of ILogger */ +@ApiStatus.Internal public final class NoOpLogger implements ILogger { private static final NoOpLogger instance = new NoOpLogger(); diff --git a/sentry/src/main/java/io/sentry/NoOpProfileConverter.java b/sentry/src/main/java/io/sentry/NoOpProfileConverter.java index 5a733a6697c..e96d69d5d78 100644 --- a/sentry/src/main/java/io/sentry/NoOpProfileConverter.java +++ b/sentry/src/main/java/io/sentry/NoOpProfileConverter.java @@ -2,8 +2,10 @@ import io.sentry.protocol.profiling.SentryProfile; import java.io.IOException; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; +@ApiStatus.Internal public final class NoOpProfileConverter implements IProfileConverter { private static final NoOpProfileConverter instance = new NoOpProfileConverter(); diff --git a/sentry/src/main/java/io/sentry/NoOpReplayBreadcrumbConverter.java b/sentry/src/main/java/io/sentry/NoOpReplayBreadcrumbConverter.java index d71a57e440f..1078cc5b589 100644 --- a/sentry/src/main/java/io/sentry/NoOpReplayBreadcrumbConverter.java +++ b/sentry/src/main/java/io/sentry/NoOpReplayBreadcrumbConverter.java @@ -1,9 +1,11 @@ package io.sentry; import io.sentry.rrweb.RRWebEvent; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +@ApiStatus.Internal public final class NoOpReplayBreadcrumbConverter implements ReplayBreadcrumbConverter { private static final NoOpReplayBreadcrumbConverter instance = new NoOpReplayBreadcrumbConverter(); diff --git a/sentry/src/main/java/io/sentry/NoOpReplayController.java b/sentry/src/main/java/io/sentry/NoOpReplayController.java index f8ae1716157..669e42f3116 100644 --- a/sentry/src/main/java/io/sentry/NoOpReplayController.java +++ b/sentry/src/main/java/io/sentry/NoOpReplayController.java @@ -1,9 +1,11 @@ package io.sentry; import io.sentry.protocol.SentryId; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +@ApiStatus.Internal public final class NoOpReplayController implements ReplayController { private static final NoOpReplayController instance = new NoOpReplayController(); diff --git a/sentry/src/main/java/io/sentry/NoOpScope.java b/sentry/src/main/java/io/sentry/NoOpScope.java index 9d2f603c673..e5cbd5f6846 100644 --- a/sentry/src/main/java/io/sentry/NoOpScope.java +++ b/sentry/src/main/java/io/sentry/NoOpScope.java @@ -20,6 +20,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +@ApiStatus.Internal public final class NoOpScope implements IScope { private static final NoOpScope instance = new NoOpScope(); diff --git a/sentry/src/main/java/io/sentry/NoOpScopes.java b/sentry/src/main/java/io/sentry/NoOpScopes.java index 345c74cc0ee..b9c650c42a8 100644 --- a/sentry/src/main/java/io/sentry/NoOpScopes.java +++ b/sentry/src/main/java/io/sentry/NoOpScopes.java @@ -15,6 +15,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +@ApiStatus.Internal public final class NoOpScopes implements IScopes { private static final NoOpScopes instance = new NoOpScopes(); diff --git a/sentry/src/main/java/io/sentry/NoOpScopesLifecycleToken.java b/sentry/src/main/java/io/sentry/NoOpScopesLifecycleToken.java index 4fc589d5b3f..3a1054c7174 100644 --- a/sentry/src/main/java/io/sentry/NoOpScopesLifecycleToken.java +++ b/sentry/src/main/java/io/sentry/NoOpScopesLifecycleToken.java @@ -1,5 +1,8 @@ package io.sentry; +import org.jetbrains.annotations.ApiStatus; + +@ApiStatus.Internal public final class NoOpScopesLifecycleToken implements ISentryLifecycleToken { private static final NoOpScopesLifecycleToken instance = new NoOpScopesLifecycleToken(); diff --git a/sentry/src/main/java/io/sentry/NoOpScopesStorage.java b/sentry/src/main/java/io/sentry/NoOpScopesStorage.java index 9e9064fe3e5..5f1491b50be 100644 --- a/sentry/src/main/java/io/sentry/NoOpScopesStorage.java +++ b/sentry/src/main/java/io/sentry/NoOpScopesStorage.java @@ -1,7 +1,9 @@ package io.sentry; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; +@ApiStatus.Internal public final class NoOpScopesStorage implements IScopesStorage { private static final NoOpScopesStorage instance = new NoOpScopesStorage(); diff --git a/sentry/src/main/java/io/sentry/NoOpSocketTagger.java b/sentry/src/main/java/io/sentry/NoOpSocketTagger.java index 756e80ce2ea..04b527d4444 100644 --- a/sentry/src/main/java/io/sentry/NoOpSocketTagger.java +++ b/sentry/src/main/java/io/sentry/NoOpSocketTagger.java @@ -1,7 +1,9 @@ package io.sentry; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; +@ApiStatus.Internal public final class NoOpSocketTagger implements ISocketTagger { private static final NoOpSocketTagger instance = new NoOpSocketTagger(); diff --git a/sentry/src/main/java/io/sentry/NoOpSpan.java b/sentry/src/main/java/io/sentry/NoOpSpan.java index 6d9b373200f..676c539942d 100644 --- a/sentry/src/main/java/io/sentry/NoOpSpan.java +++ b/sentry/src/main/java/io/sentry/NoOpSpan.java @@ -3,9 +3,11 @@ import io.sentry.protocol.Contexts; import io.sentry.protocol.SentryId; import java.util.List; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +@ApiStatus.Internal public final class NoOpSpan implements ISpan { private static final NoOpSpan instance = new NoOpSpan(); diff --git a/sentry/src/main/java/io/sentry/NoOpTransaction.java b/sentry/src/main/java/io/sentry/NoOpTransaction.java index 1586eed45b7..1f34870c9ad 100644 --- a/sentry/src/main/java/io/sentry/NoOpTransaction.java +++ b/sentry/src/main/java/io/sentry/NoOpTransaction.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +@ApiStatus.Internal public final class NoOpTransaction implements ITransaction { private static final NoOpTransaction instance = new NoOpTransaction(); diff --git a/sentry/src/main/java/io/sentry/NoOpTransactionProfiler.java b/sentry/src/main/java/io/sentry/NoOpTransactionProfiler.java index b0aa1fdc2ea..9b082cdfb50 100644 --- a/sentry/src/main/java/io/sentry/NoOpTransactionProfiler.java +++ b/sentry/src/main/java/io/sentry/NoOpTransactionProfiler.java @@ -1,9 +1,11 @@ package io.sentry; import java.util.List; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +@ApiStatus.Internal public final class NoOpTransactionProfiler implements ITransactionProfiler { private static final NoOpTransactionProfiler instance = new NoOpTransactionProfiler(); diff --git a/sentry/src/main/java/io/sentry/NoopVersionDetector.java b/sentry/src/main/java/io/sentry/NoopVersionDetector.java index 531dc16e318..e4ae7378af1 100644 --- a/sentry/src/main/java/io/sentry/NoopVersionDetector.java +++ b/sentry/src/main/java/io/sentry/NoopVersionDetector.java @@ -1,5 +1,8 @@ package io.sentry; +import org.jetbrains.annotations.ApiStatus; + +@ApiStatus.Internal public final class NoopVersionDetector implements IVersionDetector { private static final NoopVersionDetector instance = new NoopVersionDetector(); diff --git a/sentry/src/main/java/io/sentry/backpressure/NoOpBackpressureMonitor.java b/sentry/src/main/java/io/sentry/backpressure/NoOpBackpressureMonitor.java index 14a0db322c2..cfd0c69704b 100644 --- a/sentry/src/main/java/io/sentry/backpressure/NoOpBackpressureMonitor.java +++ b/sentry/src/main/java/io/sentry/backpressure/NoOpBackpressureMonitor.java @@ -1,5 +1,8 @@ package io.sentry.backpressure; +import org.jetbrains.annotations.ApiStatus; + +@ApiStatus.Internal public final class NoOpBackpressureMonitor implements IBackpressureMonitor { private static final NoOpBackpressureMonitor instance = new NoOpBackpressureMonitor(); diff --git a/sentry/src/main/java/io/sentry/internal/modules/NoOpModulesLoader.java b/sentry/src/main/java/io/sentry/internal/modules/NoOpModulesLoader.java index c0dd1e56f70..3970016a9ce 100644 --- a/sentry/src/main/java/io/sentry/internal/modules/NoOpModulesLoader.java +++ b/sentry/src/main/java/io/sentry/internal/modules/NoOpModulesLoader.java @@ -1,8 +1,10 @@ package io.sentry.internal.modules; import java.util.Map; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; +@ApiStatus.Internal public final class NoOpModulesLoader implements IModulesLoader { private static final NoOpModulesLoader instance = new NoOpModulesLoader(); diff --git a/sentry/src/main/java/io/sentry/logger/NoOpLoggerApi.java b/sentry/src/main/java/io/sentry/logger/NoOpLoggerApi.java index 50edf72f3a4..df4d158808c 100644 --- a/sentry/src/main/java/io/sentry/logger/NoOpLoggerApi.java +++ b/sentry/src/main/java/io/sentry/logger/NoOpLoggerApi.java @@ -2,9 +2,11 @@ import io.sentry.SentryDate; import io.sentry.SentryLogLevel; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +@ApiStatus.Internal public final class NoOpLoggerApi implements ILoggerApi { private static final NoOpLoggerApi instance = new NoOpLoggerApi(); diff --git a/sentry/src/main/java/io/sentry/logger/NoOpLoggerBatchProcessor.java b/sentry/src/main/java/io/sentry/logger/NoOpLoggerBatchProcessor.java index 1cf45cdbd61..68dc4ecf937 100644 --- a/sentry/src/main/java/io/sentry/logger/NoOpLoggerBatchProcessor.java +++ b/sentry/src/main/java/io/sentry/logger/NoOpLoggerBatchProcessor.java @@ -1,8 +1,10 @@ package io.sentry.logger; import io.sentry.SentryLogEvent; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; +@ApiStatus.Internal public final class NoOpLoggerBatchProcessor implements ILoggerBatchProcessor { private static final NoOpLoggerBatchProcessor instance = new NoOpLoggerBatchProcessor(); diff --git a/sentry/src/main/java/io/sentry/metrics/NoOpMetricsApi.java b/sentry/src/main/java/io/sentry/metrics/NoOpMetricsApi.java index 7fe85145d49..badcdd49129 100644 --- a/sentry/src/main/java/io/sentry/metrics/NoOpMetricsApi.java +++ b/sentry/src/main/java/io/sentry/metrics/NoOpMetricsApi.java @@ -1,8 +1,10 @@ package io.sentry.metrics; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +@ApiStatus.Internal public final class NoOpMetricsApi implements IMetricsApi { private static final NoOpMetricsApi instance = new NoOpMetricsApi(); diff --git a/sentry/src/main/java/io/sentry/metrics/NoOpMetricsBatchProcessor.java b/sentry/src/main/java/io/sentry/metrics/NoOpMetricsBatchProcessor.java index 3d963fb061b..021bed5ee32 100644 --- a/sentry/src/main/java/io/sentry/metrics/NoOpMetricsBatchProcessor.java +++ b/sentry/src/main/java/io/sentry/metrics/NoOpMetricsBatchProcessor.java @@ -1,8 +1,10 @@ package io.sentry.metrics; import io.sentry.SentryMetricsEvent; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; +@ApiStatus.Internal public final class NoOpMetricsBatchProcessor implements IMetricsBatchProcessor { private static final NoOpMetricsBatchProcessor instance = new NoOpMetricsBatchProcessor(); diff --git a/sentry/src/main/java/io/sentry/transport/NoOpEnvelopeCache.java b/sentry/src/main/java/io/sentry/transport/NoOpEnvelopeCache.java index 6140394f3ca..8f9d7fbd565 100644 --- a/sentry/src/main/java/io/sentry/transport/NoOpEnvelopeCache.java +++ b/sentry/src/main/java/io/sentry/transport/NoOpEnvelopeCache.java @@ -5,8 +5,10 @@ import io.sentry.cache.IEnvelopeCache; import java.util.Collections; import java.util.Iterator; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; +@ApiStatus.Internal public final class NoOpEnvelopeCache implements IEnvelopeCache { private static final NoOpEnvelopeCache instance = new NoOpEnvelopeCache(); diff --git a/sentry/src/main/java/io/sentry/transport/NoOpTransportGate.java b/sentry/src/main/java/io/sentry/transport/NoOpTransportGate.java index 6b14f5ae3ae..f29dd904ec5 100644 --- a/sentry/src/main/java/io/sentry/transport/NoOpTransportGate.java +++ b/sentry/src/main/java/io/sentry/transport/NoOpTransportGate.java @@ -1,5 +1,8 @@ package io.sentry.transport; +import org.jetbrains.annotations.ApiStatus; + +@ApiStatus.Internal public final class NoOpTransportGate implements ITransportGate { private static final NoOpTransportGate instance = new NoOpTransportGate();