From d2bd78c65d18524cbccf5517d8fe5c2e056c8e58 Mon Sep 17 00:00:00 2001 From: Manoel Aranda Neto Date: Tue, 16 Feb 2021 09:34:34 +0100 Subject: [PATCH 1/2] Integration interface better compatibility with Kotlin null-safety --- CHANGELOG.md | 1 + sentry/src/main/java/io/sentry/Integration.java | 4 +++- .../io/sentry/SendCachedEnvelopeFireAndForgetIntegration.java | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f08d1c125ac..94cf057eede 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ * Enchancement: Support @SentrySpan and @SentryTransaction on classes and interfaces. (#1243) * Enchancement: Do not serialize empty collections and maps (#1245) * Ref: Simplify RestTemplate instrumentation (#1246) +* Enchancement: Integration interface better compatibility with Kotlin null-safety # 4.1.0 diff --git a/sentry/src/main/java/io/sentry/Integration.java b/sentry/src/main/java/io/sentry/Integration.java index 346528671c5..54b17e4d515 100644 --- a/sentry/src/main/java/io/sentry/Integration.java +++ b/sentry/src/main/java/io/sentry/Integration.java @@ -1,5 +1,7 @@ package io.sentry; +import org.jetbrains.annotations.NotNull; + /** * Code that provides middlewares, bindings or hooks into certain frameworks or environments, along * with code that inserts those bindings and activates them. @@ -11,5 +13,5 @@ public interface Integration { * @param hub the Hub * @param options the options */ - void register(IHub hub, SentryOptions options); + void register(@NotNull IHub hub, @NotNull SentryOptions options); } diff --git a/sentry/src/main/java/io/sentry/SendCachedEnvelopeFireAndForgetIntegration.java b/sentry/src/main/java/io/sentry/SendCachedEnvelopeFireAndForgetIntegration.java index 9ecef1a77c5..0d9d3e4b2bf 100644 --- a/sentry/src/main/java/io/sentry/SendCachedEnvelopeFireAndForgetIntegration.java +++ b/sentry/src/main/java/io/sentry/SendCachedEnvelopeFireAndForgetIntegration.java @@ -8,7 +8,7 @@ /** Sends cached events over when your App. is starting. */ public final class SendCachedEnvelopeFireAndForgetIntegration implements Integration { - private final SendFireAndForgetFactory factory; + private final @NotNull SendFireAndForgetFactory factory; public interface SendFireAndForget { void send(); @@ -21,7 +21,7 @@ public interface SendFireAndForgetDirPath { public interface SendFireAndForgetFactory { @Nullable - SendFireAndForget create(IHub hub, SentryOptions options); + SendFireAndForget create(@NotNull IHub hub, @NotNull SentryOptions options); default boolean hasValidPath(final @Nullable String dirPath, final @NotNull ILogger logger) { if (dirPath == null || dirPath.isEmpty()) { From 0a8f17740975a2ca7941a1ed5da0e16f7c6f464a Mon Sep 17 00:00:00 2001 From: Manoel Aranda Neto Date: Tue, 16 Feb 2021 10:07:57 +0100 Subject: [PATCH 2/2] fix --- .../io/sentry/spring/boot/SentryAutoConfigurationTest.kt | 2 +- sentry/src/test/java/io/sentry/HubTest.kt | 4 ++-- .../sentry/SendCachedEnvelopeFireAndForgetIntegrationTest.kt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sentry-spring-boot-starter/src/test/kotlin/io/sentry/spring/boot/SentryAutoConfigurationTest.kt b/sentry-spring-boot-starter/src/test/kotlin/io/sentry/spring/boot/SentryAutoConfigurationTest.kt index a8b4eb27dc7..1e88fa30a97 100644 --- a/sentry-spring-boot-starter/src/test/kotlin/io/sentry/spring/boot/SentryAutoConfigurationTest.kt +++ b/sentry-spring-boot-starter/src/test/kotlin/io/sentry/spring/boot/SentryAutoConfigurationTest.kt @@ -565,7 +565,7 @@ class SentryAutoConfigurationTest { } class CustomIntegration : Integration { - override fun register(hub: IHub?, options: SentryOptions?) {} + override fun register(hub: IHub, options: SentryOptions) {} } @Configuration(proxyBeanMethods = false) diff --git a/sentry/src/test/java/io/sentry/HubTest.kt b/sentry/src/test/java/io/sentry/HubTest.kt index 3d9e8c4f43c..6fcce103c64 100644 --- a/sentry/src/test/java/io/sentry/HubTest.kt +++ b/sentry/src/test/java/io/sentry/HubTest.kt @@ -581,9 +581,9 @@ class HubTest { doAnswer { val hub = it.arguments[0] as IHub assertTrue(hub.isEnabled) - }.whenever(mock).register(any(), eq(options)) + }.whenever(mock).register(any(), eq(options!!)) - verify(mock).register(any(), eq(options)) + verify(mock).register(any(), eq(options!!)) } //region setLevel tests diff --git a/sentry/src/test/java/io/sentry/SendCachedEnvelopeFireAndForgetIntegrationTest.kt b/sentry/src/test/java/io/sentry/SendCachedEnvelopeFireAndForgetIntegrationTest.kt index d8f47782ce5..3f1862eeace 100644 --- a/sentry/src/test/java/io/sentry/SendCachedEnvelopeFireAndForgetIntegrationTest.kt +++ b/sentry/src/test/java/io/sentry/SendCachedEnvelopeFireAndForgetIntegrationTest.kt @@ -63,7 +63,7 @@ class SendCachedEnvelopeFireAndForgetIntegrationTest { } private class CustomFactory : SendCachedEnvelopeFireAndForgetIntegration.SendFireAndForgetFactory { - override fun create(hub: IHub?, options: SentryOptions?): SendCachedEnvelopeFireAndForgetIntegration.SendFireAndForget? { + override fun create(hub: IHub, options: SentryOptions): SendCachedEnvelopeFireAndForgetIntegration.SendFireAndForget? { return null } }