diff options
author | Harald Musum <musum@yahooinc.com> | 2021-11-29 22:16:15 +0100 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2021-11-29 22:16:15 +0100 |
commit | ca2dc28d3cbf24917d19721469ce596f4d9cf159 (patch) | |
tree | 45d64feedd5fd6179f4b9425b76d827a0b3b2c29 /config/src/main/java | |
parent | 2073de457281adee18c5c310644bb4169bd3af7a (diff) |
Simplify ConfigSubscription
COnfigSubscriber isn't needed for all subscription (used only in equals method,
whoch is only used by tests)
Diffstat (limited to 'config/src/main/java')
6 files changed, 27 insertions, 43 deletions
diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSetSubscription.java b/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSetSubscription.java index be71f230934..85bb1cd4ca7 100644 --- a/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSetSubscription.java +++ b/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSetSubscription.java @@ -4,7 +4,6 @@ package com.yahoo.config.subscription.impl; import com.yahoo.config.ConfigInstance; import com.yahoo.config.subscription.ConfigSet; import com.yahoo.config.subscription.ConfigSource; -import com.yahoo.config.subscription.ConfigSubscriber; import com.yahoo.vespa.config.ConfigKey; import java.lang.reflect.Constructor; @@ -19,8 +18,8 @@ public class ConfigSetSubscription<T extends ConfigInstance> extends ConfigSubsc private final ConfigSet set; private final ConfigKey<T> subKey; - ConfigSetSubscription(ConfigKey<T> key, ConfigSubscriber subscriber, ConfigSource cset) { - super(key, subscriber); + ConfigSetSubscription(ConfigKey<T> key, ConfigSource cset) { + super(key); if (!(cset instanceof ConfigSet)) throw new IllegalArgumentException("Source is not a ConfigSet: " + cset); this.set = (ConfigSet) cset; subKey = new ConfigKey<>(configClass, key.getConfigId()); diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java b/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java index d107d1e30b5..fd8398afdfc 100644 --- a/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java +++ b/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java @@ -31,7 +31,6 @@ import static com.yahoo.vespa.config.PayloadChecksum.Type.MD5; public abstract class ConfigSubscription<T extends ConfigInstance> { protected static final Logger log = Logger.getLogger(ConfigSubscription.class.getName()); - protected final ConfigSubscriber subscriber; private final AtomicReference<ConfigState<T>> config = new AtomicReference<>(); protected final ConfigKey<T> key; protected final Class<T> configClass; @@ -100,12 +99,10 @@ public abstract class ConfigSubscription<T extends ConfigInstance> { * Initializes one subscription * * @param key a {@link ConfigKey} - * @param subscriber the subscriber for this subscription */ - ConfigSubscription(ConfigKey<T> key, ConfigSubscriber subscriber) { + ConfigSubscription(ConfigKey<T> key) { this.key = key; this.configClass = key.getConfigClass(); - this.subscriber = subscriber; this.config.set(new ConfigState<>()); getConfigState().getChecksums().removeChecksumsOfType(MD5); // TODO: Temporary until we don't use md5 anymore } @@ -120,17 +117,16 @@ public abstract class ConfigSubscription<T extends ConfigInstance> { public static <T extends ConfigInstance> ConfigSubscription<T> get(ConfigKey<T> key, ConfigSubscriber subscriber, ConfigSource source, TimingValues timingValues) { String configId = key.getConfigId(); - if (source instanceof RawSource || configId.startsWith("raw:")) return getRawSub(key, subscriber, source); - if (source instanceof FileSource || configId.startsWith("file:")) return getFileSub(key, subscriber, source); - if (source instanceof DirSource || configId.startsWith("dir:")) return getDirFileSub(key, subscriber, source); - if (source instanceof JarSource || configId.startsWith("jar:")) return getJarSub(key, subscriber, source); - if (source instanceof ConfigSet) return new ConfigSetSubscription<>(key, subscriber, source); + if (source instanceof RawSource || configId.startsWith("raw:")) return getRawSub(key, source); + if (source instanceof FileSource || configId.startsWith("file:")) return getFileSub(key, source); + if (source instanceof DirSource || configId.startsWith("dir:")) return getDirFileSub(key, source); + if (source instanceof JarSource || configId.startsWith("jar:")) return getJarSub(key, source); + if (source instanceof ConfigSet) return new ConfigSetSubscription<>(key, source); if (source instanceof ConfigSourceSet) return new JRTConfigSubscription<>(key, subscriber, source, timingValues); throw new IllegalArgumentException("Unknown source type: " + source); } - private static <T extends ConfigInstance> JarConfigSubscription<T> getJarSub( - ConfigKey<T> key, ConfigSubscriber subscriber, ConfigSource source) { + private static <T extends ConfigInstance> JarConfigSubscription<T> getJarSub(ConfigKey<T> key, ConfigSource source) { String jarName; String path = "config/"; if (source instanceof JarSource) { @@ -141,29 +137,24 @@ public abstract class ConfigSubscription<T extends ConfigInstance> { jarName = key.getConfigId().replace("jar:", "").replaceFirst("\\!/.*", ""); if (key.getConfigId().contains("!/")) path = key.getConfigId().replaceFirst(".*\\!/", ""); } - return new JarConfigSubscription<>(key, subscriber, jarName, path); + return new JarConfigSubscription<>(key, jarName, path); } - private static <T extends ConfigInstance> ConfigSubscription<T> getFileSub( - ConfigKey<T> key, ConfigSubscriber subscriber, ConfigSource source) { + private static <T extends ConfigInstance> ConfigSubscription<T> getFileSub(ConfigKey<T> key, ConfigSource source) { File file = ((source instanceof FileSource)) ? ((FileSource) source).getFile() : new File(key.getConfigId().replace("file:", "")); - return new FileConfigSubscription<>(key, subscriber, file); + return new FileConfigSubscription<>(key, file); } - private static <T extends ConfigInstance> ConfigSubscription<T> getRawSub(ConfigKey<T> key, - ConfigSubscriber subscriber, - ConfigSource source) { + private static <T extends ConfigInstance> ConfigSubscription<T> getRawSub(ConfigKey<T> key, ConfigSource source) { String payload = ((source instanceof RawSource) ? ((RawSource) source).payload : key.getConfigId().replace("raw:", "")); - return new RawConfigSubscription<>(key, subscriber, payload); + return new RawConfigSubscription<>(key, payload); } - private static <T extends ConfigInstance> ConfigSubscription<T> getDirFileSub(ConfigKey<T> key, - ConfigSubscriber subscriber, - ConfigSource source) { + private static <T extends ConfigInstance> ConfigSubscription<T> getDirFileSub(ConfigKey<T> key, ConfigSource source) { String dir = key.getConfigId().replace("dir:", ""); if (source instanceof DirSource) { dir = ((DirSource) source).getDir().toString(); @@ -174,7 +165,7 @@ public abstract class ConfigSubscription<T extends ConfigInstance> { if (!file.exists()) { throw new IllegalArgumentException("Could not find a config file for '" + key.getName() + "' in '" + dir + "'"); } - return new FileConfigSubscription<>(key, subscriber, file); + return new FileConfigSubscription<>(key, file); } @SuppressWarnings("unchecked") @@ -182,8 +173,7 @@ public abstract class ConfigSubscription<T extends ConfigInstance> { public boolean equals(Object o) { if (o instanceof ConfigSubscription) { ConfigSubscription<T> other = (ConfigSubscription<T>) o; - return key.equals(other.key) && - subscriber.equals(other.subscriber); + return key.equals(other.key); } return false; } @@ -331,10 +321,6 @@ public abstract class ConfigSubscription<T extends ConfigInstance> { public boolean isClosed() { return state == State.CLOSED; } - State getState() { - return state; - } - /** * Returns the file name corresponding to the given key's defName. * diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/FileConfigSubscription.java b/config/src/main/java/com/yahoo/config/subscription/impl/FileConfigSubscription.java index 3282bc81e55..5311b91c31f 100644 --- a/config/src/main/java/com/yahoo/config/subscription/impl/FileConfigSubscription.java +++ b/config/src/main/java/com/yahoo/config/subscription/impl/FileConfigSubscription.java @@ -5,7 +5,6 @@ import com.yahoo.config.ConfigInstance; import com.yahoo.config.ConfigurationRuntimeException; import com.yahoo.config.subscription.CfgConfigPayloadBuilder; import com.yahoo.config.subscription.ConfigInterruptedException; -import com.yahoo.config.subscription.ConfigSubscriber; import com.yahoo.io.IOUtils; import com.yahoo.vespa.config.ConfigKey; import com.yahoo.vespa.config.ConfigPayload; @@ -26,8 +25,8 @@ public class FileConfigSubscription<T extends ConfigInstance> extends ConfigSubs final File file; long ts; - FileConfigSubscription(ConfigKey<T> key, ConfigSubscriber subscriber, File f) { - super(key, subscriber); + FileConfigSubscription(ConfigKey<T> key, File f) { + super(key); setGeneration(0L); file = f; if (!file.exists() && !file.isFile()) diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigSubscription.java b/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigSubscription.java index c6ea79ddbcd..f0602e8079d 100644 --- a/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigSubscription.java +++ b/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigSubscription.java @@ -34,6 +34,7 @@ public class JRTConfigSubscription<T extends ConfigInstance> extends ConfigSubsc private JRTConfigRequester requester; private final TimingValues timingValues; + private final ConfigSubscriber subscriber; // Last time we got an OK JRT callback private Instant lastOK = Instant.MIN; @@ -46,8 +47,9 @@ public class JRTConfigSubscription<T extends ConfigInstance> extends ConfigSubsc private ConfigSourceSet sources; public JRTConfigSubscription(ConfigKey<T> key, ConfigSubscriber subscriber, ConfigSource source, TimingValues timingValues) { - super(key, subscriber); + super(key); this.timingValues = timingValues; + this.subscriber = subscriber; if (source instanceof ConfigSourceSet) { this.sources = (ConfigSourceSet) source; } diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/JarConfigSubscription.java b/config/src/main/java/com/yahoo/config/subscription/impl/JarConfigSubscription.java index 095ebc59c11..a75e1d0b976 100644 --- a/config/src/main/java/com/yahoo/config/subscription/impl/JarConfigSubscription.java +++ b/config/src/main/java/com/yahoo/config/subscription/impl/JarConfigSubscription.java @@ -5,7 +5,6 @@ import com.yahoo.config.ConfigInstance; import com.yahoo.config.ConfigurationRuntimeException; import com.yahoo.config.subscription.CfgConfigPayloadBuilder; import com.yahoo.config.subscription.ConfigInterruptedException; -import com.yahoo.config.subscription.ConfigSubscriber; import com.yahoo.io.IOUtils; import com.yahoo.vespa.config.ConfigKey; import com.yahoo.vespa.config.ConfigPayload; @@ -32,8 +31,8 @@ public class JarConfigSubscription<T extends ConfigInstance> extends ConfigSubsc private ZipEntry zipEntry = null; // jar:configs/app.jar!/configs/ - JarConfigSubscription(ConfigKey<T> key, ConfigSubscriber subscriber, String jarName, String path) { - super(key, subscriber); + JarConfigSubscription(ConfigKey<T> key, String jarName, String path) { + super(key); this.jarName = jarName; this.path = path; } diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/RawConfigSubscription.java b/config/src/main/java/com/yahoo/config/subscription/impl/RawConfigSubscription.java index acc1b183bb7..22939c375ae 100644 --- a/config/src/main/java/com/yahoo/config/subscription/impl/RawConfigSubscription.java +++ b/config/src/main/java/com/yahoo/config/subscription/impl/RawConfigSubscription.java @@ -4,7 +4,6 @@ package com.yahoo.config.subscription.impl; import com.yahoo.config.ConfigInstance; import com.yahoo.config.subscription.CfgConfigPayloadBuilder; import com.yahoo.config.subscription.ConfigInterruptedException; -import com.yahoo.config.subscription.ConfigSubscriber; import com.yahoo.vespa.config.ConfigKey; import com.yahoo.vespa.config.ConfigPayload; import com.yahoo.vespa.config.PayloadChecksums; @@ -23,9 +22,9 @@ public class RawConfigSubscription<T extends ConfigInstance> extends ConfigSubsc final String inputPayload; String payload; - RawConfigSubscription(ConfigKey<T> key, ConfigSubscriber subscriber, String pl) { - super(key, subscriber); - this.inputPayload = pl; + RawConfigSubscription(ConfigKey<T> key, String payload) { + super(key); + this.inputPayload = payload; } @Override |