aboutsummaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2022-01-04 17:27:33 +0000
committerArne H Juul <arnej@yahooinc.com>2022-01-06 15:24:07 +0000
commit79132191823407316c9d3ab2c255451b9692b248 (patch)
tree8789a60b373bb3cd7037de94c772c984eb491c4e /configserver
parentbba2f4139058e75526df4241b61176cbd7467696 (diff)
convert map to FlagSource with overrides
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/LegacyFlags.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/LegacyFlags.java b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/LegacyFlags.java
new file mode 100644
index 00000000000..f4d939387cd
--- /dev/null
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/LegacyFlags.java
@@ -0,0 +1,46 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.config.server.modelfactory;
+
+import com.yahoo.config.application.api.ApplicationPackage;
+import com.yahoo.vespa.flags.Flags;
+import com.yahoo.vespa.flags.FlagSource;
+import com.yahoo.vespa.flags.InMemoryFlagSource;
+import com.yahoo.vespa.flags.OrderedFlagSource;
+
+import java.util.Map;
+
+
+/**
+ * @author arnej
+ */
+public class LegacyFlags {
+
+ public static final String GEO_POSITIONS = "geo-positions";
+ public static final String FOO_BAR = "foo-bar"; // for testing
+
+ private static FlagSource buildFrom(Map<String, String> legacyOverrides) {
+ var flags = new InMemoryFlagSource();
+ for (var entry : legacyOverrides.entrySet()) {
+ String key = entry.getKey();
+ String value = entry.getValue();
+ boolean legacyWanted = Boolean.valueOf(value);
+ switch (key) {
+ case GEO_POSITIONS:
+ flags = flags.withBooleanFlag(Flags.USE_V8_GEO_POSITIONS.id(), ! legacyWanted);
+ break;
+ case FOO_BAR:
+ // ignored
+ break;
+ default:
+ throw new IllegalArgumentException("Unknown legacy override: "+key);
+ }
+ }
+ return flags;
+ }
+
+ public static FlagSource from(ApplicationPackage pkg, FlagSource input) {
+ var overrides = buildFrom(pkg.legacyOverrides());
+ FlagSource result = new OrderedFlagSource(overrides, input);
+ return result;
+ }
+}