From 8bed59cbdc733312d53094b35520589eb34eb04f Mon Sep 17 00:00:00 2001 From: Stefano Date: Wed, 10 Sep 2025 11:17:39 +0200 Subject: [PATCH 1/2] removed all @Experimental annotations from SentryLogs code --- sentry/src/main/java/io/sentry/ExternalOptions.java | 2 -- sentry/src/main/java/io/sentry/HubAdapter.java | 1 - sentry/src/main/java/io/sentry/HubScopesWrapper.java | 1 - sentry/src/main/java/io/sentry/IScopes.java | 1 - sentry/src/main/java/io/sentry/ISentryClient.java | 1 - sentry/src/main/java/io/sentry/NoOpHub.java | 1 - sentry/src/main/java/io/sentry/NoOpScopes.java | 1 - sentry/src/main/java/io/sentry/NoOpSentryClient.java | 1 - sentry/src/main/java/io/sentry/ScopesAdapter.java | 1 - sentry/src/main/java/io/sentry/Sentry.java | 1 - sentry/src/main/java/io/sentry/SentryOptions.java | 8 ++------ sentry/src/main/java/io/sentry/logger/ILoggerApi.java | 2 -- sentry/src/main/java/io/sentry/logger/LoggerApi.java | 2 -- sentry/src/main/java/io/sentry/logger/NoOpLoggerApi.java | 2 -- .../java/io/sentry/logger/NoOpLoggerBatchProcessor.java | 2 -- 15 files changed, 2 insertions(+), 25 deletions(-) diff --git a/sentry/src/main/java/io/sentry/ExternalOptions.java b/sentry/src/main/java/io/sentry/ExternalOptions.java index 3e40d05543d..4382477d5a0 100644 --- a/sentry/src/main/java/io/sentry/ExternalOptions.java +++ b/sentry/src/main/java/io/sentry/ExternalOptions.java @@ -522,12 +522,10 @@ public void setCaptureOpenTelemetryEvents(final @Nullable Boolean captureOpenTel return captureOpenTelemetryEvents; } - @ApiStatus.Experimental public void setEnableLogs(final @Nullable Boolean enableLogs) { this.enableLogs = enableLogs; } - @ApiStatus.Experimental public @Nullable Boolean isEnableLogs() { return enableLogs; } diff --git a/sentry/src/main/java/io/sentry/HubAdapter.java b/sentry/src/main/java/io/sentry/HubAdapter.java index c6af24870f2..f9065dd64c1 100644 --- a/sentry/src/main/java/io/sentry/HubAdapter.java +++ b/sentry/src/main/java/io/sentry/HubAdapter.java @@ -384,7 +384,6 @@ public void reportFullyDisplayed() { return Sentry.getCurrentScopes().getRateLimiter(); } - @ApiStatus.Experimental @Override public @NotNull ILoggerApi logger() { return Sentry.getCurrentScopes().logger(); diff --git a/sentry/src/main/java/io/sentry/HubScopesWrapper.java b/sentry/src/main/java/io/sentry/HubScopesWrapper.java index 7de59538c52..f6e2b394093 100644 --- a/sentry/src/main/java/io/sentry/HubScopesWrapper.java +++ b/sentry/src/main/java/io/sentry/HubScopesWrapper.java @@ -370,7 +370,6 @@ public void reportFullyDisplayed() { return scopes.captureReplay(replay, hint); } - @ApiStatus.Experimental @Override public @NotNull ILoggerApi logger() { return scopes.logger(); diff --git a/sentry/src/main/java/io/sentry/IScopes.java b/sentry/src/main/java/io/sentry/IScopes.java index 87081a1852a..7633bf2d579 100644 --- a/sentry/src/main/java/io/sentry/IScopes.java +++ b/sentry/src/main/java/io/sentry/IScopes.java @@ -742,7 +742,6 @@ default boolean isNoOp() { @NotNull SentryId captureReplay(@NotNull SentryReplayEvent replay, @Nullable Hint hint); - @ApiStatus.Experimental @NotNull ILoggerApi logger(); } diff --git a/sentry/src/main/java/io/sentry/ISentryClient.java b/sentry/src/main/java/io/sentry/ISentryClient.java index b01988a72a8..6efcca6309c 100644 --- a/sentry/src/main/java/io/sentry/ISentryClient.java +++ b/sentry/src/main/java/io/sentry/ISentryClient.java @@ -304,7 +304,6 @@ SentryId captureProfileChunk( @ApiStatus.Experimental SentryId captureCheckIn(@NotNull CheckIn checkIn, @Nullable IScope scope, @Nullable Hint hint); - @ApiStatus.Experimental void captureLog(@NotNull SentryLogEvent logEvent, @Nullable IScope scope); @ApiStatus.Internal diff --git a/sentry/src/main/java/io/sentry/NoOpHub.java b/sentry/src/main/java/io/sentry/NoOpHub.java index 1c5806fdf95..67a6ded5e5a 100644 --- a/sentry/src/main/java/io/sentry/NoOpHub.java +++ b/sentry/src/main/java/io/sentry/NoOpHub.java @@ -327,7 +327,6 @@ public boolean isNoOp() { return true; } - @ApiStatus.Experimental @Override public @NotNull ILoggerApi logger() { return NoOpLoggerApi.getInstance(); diff --git a/sentry/src/main/java/io/sentry/NoOpScopes.java b/sentry/src/main/java/io/sentry/NoOpScopes.java index 34adb15769b..4e039a7b508 100644 --- a/sentry/src/main/java/io/sentry/NoOpScopes.java +++ b/sentry/src/main/java/io/sentry/NoOpScopes.java @@ -324,7 +324,6 @@ public boolean isNoOp() { return SentryId.EMPTY_ID; } - @ApiStatus.Experimental @Override public @NotNull ILoggerApi logger() { return NoOpLoggerApi.getInstance(); diff --git a/sentry/src/main/java/io/sentry/NoOpSentryClient.java b/sentry/src/main/java/io/sentry/NoOpSentryClient.java index 97eed16b9ce..904228b8a0b 100644 --- a/sentry/src/main/java/io/sentry/NoOpSentryClient.java +++ b/sentry/src/main/java/io/sentry/NoOpSentryClient.java @@ -84,7 +84,6 @@ public SentryId captureEnvelope(@NotNull SentryEnvelope envelope, @Nullable Hint return SentryId.EMPTY_ID; } - @ApiStatus.Experimental @Override public void captureLog(@NotNull SentryLogEvent logEvent, @Nullable IScope scope) { // do nothing diff --git a/sentry/src/main/java/io/sentry/ScopesAdapter.java b/sentry/src/main/java/io/sentry/ScopesAdapter.java index 6c3816afd91..86d316b967f 100644 --- a/sentry/src/main/java/io/sentry/ScopesAdapter.java +++ b/sentry/src/main/java/io/sentry/ScopesAdapter.java @@ -381,7 +381,6 @@ public void reportFullyDisplayed() { return Sentry.getCurrentScopes().captureReplay(replay, hint); } - @ApiStatus.Experimental @Override public @NotNull ILoggerApi logger() { return Sentry.getCurrentScopes().logger(); diff --git a/sentry/src/main/java/io/sentry/Sentry.java b/sentry/src/main/java/io/sentry/Sentry.java index d5a9d5efe6b..3c04a6aaa96 100644 --- a/sentry/src/main/java/io/sentry/Sentry.java +++ b/sentry/src/main/java/io/sentry/Sentry.java @@ -1291,7 +1291,6 @@ public interface OptionsConfiguration { return getCurrentScopes().captureCheckIn(checkIn); } - @ApiStatus.Experimental @NotNull public static ILoggerApi logger() { return getCurrentScopes().logger(); diff --git a/sentry/src/main/java/io/sentry/SentryOptions.java b/sentry/src/main/java/io/sentry/SentryOptions.java index 73e4266c141..d52d8fe9eb2 100644 --- a/sentry/src/main/java/io/sentry/SentryOptions.java +++ b/sentry/src/main/java/io/sentry/SentryOptions.java @@ -3476,20 +3476,19 @@ public void setDefaultRecoveryThreshold(@Nullable Long defaultRecoveryThreshold) public static final class Logs { /** Whether Sentry Logs feature is enabled and Sentry.logger() usages are sent to Sentry. */ - @ApiStatus.Experimental private boolean enable = false; + private boolean enable = false; /** * This function is called with an SDK specific log event object and can return a modified event * object or nothing to skip reporting the log item */ - @ApiStatus.Experimental private @Nullable BeforeSendLogCallback beforeSend; + private @Nullable BeforeSendLogCallback beforeSend; /** * Whether Sentry Logs feature is enabled and Sentry.logger() usages are sent to Sentry. * * @return true if Sentry Logs should be enabled */ - @ApiStatus.Experimental public boolean isEnabled() { return enable; } @@ -3499,7 +3498,6 @@ public boolean isEnabled() { * * @param enableLogs true if Sentry Logs should be enabled */ - @ApiStatus.Experimental public void setEnabled(boolean enableLogs) { this.enable = enableLogs; } @@ -3509,7 +3507,6 @@ public void setEnabled(boolean enableLogs) { * * @return the beforeSendLog callback or null if not set */ - @ApiStatus.Experimental public @Nullable BeforeSendLogCallback getBeforeSend() { return beforeSend; } @@ -3519,7 +3516,6 @@ public void setEnabled(boolean enableLogs) { * * @param beforeSendLog the beforeSendLog callback */ - @ApiStatus.Experimental public void setBeforeSend(@Nullable BeforeSendLogCallback beforeSendLog) { this.beforeSend = beforeSendLog; } diff --git a/sentry/src/main/java/io/sentry/logger/ILoggerApi.java b/sentry/src/main/java/io/sentry/logger/ILoggerApi.java index bd892ea68f5..b29ea5d3ebd 100644 --- a/sentry/src/main/java/io/sentry/logger/ILoggerApi.java +++ b/sentry/src/main/java/io/sentry/logger/ILoggerApi.java @@ -2,11 +2,9 @@ import io.sentry.SentryDate; import io.sentry.SentryLogLevel; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -@ApiStatus.Experimental public interface ILoggerApi { void trace(final @Nullable String message, @Nullable Object... args); diff --git a/sentry/src/main/java/io/sentry/logger/LoggerApi.java b/sentry/src/main/java/io/sentry/logger/LoggerApi.java index 19c25c0f56d..84abfa71b2e 100644 --- a/sentry/src/main/java/io/sentry/logger/LoggerApi.java +++ b/sentry/src/main/java/io/sentry/logger/LoggerApi.java @@ -21,11 +21,9 @@ import io.sentry.util.Platform; import io.sentry.util.TracingUtils; import java.util.HashMap; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -@ApiStatus.Experimental public final class LoggerApi implements ILoggerApi { private final @NotNull Scopes scopes; diff --git a/sentry/src/main/java/io/sentry/logger/NoOpLoggerApi.java b/sentry/src/main/java/io/sentry/logger/NoOpLoggerApi.java index 16ea708f466..50edf72f3a4 100644 --- a/sentry/src/main/java/io/sentry/logger/NoOpLoggerApi.java +++ b/sentry/src/main/java/io/sentry/logger/NoOpLoggerApi.java @@ -2,11 +2,9 @@ import io.sentry.SentryDate; import io.sentry.SentryLogLevel; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -@ApiStatus.Experimental 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 372b9f6b67d..1cf45cdbd61 100644 --- a/sentry/src/main/java/io/sentry/logger/NoOpLoggerBatchProcessor.java +++ b/sentry/src/main/java/io/sentry/logger/NoOpLoggerBatchProcessor.java @@ -1,10 +1,8 @@ package io.sentry.logger; import io.sentry.SentryLogEvent; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; -@ApiStatus.Experimental public final class NoOpLoggerBatchProcessor implements ILoggerBatchProcessor { private static final NoOpLoggerBatchProcessor instance = new NoOpLoggerBatchProcessor(); From 38ccf4cda10e339c23151cc630051a70fce5ae11 Mon Sep 17 00:00:00 2001 From: Stefano Date: Wed, 10 Sep 2025 11:19:44 +0200 Subject: [PATCH 2/2] updated changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 40cf29bba00..a859b64222b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ### Features +- Move SentryLogs out of experimental ([#4710](https://github.com/getsentry/sentry-java/pull/4710)) - Add support for w3c traceparent header ([#4671](https://github.com/getsentry/sentry-java/pull/4671)) - This feature is disabled by default. If enabled, outgoing requests will include the w3c `traceparent` header. - See https://develop.sentry.dev/sdk/telemetry/traces/distributed-tracing/#w3c-trace-context-header for more details.