diff --git a/CHANGELOG.md b/CHANGELOG.md index 0325931632..7419f04034 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ ### Breaking Changes +- Remove the deprecated `io.sentry.android.core.LoadClass`. Use `io.sentry.util.LoadClass` instead ([#6594](https://github.com/getsentry/sentry-java/pull/6594)) - `SentryOptions.getIgnoredErrors()`, `getIgnoredTransactions()`, `getIgnoredCheckIns()` and `getIgnoredSpanOrigins()` now return `List` instead of `List`, matching their setters ([#6489](https://github.com/getsentry/sentry-java/pull/6489)) - The SDK is now compiled for Java 11 instead of Java 8. JVM applications need Java 11 or newer ([#6459](https://github.com/getsentry/sentry-java/pull/6459)) - Default trace context status to `ok` when an active span has no explicit status ([#6418](https://github.com/getsentry/sentry-java/pull/6418)) diff --git a/sentry-android-core/api/sentry-android-core.api b/sentry-android-core/api/sentry-android-core.api index a214edaf27..97cbbf134f 100644 --- a/sentry-android-core/api/sentry-android-core.api +++ b/sentry-android-core/api/sentry-android-core.api @@ -321,13 +321,6 @@ public final class io/sentry/android/core/InternalSentrySdk { public static fun updateSessionForDroppedEventNonTerminating (Z)V } -public final class io/sentry/android/core/LoadClass : io/sentry/util/LoadClass { - public fun ()V - public fun isClassAvailable (Ljava/lang/String;Lio/sentry/ILogger;)Z - public fun isClassAvailable (Ljava/lang/String;Lio/sentry/SentryOptions;)Z - public fun loadClass (Ljava/lang/String;Lio/sentry/ILogger;)Ljava/lang/Class; -} - public final class io/sentry/android/core/MemoryLimiterIntegration : io/sentry/Integration, java/io/Closeable { public fun (Landroid/content/Context;Lio/sentry/android/core/BuildInfoProvider;)V public fun close ()V diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/AndroidOptionsInitializer.java b/sentry-android-core/src/main/java/io/sentry/android/core/AndroidOptionsInitializer.java index 7c9004e5ad..52afab2355 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/AndroidOptionsInitializer.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/AndroidOptionsInitializer.java @@ -56,6 +56,7 @@ import io.sentry.transport.NoOpEnvelopeCache; import io.sentry.transport.NoOpTransportGate; import io.sentry.util.LazyEvaluator; +import io.sentry.util.LoadClass; import io.sentry.util.Objects; import io.sentry.util.thread.NoOpThreadChecker; import java.io.File; @@ -149,7 +150,7 @@ static void loadDefaultAndMetadataOptions( static void initializeIntegrationsAndProcessors( final @NotNull SentryAndroidOptions options, final @NotNull Context context, - final @NotNull io.sentry.util.LoadClass loadClass, + final @NotNull LoadClass loadClass, final boolean isReplayAvailable) { initializeIntegrationsAndProcessors( options, context, new BuildInfoProvider(new AndroidLogger()), loadClass, isReplayAvailable); @@ -159,7 +160,7 @@ static void initializeIntegrationsAndProcessors( final @NotNull SentryAndroidOptions options, final @NotNull Context context, final @NotNull BuildInfoProvider buildInfoProvider, - final @NotNull io.sentry.util.LoadClass loadClass, + final @NotNull LoadClass loadClass, final boolean isReplayAvailable) { if (options.getCacheDirPath() != null @@ -406,7 +407,7 @@ static void installDefaultIntegrations( final @NotNull Context context, final @NotNull SentryAndroidOptions options, final @NotNull BuildInfoProvider buildInfoProvider, - final @NotNull io.sentry.util.LoadClass loadClass, + final @NotNull LoadClass loadClass, final boolean isFragmentAvailable, final boolean isTimberAvailable, final boolean isReplayAvailable, diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/LoadClass.java b/sentry-android-core/src/main/java/io/sentry/android/core/LoadClass.java deleted file mode 100644 index 34b8d1d5f1..0000000000 --- a/sentry-android-core/src/main/java/io/sentry/android/core/LoadClass.java +++ /dev/null @@ -1,41 +0,0 @@ -package io.sentry.android.core; - -import io.sentry.ILogger; -import io.sentry.SentryOptions; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * An Adapter for making Class.forName testable - * - * @deprecated please use {@link io.sentry.util.LoadClass} instead. - */ -@Deprecated -public final class LoadClass extends io.sentry.util.LoadClass { - - private final io.sentry.util.LoadClass delegate; - - public LoadClass() { - delegate = new io.sentry.util.LoadClass(); - } - - /** - * Try to load a class via reflection - * - * @param clazz the full class name - * @param logger an instance of ILogger - * @return a Class if it's available, or null - */ - public @Nullable Class loadClass(final @NotNull String clazz, final @Nullable ILogger logger) { - return delegate.loadClass(clazz, logger); - } - - public boolean isClassAvailable(final @NotNull String clazz, final @Nullable ILogger logger) { - return delegate.isClassAvailable(clazz, logger); - } - - public boolean isClassAvailable( - final @NotNull String clazz, final @Nullable SentryOptions options) { - return delegate.isClassAvailable(clazz, options); - } -} diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/SentryAndroid.java b/sentry-android-core/src/main/java/io/sentry/android/core/SentryAndroid.java index 1544a721c1..418a630779 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/SentryAndroid.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/SentryAndroid.java @@ -18,6 +18,7 @@ import io.sentry.android.fragment.FragmentLifecycleIntegration; import io.sentry.android.timber.SentryTimberIntegration; import io.sentry.util.AutoClosableReentrantLock; +import io.sentry.util.LoadClass; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.List; @@ -101,7 +102,7 @@ public static void init( Sentry.init( new SentryAndroidOptionsContainer(), options -> { - final io.sentry.util.LoadClass classLoader = new io.sentry.util.LoadClass(); + final LoadClass classLoader = new LoadClass(); final boolean isTimberUpstreamAvailable = classLoader.isClassAvailable(TIMBER_CLASS_NAME, options); final boolean isFragmentUpstreamAvailable = @@ -119,7 +120,7 @@ public static void init( classLoader.isClassAvailable(SENTRY_DISTRIBUTION_INTEGRATION_CLASS_NAME, options); final BuildInfoProvider buildInfoProvider = new BuildInfoProvider(logger); - final io.sentry.util.LoadClass loadClass = new io.sentry.util.LoadClass(); + final LoadClass loadClass = new LoadClass(); AndroidOptionsInitializer.loadDefaultAndMetadataOptions( options, context, logger, buildInfoProvider); diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/UserInteractionIntegration.java b/sentry-android-core/src/main/java/io/sentry/android/core/UserInteractionIntegration.java index 0d77625c71..edc71e21e0 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/UserInteractionIntegration.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/UserInteractionIntegration.java @@ -15,6 +15,7 @@ import io.sentry.android.core.internal.gestures.NoOpWindowCallback; import io.sentry.android.core.internal.gestures.SentryGestureListener; import io.sentry.android.core.internal.gestures.SentryWindowCallback; +import io.sentry.util.LoadClass; import io.sentry.util.Objects; import java.io.Closeable; import java.io.IOException; @@ -44,7 +45,7 @@ public final class UserInteractionIntegration private final @NotNull Object wrappedWindowsLock = new Object(); public UserInteractionIntegration( - final @NotNull Application application, final @NotNull io.sentry.util.LoadClass classLoader) { + final @NotNull Application application, final @NotNull LoadClass classLoader) { this.application = Objects.requireNonNull(application, "Application is required"); isAndroidxLifecycleAvailable = classLoader.isClassAvailable("androidx.lifecycle.Lifecycle", options); diff --git a/sentry-android-core/src/test/java/io/sentry/android/core/AndroidContinuousProfilerTest.kt b/sentry-android-core/src/test/java/io/sentry/android/core/AndroidContinuousProfilerTest.kt index 386bbe04eb..0d137789c8 100644 --- a/sentry-android-core/src/test/java/io/sentry/android/core/AndroidContinuousProfilerTest.kt +++ b/sentry-android-core/src/test/java/io/sentry/android/core/AndroidContinuousProfilerTest.kt @@ -19,6 +19,7 @@ import io.sentry.android.core.internal.util.SentryFrameMetricsCollector import io.sentry.profilemeasurements.ProfileMeasurement import io.sentry.test.DeferredExecutorService import io.sentry.test.getProperty +import io.sentry.util.LoadClass import java.io.File import java.util.concurrent.Future import kotlin.test.AfterTest diff --git a/sentry-android-core/src/test/java/io/sentry/android/core/AndroidOptionsInitializerTest.kt b/sentry-android-core/src/test/java/io/sentry/android/core/AndroidOptionsInitializerTest.kt index af4cf69671..fc965c8782 100644 --- a/sentry-android-core/src/test/java/io/sentry/android/core/AndroidOptionsInitializerTest.kt +++ b/sentry-android-core/src/test/java/io/sentry/android/core/AndroidOptionsInitializerTest.kt @@ -39,6 +39,7 @@ import io.sentry.internal.modules.IModulesLoader import io.sentry.protocol.SentryId import io.sentry.test.ImmediateExecutorService import io.sentry.transport.ITransportGate +import io.sentry.util.LoadClass import io.sentry.util.thread.IThreadChecker import java.io.File import kotlin.test.BeforeTest diff --git a/sentry-android-core/src/test/java/io/sentry/android/core/AndroidProfilerTest.kt b/sentry-android-core/src/test/java/io/sentry/android/core/AndroidProfilerTest.kt index 3ad5e5f3b8..b208a471f4 100644 --- a/sentry-android-core/src/test/java/io/sentry/android/core/AndroidProfilerTest.kt +++ b/sentry-android-core/src/test/java/io/sentry/android/core/AndroidProfilerTest.kt @@ -13,6 +13,7 @@ import io.sentry.profilemeasurements.ProfileMeasurement import io.sentry.test.getCtor import io.sentry.test.getProperty import io.sentry.util.LazyEvaluator +import io.sentry.util.LoadClass import java.io.File import java.util.concurrent.Callable import java.util.concurrent.Future diff --git a/sentry-android-core/src/test/java/io/sentry/android/core/AndroidTransactionProfilerTest.kt b/sentry-android-core/src/test/java/io/sentry/android/core/AndroidTransactionProfilerTest.kt index ca9939de84..26da8c75e3 100644 --- a/sentry-android-core/src/test/java/io/sentry/android/core/AndroidTransactionProfilerTest.kt +++ b/sentry-android-core/src/test/java/io/sentry/android/core/AndroidTransactionProfilerTest.kt @@ -16,6 +16,7 @@ import io.sentry.android.core.internal.util.SentryFrameMetricsCollector import io.sentry.profilemeasurements.ProfileMeasurement import io.sentry.test.getCtor import io.sentry.test.getProperty +import io.sentry.util.LoadClass import java.io.File import java.util.concurrent.Callable import java.util.concurrent.Future diff --git a/sentry-android-core/src/test/java/io/sentry/android/core/SentryInitProviderTest.kt b/sentry-android-core/src/test/java/io/sentry/android/core/SentryInitProviderTest.kt index 26a127e4ce..5e758141a5 100644 --- a/sentry-android-core/src/test/java/io/sentry/android/core/SentryInitProviderTest.kt +++ b/sentry-android-core/src/test/java/io/sentry/android/core/SentryInitProviderTest.kt @@ -6,6 +6,7 @@ import android.os.Bundle import androidx.test.ext.junit.runners.AndroidJUnit4 import io.sentry.Sentry import io.sentry.test.callMethod +import io.sentry.util.LoadClass import kotlin.test.BeforeTest import kotlin.test.Test import kotlin.test.assertFailsWith diff --git a/sentry-android-core/src/test/java/io/sentry/android/core/UserInteractionIntegrationTest.kt b/sentry-android-core/src/test/java/io/sentry/android/core/UserInteractionIntegrationTest.kt index 8f20dbb153..88029aecb5 100644 --- a/sentry-android-core/src/test/java/io/sentry/android/core/UserInteractionIntegrationTest.kt +++ b/sentry-android-core/src/test/java/io/sentry/android/core/UserInteractionIntegrationTest.kt @@ -9,6 +9,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import io.sentry.Scopes import io.sentry.android.core.internal.gestures.NoOpWindowCallback import io.sentry.android.core.internal.gestures.SentryWindowCallback +import io.sentry.util.LoadClass import junit.framework.TestCase.assertNull import kotlin.test.BeforeTest import kotlin.test.Test