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 { 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..9e15686ed4 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,28 @@ 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); + 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 {