From 411f982a3589b863d398a50d467f04e905051381 Mon Sep 17 00:00:00 2001 From: Matt Creaser Date: Tue, 15 Apr 2025 12:23:59 -0300 Subject: [PATCH 1/3] Fix issue with LoggingCategory not initializing properly in Gen2 --- .../logging/LoggingCategory.java | 1 + .../logging/LoggingCategoryTest.java | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/core/src/main/java/com/amplifyframework/logging/LoggingCategory.java b/core/src/main/java/com/amplifyframework/logging/LoggingCategory.java index e8d18e6f30..27088f2995 100644 --- a/core/src/main/java/com/amplifyframework/logging/LoggingCategory.java +++ b/core/src/main/java/com/amplifyframework/logging/LoggingCategory.java @@ -138,6 +138,7 @@ public synchronized void configure(@NonNull CategoryConfiguration configuration, @InternalAmplifyApi public synchronized void configure(@NonNull AmplifyOutputsData configuration, @NonNull Context context) throws AmplifyException { + super.configure(configuration, context); // Logging plugin config is read from a separate file configure(context); } diff --git a/core/src/test/java/com/amplifyframework/logging/LoggingCategoryTest.java b/core/src/test/java/com/amplifyframework/logging/LoggingCategoryTest.java index d3c79dd120..33d5662989 100644 --- a/core/src/test/java/com/amplifyframework/logging/LoggingCategoryTest.java +++ b/core/src/test/java/com/amplifyframework/logging/LoggingCategoryTest.java @@ -20,6 +20,8 @@ import com.amplifyframework.AmplifyException; import com.amplifyframework.core.category.CategoryConfiguration; +import com.amplifyframework.core.category.CategoryInitializationResult; +import com.amplifyframework.core.configuration.AmplifyOutputsData; import com.amplifyframework.testutils.random.RandomString; import org.json.JSONException; @@ -27,6 +29,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mockito; import org.robolectric.RobolectricTestRunner; import java.util.List; @@ -135,6 +138,24 @@ public void configuredPluginUsedWhenProvided() throws AmplifyException { firstLog.assertEquals(LogLevel.WARN, message, issue); } + @Test + public void initializationSucceedsForGen2() throws AmplifyException { + FakeLogger userLogger = FakeLogger.instance(RandomString.string(), LogLevel.VERBOSE); + FakeLoggingPlugin userPlugin = FakeLoggingPlugin.instance(userLogger); + realLoggingCategory.addPlugin(userPlugin); + + AmplifyOutputsData data = Mockito.mock(AmplifyOutputsData.class); + realLoggingCategory.configure(data, getApplicationContext()); + + // Ensure initialization succeeds + CategoryInitializationResult result = realLoggingCategory.initialize(getApplicationContext()); + assertTrue(result.isSuccess()); + + // Ensure we can fetch the plugin + LoggingPlugin plugin = realLoggingCategory.getPlugin(userPlugin.getPluginKey()); + assertEquals(userPlugin, plugin); + } + private static LoggingCategoryConfiguration loggingConfiguration() { LoggingCategoryConfiguration configuration = new LoggingCategoryConfiguration(); try { From 1130117c1b22ec39985d27633e905722278940f4 Mon Sep 17 00:00:00 2001 From: Matt Creaser Date: Tue, 15 Apr 2025 12:24:12 -0300 Subject: [PATCH 2/3] Fix issue noticed with general category initialization --- .../java/com/amplifyframework/core/category/Category.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/amplifyframework/core/category/Category.java b/core/src/main/java/com/amplifyframework/core/category/Category.java index eee534a9c0..21bd3e71dc 100644 --- a/core/src/main/java/com/amplifyframework/core/category/Category.java +++ b/core/src/main/java/com/amplifyframework/core/category/Category.java @@ -149,13 +149,13 @@ public synchronized CategoryInitializationResult initialize(@NonNull Context con if (!State.CONFIGURED.equals(state.get())) { for (P plugin : getPlugins()) { InitializationResult result = InitializationResult.failure(new AmplifyException( - "Tried to init before category was not configured.", + "Tried to init before category was configured.", "Call configure() on category, first." )); pluginInitializationResults.put(plugin.getPluginKey(), result); } } else { - state.set(State.CONFIGURING); + state.set(State.INITIALIZING); for (P plugin : getPlugins()) { InitializationResult result; try { From 838a47a1b2f3522b54cfb1940588976c030e3729 Mon Sep 17 00:00:00 2001 From: Matt Creaser Date: Tue, 15 Apr 2025 12:26:00 -0300 Subject: [PATCH 3/3] Checkstyle --- .../com/amplifyframework/logging/LoggingCategoryTest.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/src/test/java/com/amplifyframework/logging/LoggingCategoryTest.java b/core/src/test/java/com/amplifyframework/logging/LoggingCategoryTest.java index 33d5662989..9e15686ed4 100644 --- a/core/src/test/java/com/amplifyframework/logging/LoggingCategoryTest.java +++ b/core/src/test/java/com/amplifyframework/logging/LoggingCategoryTest.java @@ -138,6 +138,10 @@ public void configuredPluginUsedWhenProvided() throws AmplifyException { firstLog.assertEquals(LogLevel.WARN, message, issue); } + /** + * Category should initialize as normal when using a Gen2 configuration. + * @throws AmplifyException Not expected; possible from addPlugin() call + */ @Test public void initializationSucceedsForGen2() throws AmplifyException { FakeLogger userLogger = FakeLogger.instance(RandomString.string(), LogLevel.VERBOSE);