diff options
Diffstat (limited to 'config/src')
9 files changed, 25 insertions, 48 deletions
diff --git a/config/src/main/java/com/yahoo/config/subscription/ConfigSet.java b/config/src/main/java/com/yahoo/config/subscription/ConfigSet.java index 1b86db6b299..0fb0462e84e 100644 --- a/config/src/main/java/com/yahoo/config/subscription/ConfigSet.java +++ b/config/src/main/java/com/yahoo/config/subscription/ConfigSet.java @@ -23,7 +23,6 @@ public class ConfigSet implements ConfigSource { @SuppressWarnings({"unchecked", "rawtypes"}) public void addBuilder(String configId, ConfigInstance.Builder builder) { Class<?> configClass = builder.getClass().getDeclaringClass(); - //System.out.println("Declaring class for builder " + builder + " is " + configClass); ConfigKey<?> key = new ConfigKey(configClass, configId); configs.put(key, builder); } @@ -56,4 +55,5 @@ public class ConfigSet implements ConfigSource { } return sb.toString(); } + } diff --git a/config/src/main/java/com/yahoo/config/subscription/ConfigSourceSet.java b/config/src/main/java/com/yahoo/config/subscription/ConfigSourceSet.java index 81aeda52b54..597f83a605c 100755 --- a/config/src/main/java/com/yahoo/config/subscription/ConfigSourceSet.java +++ b/config/src/main/java/com/yahoo/config/subscription/ConfigSourceSet.java @@ -58,7 +58,7 @@ public class ConfigSourceSet implements ConfigSource { * @param address Connection endpoint on the format "tcp/host:port". */ public ConfigSourceSet(String address) { - this(new String[] {address}); + this(new String[] { address }); } /** diff --git a/config/src/main/java/com/yahoo/config/subscription/ConfigSubscriber.java b/config/src/main/java/com/yahoo/config/subscription/ConfigSubscriber.java index 5d5ad1f1edc..e2b53879d92 100644 --- a/config/src/main/java/com/yahoo/config/subscription/ConfigSubscriber.java +++ b/config/src/main/java/com/yahoo/config/subscription/ConfigSubscriber.java @@ -275,7 +275,7 @@ public class ConfigSubscriber implements AutoCloseable { ConfigSubscription<? extends ConfigInstance> subscription = h.subscription(); log.log(Level.FINEST, () -> "Calling nextConfig for " + subscription.getKey()); if ( ! subscription.nextConfig(timeLeftMillis)) { - // This subscriber has no new state and we know it has exhausted all time + // This subscriber has no new state, and we know it has exhausted the timeout log.log(Level.FINEST, () -> "No new config for " + subscription.getKey()); return false; } @@ -407,15 +407,6 @@ public class ConfigSubscriber implements AutoCloseable { } } - /** - * The source used by this subscriber. - * - * @return the {@link ConfigSource} used by this subscriber - */ - public ConfigSource getSource() { - return source; - } - public boolean isClosed() { synchronized (monitor) { return state == State.CLOSED; diff --git a/config/src/main/java/com/yahoo/config/subscription/ConfigURI.java b/config/src/main/java/com/yahoo/config/subscription/ConfigURI.java index f0257457902..aa8a8c4a4c2 100644 --- a/config/src/main/java/com/yahoo/config/subscription/ConfigURI.java +++ b/config/src/main/java/com/yahoo/config/subscription/ConfigURI.java @@ -12,8 +12,8 @@ import java.io.File; */ public class ConfigURI { - private String configId; - private ConfigSource source; + private final String configId; + private final ConfigSource source; private ConfigURI(String configId, ConfigSource source) { this.configId = configId; diff --git a/config/src/main/java/com/yahoo/config/subscription/DirSource.java b/config/src/main/java/com/yahoo/config/subscription/DirSource.java index fbd65ccf597..9172048fe7b 100644 --- a/config/src/main/java/com/yahoo/config/subscription/DirSource.java +++ b/config/src/main/java/com/yahoo/config/subscription/DirSource.java @@ -11,7 +11,7 @@ public class DirSource implements ConfigSource { private final File dir; public DirSource(File dir) { - if (!dir.isDirectory()) throw new IllegalArgumentException("Not a directory: "+dir); + if (!dir.isDirectory()) throw new IllegalArgumentException("Not a directory: " + dir); this.dir = dir; } 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 68f1dc2df17..15c6ce2441e 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 @@ -18,11 +18,10 @@ public class ConfigSetSubscription<T extends ConfigInstance> extends ConfigSubsc private final ConfigSet set; private final ConfigKey<T> subKey; - ConfigSetSubscription(ConfigKey<T> key, ConfigSource cset) { + ConfigSetSubscription(ConfigKey<T> key, ConfigSet 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()); + this.set = cset; + this.subKey = new ConfigKey<>(configClass, key.getConfigId()); if (!set.contains(subKey)) { throw new IllegalArgumentException("The given ConfigSet " + set + " does not contain a config for " + subKey); } 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 5d720a74b15..2c5899df461 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 @@ -121,10 +121,9 @@ public abstract class ConfigSubscription<T extends ConfigInstance> { 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) { - JRTConfigRequester requester = requesters.getRequester((ConfigSourceSet) source, timingValues); - return new JRTConfigSubscription<>(key, requester, timingValues); + if (source instanceof ConfigSet cset) return new ConfigSetSubscription<>(key, cset); + if (source instanceof ConfigSourceSet csset) { + return new JRTConfigSubscription<>(key, requesters.getRequester(csset, timingValues), timingValues); } throw new IllegalArgumentException("Unknown source type: " + source); } @@ -132,21 +131,19 @@ public abstract class ConfigSubscription<T extends ConfigInstance> { private static <T extends ConfigInstance> JarConfigSubscription<T> getJarSub(ConfigKey<T> key, ConfigSource source) { String jarName; String path = "config/"; - if (source instanceof JarSource) { - JarSource js = (JarSource) source; + if (source instanceof JarSource js) { jarName = js.getJarFile().getName(); if (js.getPath() != null) path = js.getPath(); } else { - jarName = key.getConfigId().replace("jar:", "").replaceFirst("\\!/.*", ""); - if (key.getConfigId().contains("!/")) path = key.getConfigId().replaceFirst(".*\\!/", ""); + jarName = key.getConfigId().replace("jar:", "").replaceFirst("!/.*", ""); + if (key.getConfigId().contains("!/")) path = key.getConfigId().replaceFirst(".*!/", ""); } return new JarConfigSubscription<>(key, jarName, path); } 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:", "")); + File file = source instanceof FileSource fileSource ? fileSource.getFile() + : new File(key.getConfigId().replace("file:", "")); return new FileConfigSubscription<>(key, file); } @@ -158,17 +155,8 @@ public abstract class ConfigSubscription<T extends ConfigInstance> { } 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(); - } - if (!dir.endsWith(File.separator)) dir = dir + File.separator; - String name = getConfigFilename(key); - File file = new File(dir + name); - if (!file.exists()) { - throw new IllegalArgumentException("Could not find a config file for '" + key.getName() + "' in '" + dir + "'"); - } - return new FileConfigSubscription<>(key, file); + File dir = source instanceof DirSource dirSource ? dirSource.getDir() : new File(key.getConfigId().replace("dir:", "")); + return new FileConfigSubscription<>(key, new File(dir, getConfigFilename(key))); } @SuppressWarnings("unchecked") 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 5311b91c31f..47ac0dfbf85 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 @@ -11,6 +11,7 @@ import com.yahoo.vespa.config.ConfigPayload; import java.io.File; import java.io.IOException; +import java.nio.file.Files; import java.util.Arrays; import static java.util.logging.Level.FINE; @@ -29,13 +30,12 @@ public class FileConfigSubscription<T extends ConfigInstance> extends ConfigSubs super(key); setGeneration(0L); file = f; - if (!file.exists() && !file.isFile()) - throw new IllegalArgumentException("Not a file: " + file); + if ( ! file.isFile()) throw new IllegalArgumentException("Not a file: " + file); } @Override public boolean nextConfig(long timeout) { - if (!file.exists() && !file.isFile()) throw new IllegalArgumentException("Not a file: " + file); + if ( ! file.isFile()) throw new IllegalArgumentException("Not a file: " + file); if (checkReloaded()) { log.log(FINE, () -> "User forced config reload at " + System.currentTimeMillis()); // User forced reload @@ -61,7 +61,7 @@ public class FileConfigSubscription<T extends ConfigInstance> extends ConfigSubs private T updateConfig() { ts = file.lastModified(); try { - ConfigPayload payload = new CfgConfigPayloadBuilder().deserialize(Arrays.asList(IOUtils.readFile(file).split("\n"))); + ConfigPayload payload = new CfgConfigPayloadBuilder().deserialize(Files.readAllLines(file.toPath())); return payload.toInstance(configClass, key.getConfigId()); } catch (IOException e) { throw new ConfigurationRuntimeException(e); diff --git a/config/src/main/java/com/yahoo/config/subscription/package-info.java b/config/src/main/java/com/yahoo/config/subscription/package-info.java index bda7649d184..58a47fa4249 100644 --- a/config/src/main/java/com/yahoo/config/subscription/package-info.java +++ b/config/src/main/java/com/yahoo/config/subscription/package-info.java @@ -1,8 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +/** Classes for subscribing to Vespa config. */ @ExportPackage -/** - * Classes for subscribing to Vespa config. - */ package com.yahoo.config.subscription; import com.yahoo.osgi.annotation.ExportPackage; |