aboutsummaryrefslogtreecommitdiffstats
path: root/component/src
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2020-12-07 13:37:24 +0100
committerJon Marius Venstad <venstad@gmail.com>2020-12-07 13:37:24 +0100
commitbdb102917700d9f698423b5a1d62ead8a06f5b5a (patch)
tree1daacf13716d072b1a5578ae03fb35ae2e61a81f /component/src
parentc7548568b93ac5552667ca34a754bf6b36b5033e (diff)
Always deconstruct in reverse creation order, including Provider objects
Diffstat (limited to 'component/src')
-rw-r--r--component/src/main/java/com/yahoo/component/AbstractComponent.java3
-rw-r--r--component/src/main/java/com/yahoo/component/Deconstructable.java13
2 files changed, 15 insertions, 1 deletions
diff --git a/component/src/main/java/com/yahoo/component/AbstractComponent.java b/component/src/main/java/com/yahoo/component/AbstractComponent.java
index fcaa1e62d56..18a19f3e238 100644
--- a/component/src/main/java/com/yahoo/component/AbstractComponent.java
+++ b/component/src/main/java/com/yahoo/component/AbstractComponent.java
@@ -11,7 +11,7 @@ import java.lang.reflect.Method;
*
* @author bratseth
*/
-public class AbstractComponent implements Component {
+public class AbstractComponent implements Component, Deconstructable {
private static final MethodCache deconstructMethods = new MethodCache("deconstruct");
@@ -129,6 +129,7 @@ public class AbstractComponent implements Component {
* <p>
* This default implementation does nothing.
*/
+ @Override
public void deconstruct() { }
/**
diff --git a/component/src/main/java/com/yahoo/component/Deconstructable.java b/component/src/main/java/com/yahoo/component/Deconstructable.java
new file mode 100644
index 00000000000..4da39cd3420
--- /dev/null
+++ b/component/src/main/java/com/yahoo/component/Deconstructable.java
@@ -0,0 +1,13 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.component;
+
+/**
+ * A component in the component graph that should be deconstructed, to release resources.
+ *
+ * @author jonmv
+ */
+public interface Deconstructable {
+
+ void deconstruct();
+
+}