diff options
Diffstat (limited to 'container-di/src/main/java/com/yahoo')
3 files changed, 6 insertions, 4 deletions
diff --git a/container-di/src/main/java/com/yahoo/container/di/ComponentDeconstructor.java b/container-di/src/main/java/com/yahoo/container/di/ComponentDeconstructor.java index dbfb842204d..09f72c9d86d 100644 --- a/container-di/src/main/java/com/yahoo/container/di/ComponentDeconstructor.java +++ b/container-di/src/main/java/com/yahoo/container/di/ComponentDeconstructor.java @@ -1,10 +1,12 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.di; +import java.util.Collection; + /** * @author gjoranv * @author Tony Vaagenes */ public interface ComponentDeconstructor { - void deconstruct(Object component); + void deconstruct(Collection<Object> components); } diff --git a/container-di/src/main/java/com/yahoo/container/di/Container.java b/container-di/src/main/java/com/yahoo/container/di/Container.java index 0c534b0673c..67ba25d5e49 100644 --- a/container-di/src/main/java/com/yahoo/container/di/Container.java +++ b/container-di/src/main/java/com/yahoo/container/di/Container.java @@ -69,7 +69,7 @@ public class Container { IdentityHashMap<Object, Object> oldComponents = new IdentityHashMap<>(); oldGraph.allConstructedComponentsAndProviders().forEach(c -> oldComponents.put(c, null)); newGraph.allConstructedComponentsAndProviders().forEach(oldComponents::remove); - oldComponents.keySet().forEach(componentDeconstructor::deconstruct); + componentDeconstructor.deconstruct(oldComponents.keySet()); } public ComponentGraph getNewComponentGraph(ComponentGraph oldGraph, Injector fallbackInjector, boolean restartOnRedeploy) { @@ -244,7 +244,7 @@ public class Container { } private void deconstructAllComponents(ComponentGraph graph, ComponentDeconstructor deconstructor) { - graph.allConstructedComponentsAndProviders().forEach(deconstructor::deconstruct); + deconstructor.deconstruct(graph.allConstructedComponentsAndProviders()); } public static <T extends ConfigInstance> T getConfig(ConfigKey<T> key, diff --git a/container-di/src/main/java/com/yahoo/container/di/componentgraph/core/ComponentGraph.java b/container-di/src/main/java/com/yahoo/container/di/componentgraph/core/ComponentGraph.java index f55d68ad708..67143c60f62 100644 --- a/container-di/src/main/java/com/yahoo/container/di/componentgraph/core/ComponentGraph.java +++ b/container-di/src/main/java/com/yahoo/container/di/componentgraph/core/ComponentGraph.java @@ -165,7 +165,7 @@ public class ComponentGraph { } } - public Collection<?> allConstructedComponentsAndProviders() { + public Collection<Object> allConstructedComponentsAndProviders() { return nodes().stream().map(node -> node.constructedInstance().get()).collect(Collectors.toList()); } |