From 434e1db0c66dd3b6770d299b3f17d31a9fdd091a Mon Sep 17 00:00:00 2001 From: Alexander Dinauer Date: Thu, 24 Sep 2026 14:48:59 +0200 Subject: [PATCH] ref(core): [Callback Errors 2] Mark SDK-owned event processors Add an internal marker to SDK event processors across core and integrations. Keep customer processors and the backfilling marker independent so later callback handling can distinguish ownership regardless of registration path. Leave exception handling unchanged in this preparatory change. Refs #6081 Co-Authored-By: Claude --- .../api/sentry-android-core.api | 6 +++--- .../ApplicationExitInfoEventProcessor.java | 4 +++- .../core/DefaultAndroidEventProcessor.java | 3 ++- .../PerformanceAndroidEventProcessor.java | 4 ++-- .../core/ScreenshotEventProcessor.java | 4 ++-- .../core/ViewHierarchyEventProcessor.java | 4 ++-- .../api/sentry-opentelemetry-core.api | 2 +- .../OpenTelemetryLinkErrorEventProcessor.java | 4 ++-- .../api/sentry-opentelemetry-otlp.api | 2 +- .../otlp/OpenTelemetryOtlpEventProcessor.java | 4 ++-- ...tryRequestHttpServletRequestProcessor.java | 4 ++-- ...tryRequestHttpServletRequestProcessor.java | 4 ++-- sentry-spring-7/api/sentry-spring-7.api | 6 +++--- .../spring7/ContextTagsEventProcessor.java | 4 ++-- ...tryRequestHttpServletRequestProcessor.java | 4 ++-- .../io/sentry/spring7/SentrySpringFilter.java | 4 ++-- .../spring7/SpringProfilesEventProcessor.java | 4 ++-- .../api/sentry-spring-jakarta.api | 6 +++--- .../jakarta/ContextTagsEventProcessor.java | 4 ++-- ...tryRequestHttpServletRequestProcessor.java | 4 ++-- .../spring/jakarta/SentrySpringFilter.java | 4 ++-- .../jakarta/SpringProfilesEventProcessor.java | 4 ++-- sentry-spring/api/sentry-spring.api | 6 +++--- .../spring/ContextTagsEventProcessor.java | 4 ++-- ...tryRequestHttpServletRequestProcessor.java | 4 ++-- .../io/sentry/spring/SentrySpringFilter.java | 4 ++-- .../spring/SpringProfilesEventProcessor.java | 4 ++-- sentry/api/sentry.api | 9 +++++--- ...eduplicateMultithreadedEventProcessor.java | 3 ++- ...DuplicateEventDetectionEventProcessor.java | 3 ++- .../java/io/sentry/MainEventProcessor.java | 3 ++- .../sentry/SentryRuntimeEventProcessor.java | 3 ++- .../eventprocessor/SentryEventProcessor.java | 8 +++++++ .../SentryEventProcessorTest.kt | 21 +++++++++++++++++++ 34 files changed, 100 insertions(+), 61 deletions(-) create mode 100644 sentry/src/main/java/io/sentry/internal/eventprocessor/SentryEventProcessor.java create mode 100644 sentry/src/test/java/io/sentry/internal/eventprocessor/SentryEventProcessorTest.kt diff --git a/sentry-android-core/api/sentry-android-core.api b/sentry-android-core/api/sentry-android-core.api index 9a8b9d835db..f8b30d05e4e 100644 --- a/sentry-android-core/api/sentry-android-core.api +++ b/sentry-android-core/api/sentry-android-core.api @@ -233,7 +233,7 @@ public final class io/sentry/android/core/AppState$LifecycleObserver : androidx/ public fun onStop (Landroidx/lifecycle/LifecycleOwner;)V } -public final class io/sentry/android/core/ApplicationExitInfoEventProcessor : io/sentry/BackfillingEventProcessor { +public final class io/sentry/android/core/ApplicationExitInfoEventProcessor : io/sentry/BackfillingEventProcessor, io/sentry/internal/eventprocessor/SentryEventProcessor { public fun (Landroid/content/Context;Lio/sentry/android/core/SentryAndroidOptions;Lio/sentry/android/core/BuildInfoProvider;)V public fun getOrder ()Ljava/lang/Long; public fun process (Lio/sentry/SentryEvent;Lio/sentry/Hint;)Lio/sentry/SentryEvent; @@ -401,7 +401,7 @@ public class io/sentry/android/core/PerfettoProfiler { public fun endAndCollect (Ljava/util/function/Consumer;)V } -public final class io/sentry/android/core/ScreenshotEventProcessor : io/sentry/EventProcessor { +public final class io/sentry/android/core/ScreenshotEventProcessor : io/sentry/internal/eventprocessor/SentryEventProcessor { public fun (Lio/sentry/android/core/SentryAndroidOptions;Lio/sentry/android/core/BuildInfoProvider;Z)V public fun getOrder ()Ljava/lang/Long; public fun process (Lio/sentry/SentryEvent;Lio/sentry/Hint;)Lio/sentry/SentryEvent; @@ -678,7 +678,7 @@ public final class io/sentry/android/core/UserInteractionIntegration : android/a public fun register (Lio/sentry/IScopes;Lio/sentry/SentryOptions;)V } -public final class io/sentry/android/core/ViewHierarchyEventProcessor : io/sentry/EventProcessor { +public final class io/sentry/android/core/ViewHierarchyEventProcessor : io/sentry/internal/eventprocessor/SentryEventProcessor { public fun (Lio/sentry/android/core/SentryAndroidOptions;)V public fun getOrder ()Ljava/lang/Long; public fun process (Lio/sentry/SentryEvent;Lio/sentry/Hint;)Lio/sentry/SentryEvent; diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/ApplicationExitInfoEventProcessor.java b/sentry-android-core/src/main/java/io/sentry/android/core/ApplicationExitInfoEventProcessor.java index 400a3293bcb..483259fa8dd 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/ApplicationExitInfoEventProcessor.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/ApplicationExitInfoEventProcessor.java @@ -52,6 +52,7 @@ import io.sentry.hints.AbnormalExit; import io.sentry.hints.Backfillable; import io.sentry.hints.NativeCrashExit; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.protocol.App; import io.sentry.protocol.Contexts; import io.sentry.protocol.DebugImage; @@ -89,7 +90,8 @@ */ @ApiStatus.Internal @WorkerThread -public final class ApplicationExitInfoEventProcessor implements BackfillingEventProcessor { +public final class ApplicationExitInfoEventProcessor + implements BackfillingEventProcessor, SentryEventProcessor { private final @NotNull Context context; diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/DefaultAndroidEventProcessor.java b/sentry-android-core/src/main/java/io/sentry/android/core/DefaultAndroidEventProcessor.java index 84e953ee69e..c7ea0e27e4f 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/DefaultAndroidEventProcessor.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/DefaultAndroidEventProcessor.java @@ -8,6 +8,7 @@ import io.sentry.android.core.internal.util.AndroidThreadChecker; import io.sentry.android.core.performance.AppStartMetrics; import io.sentry.android.core.performance.TimeSpan; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.protocol.App; import io.sentry.protocol.OperatingSystem; import io.sentry.protocol.SentryException; @@ -32,7 +33,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.TestOnly; -final class DefaultAndroidEventProcessor implements EventProcessor { +final class DefaultAndroidEventProcessor implements SentryEventProcessor { @TestOnly final Context context; diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/PerformanceAndroidEventProcessor.java b/sentry-android-core/src/main/java/io/sentry/android/core/PerformanceAndroidEventProcessor.java index 7f81ea1b738..142bb1f4752 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/PerformanceAndroidEventProcessor.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/PerformanceAndroidEventProcessor.java @@ -7,7 +7,6 @@ import static io.sentry.android.core.ActivityLifecycleIntegration.STANDALONE_APP_START_OP; import static io.sentry.android.core.ActivityLifecycleIntegration.UI_LOAD_OP; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.ISentryLifecycleToken; import io.sentry.MeasurementUnit; @@ -20,6 +19,7 @@ import io.sentry.android.core.internal.util.AndroidThreadChecker; import io.sentry.android.core.performance.AppStartMetrics; import io.sentry.android.core.performance.TimeSpan; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.protocol.App; import io.sentry.protocol.MeasurementValue; import io.sentry.protocol.SentryId; @@ -36,7 +36,7 @@ import org.jetbrains.annotations.Nullable; /** Event Processor responsible for adding Android metrics to transactions */ -final class PerformanceAndroidEventProcessor implements EventProcessor { +final class PerformanceAndroidEventProcessor implements SentryEventProcessor { private static final String APP_METRICS_ORIGIN = "auto.ui"; diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/ScreenshotEventProcessor.java b/sentry-android-core/src/main/java/io/sentry/android/core/ScreenshotEventProcessor.java index 8c4b1feef7c..7783955f42c 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/ScreenshotEventProcessor.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/ScreenshotEventProcessor.java @@ -8,7 +8,6 @@ import android.graphics.Bitmap; import android.view.View; import io.sentry.Attachment; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.SentryEvent; import io.sentry.SentryLevel; @@ -18,6 +17,7 @@ import io.sentry.android.replay.util.MaskRenderer; import io.sentry.android.replay.util.ViewsKt; import io.sentry.android.replay.viewhierarchy.ViewHierarchyNode; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.protocol.SentryTransaction; import io.sentry.util.HintUtils; import io.sentry.util.Objects; @@ -34,7 +34,7 @@ * captured. */ @ApiStatus.Internal -public final class ScreenshotEventProcessor implements EventProcessor { +public final class ScreenshotEventProcessor implements SentryEventProcessor { private final @NotNull SentryAndroidOptions options; private final @NotNull BuildInfoProvider buildInfoProvider; diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/ViewHierarchyEventProcessor.java b/sentry-android-core/src/main/java/io/sentry/android/core/ViewHierarchyEventProcessor.java index 6d21edb3d0c..77e3ad917ea 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/ViewHierarchyEventProcessor.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/ViewHierarchyEventProcessor.java @@ -7,7 +7,6 @@ import android.view.ViewGroup; import android.view.Window; import io.sentry.Attachment; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.ILogger; import io.sentry.ISerializer; @@ -18,6 +17,7 @@ import io.sentry.android.core.internal.util.AndroidThreadChecker; import io.sentry.android.core.internal.util.ClassUtil; import io.sentry.android.core.internal.util.Debouncer; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.internal.viewhierarchy.ViewHierarchyExporter; import io.sentry.protocol.SentryTransaction; import io.sentry.protocol.ViewHierarchy; @@ -37,7 +37,7 @@ /** ViewHierarchyEventProcessor responsible for taking a snapshot of the current view hierarchy. */ @ApiStatus.Internal -public final class ViewHierarchyEventProcessor implements EventProcessor { +public final class ViewHierarchyEventProcessor implements SentryEventProcessor { private final @NotNull SentryAndroidOptions options; private final @NotNull Debouncer debouncer; diff --git a/sentry-opentelemetry/sentry-opentelemetry-core/api/sentry-opentelemetry-core.api b/sentry-opentelemetry/sentry-opentelemetry-core/api/sentry-opentelemetry-core.api index 3ed25d1a9cf..b6a5ab2de48 100644 --- a/sentry-opentelemetry/sentry-opentelemetry-core/api/sentry-opentelemetry-core.api +++ b/sentry-opentelemetry/sentry-opentelemetry-core/api/sentry-opentelemetry-core.api @@ -4,7 +4,7 @@ public final class io/sentry/opentelemetry/OpenTelemetryAttributesExtractor { public fun extractUrl (Lio/opentelemetry/api/common/Attributes;Lio/sentry/SentryOptions;)Ljava/lang/String; } -public final class io/sentry/opentelemetry/OpenTelemetryLinkErrorEventProcessor : io/sentry/EventProcessor { +public final class io/sentry/opentelemetry/OpenTelemetryLinkErrorEventProcessor : io/sentry/internal/eventprocessor/SentryEventProcessor { public fun ()V public fun getOrder ()Ljava/lang/Long; public fun process (Lio/sentry/SentryEvent;Lio/sentry/Hint;)Lio/sentry/SentryEvent; diff --git a/sentry-opentelemetry/sentry-opentelemetry-core/src/main/java/io/sentry/opentelemetry/OpenTelemetryLinkErrorEventProcessor.java b/sentry-opentelemetry/sentry-opentelemetry-core/src/main/java/io/sentry/opentelemetry/OpenTelemetryLinkErrorEventProcessor.java index cf1e530cd9e..dde593fa755 100644 --- a/sentry-opentelemetry/sentry-opentelemetry-core/src/main/java/io/sentry/opentelemetry/OpenTelemetryLinkErrorEventProcessor.java +++ b/sentry-opentelemetry/sentry-opentelemetry-core/src/main/java/io/sentry/opentelemetry/OpenTelemetryLinkErrorEventProcessor.java @@ -3,7 +3,6 @@ import io.opentelemetry.api.trace.Span; import io.opentelemetry.api.trace.SpanId; import io.opentelemetry.api.trace.TraceId; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.IScopes; import io.sentry.ISpan; @@ -12,6 +11,7 @@ import io.sentry.SentryEvent; import io.sentry.SentryLevel; import io.sentry.SpanContext; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.protocol.SentryId; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -21,7 +21,7 @@ * @deprecated this is no longer needed for the latest version of our OpenTelemetry integration. */ @Deprecated -public final class OpenTelemetryLinkErrorEventProcessor implements EventProcessor { +public final class OpenTelemetryLinkErrorEventProcessor implements SentryEventProcessor { private final @NotNull IScopes scopes; diff --git a/sentry-opentelemetry/sentry-opentelemetry-otlp/api/sentry-opentelemetry-otlp.api b/sentry-opentelemetry/sentry-opentelemetry-otlp/api/sentry-opentelemetry-otlp.api index 56e80e60ae6..07af57c2e4e 100644 --- a/sentry-opentelemetry/sentry-opentelemetry-otlp/api/sentry-opentelemetry-otlp.api +++ b/sentry-opentelemetry/sentry-opentelemetry-otlp/api/sentry-opentelemetry-otlp.api @@ -1,4 +1,4 @@ -public final class io/sentry/opentelemetry/otlp/OpenTelemetryOtlpEventProcessor : io/sentry/EventProcessor { +public final class io/sentry/opentelemetry/otlp/OpenTelemetryOtlpEventProcessor : io/sentry/internal/eventprocessor/SentryEventProcessor { public fun ()V public fun getOrder ()Ljava/lang/Long; public fun process (Lio/sentry/SentryEvent;Lio/sentry/Hint;)Lio/sentry/SentryEvent; diff --git a/sentry-opentelemetry/sentry-opentelemetry-otlp/src/main/java/io/sentry/opentelemetry/otlp/OpenTelemetryOtlpEventProcessor.java b/sentry-opentelemetry/sentry-opentelemetry-otlp/src/main/java/io/sentry/opentelemetry/otlp/OpenTelemetryOtlpEventProcessor.java index ad8b672c7de..0b564bc16d0 100644 --- a/sentry-opentelemetry/sentry-opentelemetry-otlp/src/main/java/io/sentry/opentelemetry/otlp/OpenTelemetryOtlpEventProcessor.java +++ b/sentry-opentelemetry/sentry-opentelemetry-otlp/src/main/java/io/sentry/opentelemetry/otlp/OpenTelemetryOtlpEventProcessor.java @@ -3,7 +3,6 @@ import io.opentelemetry.api.trace.Span; import io.opentelemetry.api.trace.SpanId; import io.opentelemetry.api.trace.TraceId; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.IScopes; import io.sentry.ScopesAdapter; @@ -12,12 +11,13 @@ import io.sentry.SentryLogEvent; import io.sentry.SentryMetricsEvent; import io.sentry.SpanContext; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.protocol.SentryId; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.TestOnly; -public final class OpenTelemetryOtlpEventProcessor implements EventProcessor { +public final class OpenTelemetryOtlpEventProcessor implements SentryEventProcessor { private final @NotNull IScopes scopes; diff --git a/sentry-servlet-jakarta/src/main/java/io/sentry/servlet/jakarta/SentryRequestHttpServletRequestProcessor.java b/sentry-servlet-jakarta/src/main/java/io/sentry/servlet/jakarta/SentryRequestHttpServletRequestProcessor.java index 1904d2e5cf0..0dea8ee2bfa 100644 --- a/sentry-servlet-jakarta/src/main/java/io/sentry/servlet/jakarta/SentryRequestHttpServletRequestProcessor.java +++ b/sentry-servlet-jakarta/src/main/java/io/sentry/servlet/jakarta/SentryRequestHttpServletRequestProcessor.java @@ -1,9 +1,9 @@ package io.sentry.servlet.jakarta; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.SentryEvent; import io.sentry.SentryOptions; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.protocol.Request; import io.sentry.util.HttpUtils; import io.sentry.util.Objects; @@ -18,7 +18,7 @@ import org.jetbrains.annotations.Nullable; /** Attaches information about HTTP request to {@link SentryEvent}. */ -final class SentryRequestHttpServletRequestProcessor implements EventProcessor { +final class SentryRequestHttpServletRequestProcessor implements SentryEventProcessor { private final @NotNull HttpServletRequest httpRequest; private final @NotNull SentryOptions options; diff --git a/sentry-servlet/src/main/java/io/sentry/servlet/SentryRequestHttpServletRequestProcessor.java b/sentry-servlet/src/main/java/io/sentry/servlet/SentryRequestHttpServletRequestProcessor.java index 789ed1b766f..d8a2fcd808c 100644 --- a/sentry-servlet/src/main/java/io/sentry/servlet/SentryRequestHttpServletRequestProcessor.java +++ b/sentry-servlet/src/main/java/io/sentry/servlet/SentryRequestHttpServletRequestProcessor.java @@ -1,9 +1,9 @@ package io.sentry.servlet; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.SentryEvent; import io.sentry.SentryOptions; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.protocol.Request; import io.sentry.util.HttpUtils; import io.sentry.util.Objects; @@ -18,7 +18,7 @@ import org.jetbrains.annotations.Nullable; /** Attaches information about HTTP request to {@link SentryEvent}. */ -final class SentryRequestHttpServletRequestProcessor implements EventProcessor { +final class SentryRequestHttpServletRequestProcessor implements SentryEventProcessor { private final @NotNull HttpServletRequest httpRequest; private final @NotNull SentryOptions options; diff --git a/sentry-spring-7/api/sentry-spring-7.api b/sentry-spring-7/api/sentry-spring-7.api index c9250b550fd..3b2872afc67 100644 --- a/sentry-spring-7/api/sentry-spring-7.api +++ b/sentry-spring-7/api/sentry-spring-7.api @@ -3,7 +3,7 @@ public final class io/sentry/spring7/BuildConfig { public static final field VERSION_NAME Ljava/lang/String; } -public final class io/sentry/spring7/ContextTagsEventProcessor : io/sentry/EventProcessor { +public final class io/sentry/spring7/ContextTagsEventProcessor : io/sentry/internal/eventprocessor/SentryEventProcessor { public fun (Lio/sentry/SentryOptions;)V public fun getOrder ()Ljava/lang/Long; public fun process (Lio/sentry/SentryEvent;Lio/sentry/Hint;)Lio/sentry/SentryEvent; @@ -48,7 +48,7 @@ public class io/sentry/spring7/SentryProfilerConfiguration { public fun sentryOpenTelemetryProfilerConverterConfiguration ()Lio/sentry/IProfileConverter; } -public class io/sentry/spring7/SentryRequestHttpServletRequestProcessor : io/sentry/EventProcessor { +public class io/sentry/spring7/SentryRequestHttpServletRequestProcessor : io/sentry/internal/eventprocessor/SentryEventProcessor { public fun (Lio/sentry/spring7/tracing/TransactionNameProvider;Ljakarta/servlet/http/HttpServletRequest;)V public fun getOrder ()Ljava/lang/Long; public fun process (Lio/sentry/SentryEvent;Lio/sentry/Hint;)Lio/sentry/SentryEvent; @@ -92,7 +92,7 @@ public class io/sentry/spring7/SentryWebConfiguration { public fun httpServletRequestSentryUserProvider (Lio/sentry/SentryOptions;)Lio/sentry/spring7/HttpServletRequestSentryUserProvider; } -public final class io/sentry/spring7/SpringProfilesEventProcessor : io/sentry/EventProcessor { +public final class io/sentry/spring7/SpringProfilesEventProcessor : io/sentry/internal/eventprocessor/SentryEventProcessor { public fun (Lorg/springframework/core/env/Environment;)V public fun process (Lio/sentry/SentryEvent;Lio/sentry/Hint;)Lio/sentry/SentryEvent; public fun process (Lio/sentry/SentryReplayEvent;Lio/sentry/Hint;)Lio/sentry/SentryReplayEvent; diff --git a/sentry-spring-7/src/main/java/io/sentry/spring7/ContextTagsEventProcessor.java b/sentry-spring-7/src/main/java/io/sentry/spring7/ContextTagsEventProcessor.java index 89fdef8d1b2..812db92d644 100644 --- a/sentry-spring-7/src/main/java/io/sentry/spring7/ContextTagsEventProcessor.java +++ b/sentry-spring-7/src/main/java/io/sentry/spring7/ContextTagsEventProcessor.java @@ -1,9 +1,9 @@ package io.sentry.spring7; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.SentryEvent; import io.sentry.SentryOptions; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.util.CollectionUtils; import java.util.Map; import org.jetbrains.annotations.NotNull; @@ -14,7 +14,7 @@ * Attaches context tags defined in {@link SentryOptions#getContextTags()} from {@link MDC} to * {@link SentryEvent#getTags()}. */ -public final class ContextTagsEventProcessor implements EventProcessor { +public final class ContextTagsEventProcessor implements SentryEventProcessor { private final SentryOptions options; public ContextTagsEventProcessor(final @NotNull SentryOptions options) { diff --git a/sentry-spring-7/src/main/java/io/sentry/spring7/SentryRequestHttpServletRequestProcessor.java b/sentry-spring-7/src/main/java/io/sentry/spring7/SentryRequestHttpServletRequestProcessor.java index 2412083812d..680f560fffc 100644 --- a/sentry-spring-7/src/main/java/io/sentry/spring7/SentryRequestHttpServletRequestProcessor.java +++ b/sentry-spring-7/src/main/java/io/sentry/spring7/SentryRequestHttpServletRequestProcessor.java @@ -1,9 +1,9 @@ package io.sentry.spring7; import com.jakewharton.nopen.annotation.Open; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.SentryEvent; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.spring7.tracing.TransactionNameProvider; import io.sentry.util.Objects; import jakarta.servlet.http.HttpServletRequest; @@ -12,7 +12,7 @@ /** Attaches transaction name from the HTTP request to {@link SentryEvent}. */ @Open -public class SentryRequestHttpServletRequestProcessor implements EventProcessor { +public class SentryRequestHttpServletRequestProcessor implements SentryEventProcessor { private final @NotNull TransactionNameProvider transactionNameProvider; private final @NotNull HttpServletRequest request; diff --git a/sentry-spring-7/src/main/java/io/sentry/spring7/SentrySpringFilter.java b/sentry-spring-7/src/main/java/io/sentry/spring7/SentrySpringFilter.java index bf2c431a179..de766504aff 100644 --- a/sentry-spring-7/src/main/java/io/sentry/spring7/SentrySpringFilter.java +++ b/sentry-spring-7/src/main/java/io/sentry/spring7/SentrySpringFilter.java @@ -6,7 +6,6 @@ import com.jakewharton.nopen.annotation.Open; import io.sentry.Breadcrumb; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.IScopes; import io.sentry.ISentryLifecycleToken; @@ -15,6 +14,7 @@ import io.sentry.SentryLevel; import io.sentry.SentryOptions; import io.sentry.SentryOptions.RequestSize; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.spring7.tracing.SpringMvcTransactionNameProvider; import io.sentry.spring7.tracing.TransactionNameProvider; import io.sentry.util.Objects; @@ -140,7 +140,7 @@ private static boolean shouldCacheMimeType(String contentType) { } } - static final class RequestBodyExtractingEventProcessor implements EventProcessor { + static final class RequestBodyExtractingEventProcessor implements SentryEventProcessor { private final @NotNull RequestPayloadExtractor requestPayloadExtractor = new RequestPayloadExtractor(); private final @NotNull HttpServletRequest request; diff --git a/sentry-spring-7/src/main/java/io/sentry/spring7/SpringProfilesEventProcessor.java b/sentry-spring-7/src/main/java/io/sentry/spring7/SpringProfilesEventProcessor.java index 100bdd6a38b..d22d15fe767 100644 --- a/sentry-spring-7/src/main/java/io/sentry/spring7/SpringProfilesEventProcessor.java +++ b/sentry-spring-7/src/main/java/io/sentry/spring7/SpringProfilesEventProcessor.java @@ -1,10 +1,10 @@ package io.sentry.spring7; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.SentryBaseEvent; import io.sentry.SentryEvent; import io.sentry.SentryReplayEvent; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.protocol.SentryTransaction; import io.sentry.protocol.Spring; import org.jetbrains.annotations.NotNull; @@ -15,7 +15,7 @@ * Attaches the list of active Spring profiles (an empty list if only the default profile is active) * to the {@link io.sentry.TraceContext} associated with the event. */ -public final class SpringProfilesEventProcessor implements EventProcessor { +public final class SpringProfilesEventProcessor implements SentryEventProcessor { private final @NotNull Environment environment; @Override diff --git a/sentry-spring-jakarta/api/sentry-spring-jakarta.api b/sentry-spring-jakarta/api/sentry-spring-jakarta.api index 24b9af7e14b..be94039b754 100644 --- a/sentry-spring-jakarta/api/sentry-spring-jakarta.api +++ b/sentry-spring-jakarta/api/sentry-spring-jakarta.api @@ -3,7 +3,7 @@ public final class io/sentry/spring/jakarta/BuildConfig { public static final field VERSION_NAME Ljava/lang/String; } -public final class io/sentry/spring/jakarta/ContextTagsEventProcessor : io/sentry/EventProcessor { +public final class io/sentry/spring/jakarta/ContextTagsEventProcessor : io/sentry/internal/eventprocessor/SentryEventProcessor { public fun (Lio/sentry/SentryOptions;)V public fun getOrder ()Ljava/lang/Long; public fun process (Lio/sentry/SentryEvent;Lio/sentry/Hint;)Lio/sentry/SentryEvent; @@ -48,7 +48,7 @@ public class io/sentry/spring/jakarta/SentryProfilerConfiguration { public fun sentryOpenTelemetryProfilerConverterConfiguration ()Lio/sentry/IProfileConverter; } -public class io/sentry/spring/jakarta/SentryRequestHttpServletRequestProcessor : io/sentry/EventProcessor { +public class io/sentry/spring/jakarta/SentryRequestHttpServletRequestProcessor : io/sentry/internal/eventprocessor/SentryEventProcessor { public fun (Lio/sentry/spring/jakarta/tracing/TransactionNameProvider;Ljakarta/servlet/http/HttpServletRequest;)V public fun getOrder ()Ljava/lang/Long; public fun process (Lio/sentry/SentryEvent;Lio/sentry/Hint;)Lio/sentry/SentryEvent; @@ -92,7 +92,7 @@ public class io/sentry/spring/jakarta/SentryWebConfiguration { public fun httpServletRequestSentryUserProvider (Lio/sentry/SentryOptions;)Lio/sentry/spring/jakarta/HttpServletRequestSentryUserProvider; } -public final class io/sentry/spring/jakarta/SpringProfilesEventProcessor : io/sentry/EventProcessor { +public final class io/sentry/spring/jakarta/SpringProfilesEventProcessor : io/sentry/internal/eventprocessor/SentryEventProcessor { public fun (Lorg/springframework/core/env/Environment;)V public fun process (Lio/sentry/SentryEvent;Lio/sentry/Hint;)Lio/sentry/SentryEvent; public fun process (Lio/sentry/SentryReplayEvent;Lio/sentry/Hint;)Lio/sentry/SentryReplayEvent; diff --git a/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/ContextTagsEventProcessor.java b/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/ContextTagsEventProcessor.java index 94f49d83190..dd5b3684fa4 100644 --- a/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/ContextTagsEventProcessor.java +++ b/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/ContextTagsEventProcessor.java @@ -1,9 +1,9 @@ package io.sentry.spring.jakarta; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.SentryEvent; import io.sentry.SentryOptions; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.util.CollectionUtils; import java.util.Map; import org.jetbrains.annotations.NotNull; @@ -14,7 +14,7 @@ * Attaches context tags defined in {@link SentryOptions#getContextTags()} from {@link MDC} to * {@link SentryEvent#getTags()}. */ -public final class ContextTagsEventProcessor implements EventProcessor { +public final class ContextTagsEventProcessor implements SentryEventProcessor { private final SentryOptions options; public ContextTagsEventProcessor(final @NotNull SentryOptions options) { diff --git a/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/SentryRequestHttpServletRequestProcessor.java b/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/SentryRequestHttpServletRequestProcessor.java index 91b27ddeac7..b18b5a914e7 100644 --- a/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/SentryRequestHttpServletRequestProcessor.java +++ b/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/SentryRequestHttpServletRequestProcessor.java @@ -1,9 +1,9 @@ package io.sentry.spring.jakarta; import com.jakewharton.nopen.annotation.Open; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.SentryEvent; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.spring.jakarta.tracing.TransactionNameProvider; import io.sentry.util.Objects; import jakarta.servlet.http.HttpServletRequest; @@ -12,7 +12,7 @@ /** Attaches transaction name from the HTTP request to {@link SentryEvent}. */ @Open -public class SentryRequestHttpServletRequestProcessor implements EventProcessor { +public class SentryRequestHttpServletRequestProcessor implements SentryEventProcessor { private final @NotNull TransactionNameProvider transactionNameProvider; private final @NotNull HttpServletRequest request; diff --git a/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/SentrySpringFilter.java b/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/SentrySpringFilter.java index c549223e559..3ce21ed4ce5 100644 --- a/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/SentrySpringFilter.java +++ b/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/SentrySpringFilter.java @@ -6,7 +6,6 @@ import com.jakewharton.nopen.annotation.Open; import io.sentry.Breadcrumb; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.IScopes; import io.sentry.ISentryLifecycleToken; @@ -15,6 +14,7 @@ import io.sentry.SentryLevel; import io.sentry.SentryOptions; import io.sentry.SentryOptions.RequestSize; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.spring.jakarta.tracing.SpringMvcTransactionNameProvider; import io.sentry.spring.jakarta.tracing.TransactionNameProvider; import io.sentry.util.Objects; @@ -140,7 +140,7 @@ private static boolean shouldCacheMimeType(String contentType) { } } - static final class RequestBodyExtractingEventProcessor implements EventProcessor { + static final class RequestBodyExtractingEventProcessor implements SentryEventProcessor { private final @NotNull RequestPayloadExtractor requestPayloadExtractor = new RequestPayloadExtractor(); private final @NotNull HttpServletRequest request; diff --git a/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/SpringProfilesEventProcessor.java b/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/SpringProfilesEventProcessor.java index 48957e88507..48ea9910f32 100644 --- a/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/SpringProfilesEventProcessor.java +++ b/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/SpringProfilesEventProcessor.java @@ -1,10 +1,10 @@ package io.sentry.spring.jakarta; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.SentryBaseEvent; import io.sentry.SentryEvent; import io.sentry.SentryReplayEvent; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.protocol.SentryTransaction; import io.sentry.protocol.Spring; import org.jetbrains.annotations.NotNull; @@ -15,7 +15,7 @@ * Attaches the list of active Spring profiles (an empty list if only the default profile is active) * to the {@link io.sentry.TraceContext} associated with the event. */ -public final class SpringProfilesEventProcessor implements EventProcessor { +public final class SpringProfilesEventProcessor implements SentryEventProcessor { private final @NotNull Environment environment; @Override diff --git a/sentry-spring/api/sentry-spring.api b/sentry-spring/api/sentry-spring.api index 4e1bea84288..7c8ff495f3b 100644 --- a/sentry-spring/api/sentry-spring.api +++ b/sentry-spring/api/sentry-spring.api @@ -3,7 +3,7 @@ public final class io/sentry/spring/BuildConfig { public static final field VERSION_NAME Ljava/lang/String; } -public final class io/sentry/spring/ContextTagsEventProcessor : io/sentry/EventProcessor { +public final class io/sentry/spring/ContextTagsEventProcessor : io/sentry/internal/eventprocessor/SentryEventProcessor { public fun (Lio/sentry/SentryOptions;)V public fun getOrder ()Ljava/lang/Long; public fun process (Lio/sentry/SentryEvent;Lio/sentry/Hint;)Lio/sentry/SentryEvent; @@ -48,7 +48,7 @@ public class io/sentry/spring/SentryProfilerConfiguration { public fun sentryOpenTelemetryProfilerConverterConfiguration ()Lio/sentry/IProfileConverter; } -public class io/sentry/spring/SentryRequestHttpServletRequestProcessor : io/sentry/EventProcessor { +public class io/sentry/spring/SentryRequestHttpServletRequestProcessor : io/sentry/internal/eventprocessor/SentryEventProcessor { public fun (Lio/sentry/spring/tracing/TransactionNameProvider;Ljavax/servlet/http/HttpServletRequest;)V public fun getOrder ()Ljava/lang/Long; public fun process (Lio/sentry/SentryEvent;Lio/sentry/Hint;)Lio/sentry/SentryEvent; @@ -92,7 +92,7 @@ public class io/sentry/spring/SentryWebConfiguration { public fun httpServletRequestSentryUserProvider (Lio/sentry/SentryOptions;)Lio/sentry/spring/HttpServletRequestSentryUserProvider; } -public final class io/sentry/spring/SpringProfilesEventProcessor : io/sentry/EventProcessor { +public final class io/sentry/spring/SpringProfilesEventProcessor : io/sentry/internal/eventprocessor/SentryEventProcessor { public fun (Lorg/springframework/core/env/Environment;)V public fun process (Lio/sentry/SentryEvent;Lio/sentry/Hint;)Lio/sentry/SentryEvent; public fun process (Lio/sentry/SentryReplayEvent;Lio/sentry/Hint;)Lio/sentry/SentryReplayEvent; diff --git a/sentry-spring/src/main/java/io/sentry/spring/ContextTagsEventProcessor.java b/sentry-spring/src/main/java/io/sentry/spring/ContextTagsEventProcessor.java index 41ff04d0c49..52685b0a700 100644 --- a/sentry-spring/src/main/java/io/sentry/spring/ContextTagsEventProcessor.java +++ b/sentry-spring/src/main/java/io/sentry/spring/ContextTagsEventProcessor.java @@ -1,9 +1,9 @@ package io.sentry.spring; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.SentryEvent; import io.sentry.SentryOptions; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.util.CollectionUtils; import java.util.Map; import org.jetbrains.annotations.NotNull; @@ -14,7 +14,7 @@ * Attaches context tags defined in {@link SentryOptions#getContextTags()} from {@link MDC} to * {@link SentryEvent#getTags()}. */ -public final class ContextTagsEventProcessor implements EventProcessor { +public final class ContextTagsEventProcessor implements SentryEventProcessor { private final SentryOptions options; public ContextTagsEventProcessor(final @NotNull SentryOptions options) { diff --git a/sentry-spring/src/main/java/io/sentry/spring/SentryRequestHttpServletRequestProcessor.java b/sentry-spring/src/main/java/io/sentry/spring/SentryRequestHttpServletRequestProcessor.java index 426571ba6e1..829e39b8508 100644 --- a/sentry-spring/src/main/java/io/sentry/spring/SentryRequestHttpServletRequestProcessor.java +++ b/sentry-spring/src/main/java/io/sentry/spring/SentryRequestHttpServletRequestProcessor.java @@ -1,9 +1,9 @@ package io.sentry.spring; import com.jakewharton.nopen.annotation.Open; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.SentryEvent; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.spring.tracing.TransactionNameProvider; import io.sentry.util.Objects; import javax.servlet.http.HttpServletRequest; @@ -12,7 +12,7 @@ /** Attaches transaction name from the HTTP request to {@link SentryEvent}. */ @Open -public class SentryRequestHttpServletRequestProcessor implements EventProcessor { +public class SentryRequestHttpServletRequestProcessor implements SentryEventProcessor { private final @NotNull TransactionNameProvider transactionNameProvider; private final @NotNull HttpServletRequest request; diff --git a/sentry-spring/src/main/java/io/sentry/spring/SentrySpringFilter.java b/sentry-spring/src/main/java/io/sentry/spring/SentrySpringFilter.java index 3fe8ab9e13f..be893b67a5a 100644 --- a/sentry-spring/src/main/java/io/sentry/spring/SentrySpringFilter.java +++ b/sentry-spring/src/main/java/io/sentry/spring/SentrySpringFilter.java @@ -6,7 +6,6 @@ import com.jakewharton.nopen.annotation.Open; import io.sentry.Breadcrumb; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.IScopes; import io.sentry.ISentryLifecycleToken; @@ -15,6 +14,7 @@ import io.sentry.SentryLevel; import io.sentry.SentryOptions; import io.sentry.SentryOptions.RequestSize; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.spring.tracing.SpringMvcTransactionNameProvider; import io.sentry.spring.tracing.TransactionNameProvider; import io.sentry.util.Objects; @@ -140,7 +140,7 @@ private static boolean shouldCacheMimeType(String contentType) { } } - static final class RequestBodyExtractingEventProcessor implements EventProcessor { + static final class RequestBodyExtractingEventProcessor implements SentryEventProcessor { private final @NotNull RequestPayloadExtractor requestPayloadExtractor = new RequestPayloadExtractor(); private final @NotNull HttpServletRequest request; diff --git a/sentry-spring/src/main/java/io/sentry/spring/SpringProfilesEventProcessor.java b/sentry-spring/src/main/java/io/sentry/spring/SpringProfilesEventProcessor.java index 30b6483fd31..c233a7e9824 100644 --- a/sentry-spring/src/main/java/io/sentry/spring/SpringProfilesEventProcessor.java +++ b/sentry-spring/src/main/java/io/sentry/spring/SpringProfilesEventProcessor.java @@ -1,10 +1,10 @@ package io.sentry.spring; -import io.sentry.EventProcessor; import io.sentry.Hint; import io.sentry.SentryBaseEvent; import io.sentry.SentryEvent; import io.sentry.SentryReplayEvent; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.protocol.SentryTransaction; import io.sentry.protocol.Spring; import org.jetbrains.annotations.NotNull; @@ -15,7 +15,7 @@ * Attaches the list of active Spring profiles (an empty list if only the default profile is active) * to the {@link io.sentry.TraceContext} associated with the event. */ -public final class SpringProfilesEventProcessor implements EventProcessor { +public final class SpringProfilesEventProcessor implements SentryEventProcessor { private final @NotNull Environment environment; @Override diff --git a/sentry/api/sentry.api b/sentry/api/sentry.api index c3dcbc730b7..de6b48f9db3 100644 --- a/sentry/api/sentry.api +++ b/sentry/api/sentry.api @@ -461,7 +461,7 @@ public final class io/sentry/DateUtils { public static fun toUtilDateNotNull (Lio/sentry/SentryDate;)Ljava/util/Date; } -public final class io/sentry/DeduplicateMultithreadedEventProcessor : io/sentry/EventProcessor { +public final class io/sentry/DeduplicateMultithreadedEventProcessor : io/sentry/internal/eventprocessor/SentryEventProcessor { public fun (Lio/sentry/SentryOptions;)V public fun getOrder ()Ljava/lang/Long; public fun process (Lio/sentry/SentryEvent;Lio/sentry/Hint;)Lio/sentry/SentryEvent; @@ -511,7 +511,7 @@ public final class io/sentry/DsnUtil { public static fun urlContainsDsnHost (Lio/sentry/SentryOptions;Ljava/lang/String;)Z } -public final class io/sentry/DuplicateEventDetectionEventProcessor : io/sentry/EventProcessor { +public final class io/sentry/DuplicateEventDetectionEventProcessor : io/sentry/internal/eventprocessor/SentryEventProcessor { public fun (Lio/sentry/SentryOptions;)V public fun getOrder ()Ljava/lang/Long; public fun process (Lio/sentry/SentryEvent;Lio/sentry/Hint;)Lio/sentry/SentryEvent; @@ -1483,7 +1483,7 @@ public final class io/sentry/KeyValueCollectionBehavior$Mode : java/lang/Enum { public static fun values ()[Lio/sentry/KeyValueCollectionBehavior$Mode; } -public final class io/sentry/MainEventProcessor : io/sentry/EventProcessor { +public final class io/sentry/MainEventProcessor : io/sentry/internal/eventprocessor/SentryEventProcessor { public fun (Lio/sentry/SentryOptions;)V public fun getOrder ()Ljava/lang/Long; public fun process (Lio/sentry/SentryEvent;Lio/sentry/Hint;)Lio/sentry/SentryEvent; @@ -5447,6 +5447,9 @@ public final class io/sentry/internal/eventprocessor/EventProcessorAndOrder : ja public fun getOrder ()Ljava/lang/Long; } +public abstract interface class io/sentry/internal/eventprocessor/SentryEventProcessor : io/sentry/EventProcessor { +} + public abstract interface class io/sentry/internal/gestures/GestureTargetLocator { public abstract fun locate (Ljava/lang/Object;FFLio/sentry/internal/gestures/UiElement$Type;)Lio/sentry/internal/gestures/UiElement; } diff --git a/sentry/src/main/java/io/sentry/DeduplicateMultithreadedEventProcessor.java b/sentry/src/main/java/io/sentry/DeduplicateMultithreadedEventProcessor.java index b5869a63796..7053259c61c 100644 --- a/sentry/src/main/java/io/sentry/DeduplicateMultithreadedEventProcessor.java +++ b/sentry/src/main/java/io/sentry/DeduplicateMultithreadedEventProcessor.java @@ -1,6 +1,7 @@ package io.sentry; import io.sentry.hints.EventDropReason; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.protocol.SentryException; import io.sentry.util.HintUtils; import java.util.Collections; @@ -14,7 +15,7 @@ * multiple threads. This can be the case for OutOfMemory errors or CursorWindowAllocationException, * basically any error related to allocating memory when it's low. */ -public final class DeduplicateMultithreadedEventProcessor implements EventProcessor { +public final class DeduplicateMultithreadedEventProcessor implements SentryEventProcessor { private final @NotNull Map processedEvents = Collections.synchronizedMap(new HashMap<>()); diff --git a/sentry/src/main/java/io/sentry/DuplicateEventDetectionEventProcessor.java b/sentry/src/main/java/io/sentry/DuplicateEventDetectionEventProcessor.java index fc178d789f3..a184a21cfb8 100644 --- a/sentry/src/main/java/io/sentry/DuplicateEventDetectionEventProcessor.java +++ b/sentry/src/main/java/io/sentry/DuplicateEventDetectionEventProcessor.java @@ -1,5 +1,6 @@ package io.sentry; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -9,7 +10,7 @@ import org.jetbrains.annotations.Nullable; /** Deduplicates events containing throwable that has been already processed. */ -public final class DuplicateEventDetectionEventProcessor implements EventProcessor { +public final class DuplicateEventDetectionEventProcessor implements SentryEventProcessor { private final @NotNull Map capturedObjects = Collections.synchronizedMap(new WeakHashMap<>()); private final @NotNull SentryOptions options; diff --git a/sentry/src/main/java/io/sentry/MainEventProcessor.java b/sentry/src/main/java/io/sentry/MainEventProcessor.java index 79b45a30c65..25ec4b6966a 100644 --- a/sentry/src/main/java/io/sentry/MainEventProcessor.java +++ b/sentry/src/main/java/io/sentry/MainEventProcessor.java @@ -2,6 +2,7 @@ import io.sentry.hints.AbnormalExit; import io.sentry.hints.Cached; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.protocol.DebugMeta; import io.sentry.protocol.SdkVersion; import io.sentry.protocol.SentryException; @@ -16,7 +17,7 @@ import org.jetbrains.annotations.Nullable; @ApiStatus.Internal -public final class MainEventProcessor implements EventProcessor { +public final class MainEventProcessor implements SentryEventProcessor { private final @NotNull SentryOptions options; private final @NotNull SentryThreadFactory sentryThreadFactory; diff --git a/sentry/src/main/java/io/sentry/SentryRuntimeEventProcessor.java b/sentry/src/main/java/io/sentry/SentryRuntimeEventProcessor.java index ca19a9ca74d..013cb7ac2b1 100644 --- a/sentry/src/main/java/io/sentry/SentryRuntimeEventProcessor.java +++ b/sentry/src/main/java/io/sentry/SentryRuntimeEventProcessor.java @@ -1,12 +1,13 @@ package io.sentry; +import io.sentry.internal.eventprocessor.SentryEventProcessor; import io.sentry.protocol.SentryRuntime; import io.sentry.protocol.SentryTransaction; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** Attaches Java vendor and version to events and transactions. */ -final class SentryRuntimeEventProcessor implements EventProcessor { +final class SentryRuntimeEventProcessor implements SentryEventProcessor { private final @Nullable String javaVersion; private final @Nullable String javaVendor; diff --git a/sentry/src/main/java/io/sentry/internal/eventprocessor/SentryEventProcessor.java b/sentry/src/main/java/io/sentry/internal/eventprocessor/SentryEventProcessor.java new file mode 100644 index 00000000000..160dfe0fd78 --- /dev/null +++ b/sentry/src/main/java/io/sentry/internal/eventprocessor/SentryEventProcessor.java @@ -0,0 +1,8 @@ +package io.sentry.internal.eventprocessor; + +import io.sentry.EventProcessor; +import org.jetbrains.annotations.ApiStatus; + +/** Marker interface for event processors implemented by the Sentry SDK. */ +@ApiStatus.Internal +public interface SentryEventProcessor extends EventProcessor {} diff --git a/sentry/src/test/java/io/sentry/internal/eventprocessor/SentryEventProcessorTest.kt b/sentry/src/test/java/io/sentry/internal/eventprocessor/SentryEventProcessorTest.kt new file mode 100644 index 00000000000..5c94108a6ae --- /dev/null +++ b/sentry/src/test/java/io/sentry/internal/eventprocessor/SentryEventProcessorTest.kt @@ -0,0 +1,21 @@ +package io.sentry.internal.eventprocessor + +import com.google.common.truth.Truth.assertThat +import io.sentry.EventProcessor +import io.sentry.SentryOptions +import kotlin.test.Test + +class SentryEventProcessorTest { + @Test + fun `default SDK event processors are marked as Sentry processors`() { + assertThat(SentryOptions().eventProcessors).isNotEmpty() + assertThat(SentryOptions().eventProcessors.all { it is SentryEventProcessor }).isTrue() + } + + @Test + fun `customer event processors are not marked as Sentry processors`() { + val processor = object : EventProcessor {} + + assertThat(processor).isNotInstanceOf(SentryEventProcessor::class.java) + } +}