diff options
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/LegacyFlags.java | 46 |
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; + } +} |