aboutsummaryrefslogtreecommitdiffstats
path: root/config-lib
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2020-12-01 19:32:30 +0100
committerJon Bratseth <bratseth@gmail.com>2020-12-01 19:32:30 +0100
commit020f0a4cd1748624793b885a3e73548a8d49768e (patch)
tree85783f9816fe10adf971d4f6694be0ae0cbaeed3 /config-lib
parentb9f054f862e6fc7bdbf41b9404605e2a8ad6b249 (diff)
Revert "Merge pull request #15577 from vespa-engine/revert-15575-bratseth/apply-on-restart-take-9"
This reverts commit b9f054f862e6fc7bdbf41b9404605e2a8ad6b249, reversing changes made to 535b586bae36880259a792e2292f02b8495950fe.
Diffstat (limited to 'config-lib')
-rw-r--r--config-lib/abi-spec.json6
-rw-r--r--config-lib/pom.xml6
-rw-r--r--config-lib/src/main/java/com/yahoo/config/ConfigBuilder.java1
-rw-r--r--config-lib/src/main/java/com/yahoo/config/ConfigInstance.java13
-rw-r--r--config-lib/src/main/java/com/yahoo/config/Node.java4
5 files changed, 26 insertions, 4 deletions
diff --git a/config-lib/abi-spec.json b/config-lib/abi-spec.json
index fa352d8f6bd..a9c57c2d1a2 100644
--- a/config-lib/abi-spec.json
+++ b/config-lib/abi-spec.json
@@ -73,7 +73,11 @@
"public abstract boolean dispatchGetConfig(com.yahoo.config.ConfigInstance$Producer)",
"public abstract java.lang.String getDefName()",
"public abstract java.lang.String getDefNamespace()",
- "public abstract java.lang.String getDefMd5()"
+ "public abstract java.lang.String getDefMd5()",
+ "public boolean getApplyOnRestart()",
+ "public void setApplyOnRestart(boolean)",
+ "public com.yahoo.config.ConfigInstance buildInstance(com.yahoo.config.codegen.InnerCNode)",
+ "public static void applyDef(com.yahoo.config.ConfigBuilder, com.yahoo.config.codegen.InnerCNode)"
],
"fields": []
},
diff --git a/config-lib/pom.xml b/config-lib/pom.xml
index 1002d43bc37..90c61725466 100644
--- a/config-lib/pom.xml
+++ b/config-lib/pom.xml
@@ -26,6 +26,12 @@
<artifactId>annotations</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>com.yahoo.vespa</groupId>
+ <artifactId>configgen</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
<build>
<plugins>
diff --git a/config-lib/src/main/java/com/yahoo/config/ConfigBuilder.java b/config-lib/src/main/java/com/yahoo/config/ConfigBuilder.java
index e35e6916849..30bef223045 100644
--- a/config-lib/src/main/java/com/yahoo/config/ConfigBuilder.java
+++ b/config-lib/src/main/java/com/yahoo/config/ConfigBuilder.java
@@ -5,7 +5,6 @@ package com.yahoo.config;
* Root interface for all config builders.
*
* @author gjoranv
- * @since 5.1.6
*/
public interface ConfigBuilder {
}
diff --git a/config-lib/src/main/java/com/yahoo/config/ConfigInstance.java b/config-lib/src/main/java/com/yahoo/config/ConfigInstance.java
index 04405839a9b..43fb52dcd72 100644
--- a/config-lib/src/main/java/com/yahoo/config/ConfigInstance.java
+++ b/config-lib/src/main/java/com/yahoo/config/ConfigInstance.java
@@ -1,9 +1,16 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.logging.Level;
+
+import com.yahoo.config.codegen.CNode;
+import com.yahoo.config.codegen.InnerCNode;
+import com.yahoo.config.codegen.LeafCNode;
/**
* Represents an instance of an application config with a specific configId.
@@ -17,6 +24,7 @@ public abstract class ConfigInstance extends InnerNode {
/**
* Dispatches a getConfig() call if this instance's producer is of the right type
+ *
* @param producer a config producer
* @return true if this instance's producer was the correct type, and hence a getConfig call was dispatched
*/
@@ -26,6 +34,11 @@ public abstract class ConfigInstance extends InnerNode {
String getDefNamespace();
String getDefMd5();
+ /** Returns true if this instance should be applied on restart, false if it should be applied immediately */
+ default boolean getApplyOnRestart() { return false; }
+
+ default void setApplyOnRestart(boolean applyOnRestart) { throw new java.lang.UnsupportedOperationException(); }
+
}
public interface Producer {}
diff --git a/config-lib/src/main/java/com/yahoo/config/Node.java b/config-lib/src/main/java/com/yahoo/config/Node.java
index 8d16b9727c1..ed11bdc9891 100644
--- a/config-lib/src/main/java/com/yahoo/config/Node.java
+++ b/config-lib/src/main/java/com/yahoo/config/Node.java
@@ -5,7 +5,6 @@ package com.yahoo.config;
* The Node class is superclass for all nodes in a {@link
* ConfigInstance}. Important subclasses of this node are {@link
* InnerNode} and {@link LeafNode}.
- *
*/
public abstract class Node {
@@ -13,7 +12,7 @@ public abstract class Node {
* Postinitialize this node. Any node needing to process its values depending on the config
* id should override this method.
*
- * @param configId the configId of the ConfigInstance that owns (or is) this node
+ * @param configId the configId of the ConfigInstance that owns (or is) this node
*/
public void postInitialize(String configId) { return; }
@@ -26,4 +25,5 @@ public abstract class Node {
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
+
}