summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2020-11-24 23:06:41 +0100
committerJon Bratseth <bratseth@gmail.com>2020-11-24 23:06:41 +0100
commita166a4ed59f40026970af585f6f8aa1d13d13ab4 (patch)
tree4655686e855c9caaa95ba42f20d132d37d2867b5 /config-model
parente79fff6e1d254c1776714f14839123c171e18a79 (diff)
Support marking configs as apply on restart
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/InstanceResolver.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java15
2 files changed, 18 insertions, 2 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/InstanceResolver.java b/config-model/src/main/java/com/yahoo/vespa/model/InstanceResolver.java
index a8404b076d4..11e97bc8a95 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/InstanceResolver.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/InstanceResolver.java
@@ -31,7 +31,8 @@ import java.util.Map;
*
* @author Vegard Havdal
*/
-// TODO This functionality should be on VespaModel itself, but we don't have a way right now to apply a config override to a ConfigInstance.Builder
+// TODO: Most of this has been copied to ConfigInstance.Builder.buildInstance() and can be removed from here
+// when Model.getConfig is removed
class InstanceResolver {
private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(InstanceResolver.class.getName());
@@ -138,7 +139,6 @@ class InstanceResolver {
return packagePrefix.value + cKey.getNamespace();
}
-
enum PackagePrefix {
COM_YAHOO("com.yahoo."),
NONE("");
@@ -148,4 +148,5 @@ class InstanceResolver {
this.value = value;
}
}
+
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java
index 2ffc24239f9..9fdaaff9d5e 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java
@@ -313,6 +313,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri
* @param configId the config id
* @return a config instance of the given type
*/
+ @Override
public <CONFIGTYPE extends ConfigInstance> CONFIGTYPE getConfig(Class<CONFIGTYPE> clazz, String configId) {
try {
ConfigInstance.Builder builder = newBuilder(clazz);
@@ -393,6 +394,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri
* @param targetDef The config definition to use for the schema
* @return The payload as a list of strings
*/
+ @Deprecated // TODO: Remove after December 2020
@Override
public ConfigPayload getConfig(ConfigKey<?> configKey, com.yahoo.vespa.config.buildergen.ConfigDefinition targetDef) {
Objects.requireNonNull(targetDef, "config definition cannot be null");
@@ -405,6 +407,19 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri
}
/**
+ * Resolve config for a given key and config definition
+ *
+ * @param configKey the key to resolve.
+ * @param targetDef the config definition to use for the schema
+ * @return the resolved config instance
+ */
+ @Override
+ public ConfigInstance.Builder getConfigInstance(ConfigKey<?> configKey, com.yahoo.vespa.config.buildergen.ConfigDefinition targetDef) {
+ Objects.requireNonNull(targetDef, "config definition cannot be null");
+ return resolveToBuilder(configKey);
+ }
+
+ /**
* Resolves the given config key into a correctly typed ConfigBuilder
* and fills in the config from this model.
*