diff --git a/src/main/java/dev/openfeature/sdk/EventProvider.java b/src/main/java/dev/openfeature/sdk/EventProvider.java index 6fbc41d8f..b285c49f7 100644 --- a/src/main/java/dev/openfeature/sdk/EventProvider.java +++ b/src/main/java/dev/openfeature/sdk/EventProvider.java @@ -29,7 +29,7 @@ void attach(TriConsumer onEm } /** - * Emit the specified {@link dev.openfeature.sdk.ProviderEvent}. + * Emit the specified {@link ProviderEvent}. * * @param event The event type * @param details The details of the event @@ -41,7 +41,7 @@ public void emit(ProviderEvent event, ProviderEventDetails details) { } /** - * Emit a {@link dev.openfeature.sdk.ProviderEvent#PROVIDER_READY} event. + * Emit a {@link ProviderEvent#PROVIDER_READY} event. * Shorthand for {@link #emit(ProviderEvent, ProviderEventDetails)} * * @param details The details of the event @@ -52,7 +52,7 @@ public void emitProviderReady(ProviderEventDetails details) { /** * Emit a - * {@link dev.openfeature.sdk.ProviderEvent#PROVIDER_CONFIGURATION_CHANGED} + * {@link ProviderEvent#PROVIDER_CONFIGURATION_CHANGED} * event. Shorthand for {@link #emit(ProviderEvent, ProviderEventDetails)} * * @param details The details of the event @@ -62,7 +62,7 @@ public void emitProviderConfigurationChanged(ProviderEventDetails details) { } /** - * Emit a {@link dev.openfeature.sdk.ProviderEvent#PROVIDER_STALE} event. + * Emit a {@link ProviderEvent#PROVIDER_STALE} event. * Shorthand for {@link #emit(ProviderEvent, ProviderEventDetails)} * * @param details The details of the event @@ -72,7 +72,7 @@ public void emitProviderStale(ProviderEventDetails details) { } /** - * Emit a {@link dev.openfeature.sdk.ProviderEvent#PROVIDER_ERROR} event. + * Emit a {@link ProviderEvent#PROVIDER_ERROR} event. * Shorthand for {@link #emit(ProviderEvent, ProviderEventDetails)} * * @param details The details of the event diff --git a/src/main/java/dev/openfeature/sdk/EventSupport.java b/src/main/java/dev/openfeature/sdk/EventSupport.java index f096539df..f2f8f2960 100644 --- a/src/main/java/dev/openfeature/sdk/EventSupport.java +++ b/src/main/java/dev/openfeature/sdk/EventSupport.java @@ -88,6 +88,10 @@ public void runHandler(Consumer handler, EventDetails eventDetails }); } + public void shutdown() { + taskExecutor.shutdown(); + } + static class HandlerStore { private final Map>> handlerMap; diff --git a/src/main/java/dev/openfeature/sdk/OpenFeatureAPI.java b/src/main/java/dev/openfeature/sdk/OpenFeatureAPI.java index e38bb4bec..1bd2cff59 100644 --- a/src/main/java/dev/openfeature/sdk/OpenFeatureAPI.java +++ b/src/main/java/dev/openfeature/sdk/OpenFeatureAPI.java @@ -24,7 +24,7 @@ public class OpenFeatureAPI implements EventHandling { private EvaluationContext evaluationContext; private final List apiHooks; private ProviderRepository providerRepository = new ProviderRepository(); - private final EventSupport eventSupport = new EventSupport(); + private EventSupport eventSupport = new EventSupport(); protected OpenFeatureAPI() { apiHooks = new ArrayList<>(); @@ -119,7 +119,7 @@ public void setProvider(String clientName, FeatureProvider provider) { this::attachEventProvider, this::emitReady, this::detachEventProvider, - this::emitError) + this::emitError); } } @@ -192,7 +192,7 @@ public void clearHooks() { public void shutdown() { providerRepository.shutdown(); - // TODO: shutdown events + eventSupport.shutdown(); } /** @@ -268,8 +268,9 @@ void addHandler(String clientName, ProviderEvent event, Consumer h * This method is only here for testing as otherwise all tests after the API * shutdown test would fail. */ - final void resetProviderRepository() { + final void reset() { providerRepository = new ProviderRepository(); + eventSupport = new EventSupport(); } /** diff --git a/src/test/java/dev/openfeature/sdk/ShutdownBehaviorSpecTest.java b/src/test/java/dev/openfeature/sdk/ShutdownBehaviorSpecTest.java index e62c82e31..e470819f7 100644 --- a/src/test/java/dev/openfeature/sdk/ShutdownBehaviorSpecTest.java +++ b/src/test/java/dev/openfeature/sdk/ShutdownBehaviorSpecTest.java @@ -110,7 +110,7 @@ void mustShutdownAllProvidersOnShuttingDownApi() { verify(namedProvider).shutdown(); }); - api.resetProviderRepository(); + api.reset(); } } }