diff options
Diffstat (limited to 'container-core')
4 files changed, 8 insertions, 6 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java b/container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java index 716f7b496b1..bcd3665a3d6 100644 --- a/container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java +++ b/container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java @@ -143,9 +143,7 @@ public class HandlersConfigurerDi { return currentGraph.getInstance(componentClass); } - public void shutdown(ComponentDeconstructor deconstructor) { - container.shutdown(currentGraph, deconstructor); - } + public void shutdown() { container.shutdown(currentGraph); } /** Returns the currently active application configuration generation */ public long generation() { return currentGraph.generation(); } diff --git a/container-core/src/main/java/com/yahoo/container/core/config/testutil/HandlersConfigurerTestWrapper.java b/container-core/src/main/java/com/yahoo/container/core/config/testutil/HandlersConfigurerTestWrapper.java index b9ff5a08785..eadb6b52294 100644 --- a/container-core/src/main/java/com/yahoo/container/core/config/testutil/HandlersConfigurerTestWrapper.java +++ b/container-core/src/main/java/com/yahoo/container/core/config/testutil/HandlersConfigurerTestWrapper.java @@ -125,7 +125,7 @@ public class HandlersConfigurerTestWrapper { } public void shutdown() { - configurer.shutdown(getTestDeconstructor()); + configurer.shutdown(); // TODO: Remove once tests use ConfigSet rather than dir: for (File f : createdFiles) { f.delete(); diff --git a/container-core/src/main/java/com/yahoo/container/di/ComponentDeconstructor.java b/container-core/src/main/java/com/yahoo/container/di/ComponentDeconstructor.java index bc5ddb3fa7a..95a15e12735 100644 --- a/container-core/src/main/java/com/yahoo/container/di/ComponentDeconstructor.java +++ b/container-core/src/main/java/com/yahoo/container/di/ComponentDeconstructor.java @@ -15,4 +15,7 @@ public interface ComponentDeconstructor { /** Deconstructs the given components in order, then the given bundles. */ void deconstruct(List<Object> components, Collection<Bundle> bundles); + /** Wait for all previous destruction tasks to complete */ + default void shutdown() {} + } diff --git a/container-core/src/main/java/com/yahoo/container/di/Container.java b/container-core/src/main/java/com/yahoo/container/di/Container.java index 8fc72d8cddb..8d8a05408a9 100644 --- a/container-core/src/main/java/com/yahoo/container/di/Container.java +++ b/container-core/src/main/java/com/yahoo/container/di/Container.java @@ -245,10 +245,11 @@ public class Container { } } - public void shutdown(ComponentGraph graph, ComponentDeconstructor deconstructor) { + public void shutdown(ComponentGraph graph) { shutdownConfigurer(); if (graph != null) { - deconstructAllComponents(graph, deconstructor); + deconstructAllComponents(graph, componentDeconstructor); + componentDeconstructor.shutdown(); } } |