diff options
Diffstat (limited to 'config/src/main/java/com/yahoo/config/subscription/impl/FileConfigSubscription.java')
-rw-r--r-- | config/src/main/java/com/yahoo/config/subscription/impl/FileConfigSubscription.java | 21 |
1 files changed, 9 insertions, 12 deletions
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..216657a6db3 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,13 +5,11 @@ 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.io.IOUtils; +import com.yahoo.config.subscription.FileSource; import com.yahoo.vespa.config.ConfigKey; import com.yahoo.vespa.config.ConfigPayload; -import java.io.File; import java.io.IOException; -import java.util.Arrays; import static java.util.logging.Level.FINE; @@ -22,20 +20,19 @@ import static java.util.logging.Level.FINE; */ public class FileConfigSubscription<T extends ConfigInstance> extends ConfigSubscription<T> { - final File file; + final FileSource file; long ts; - FileConfigSubscription(ConfigKey<T> key, File f) { + FileConfigSubscription(ConfigKey<T> key, FileSource file) { super(key); + file.validateFile(); setGeneration(0L); - file = f; - if (!file.exists() && !file.isFile()) - throw new IllegalArgumentException("Not a file: " + file); + this.file = file; } @Override public boolean nextConfig(long timeout) { - if (!file.exists() && !file.isFile()) throw new IllegalArgumentException("Not a file: " + file); + file.validateFile(); if (checkReloaded()) { log.log(FINE, () -> "User forced config reload at " + System.currentTimeMillis()); // User forced reload @@ -45,7 +42,7 @@ public class FileConfigSubscription<T extends ConfigInstance> extends ConfigSubs log.log(FINE, () -> "Config: " + configState.getConfig().toString()); return true; } - if (file.lastModified() != ts) { + if (file.getLastModified() != ts) { setConfigIncGen(updateConfig()); return true; } @@ -59,9 +56,9 @@ public class FileConfigSubscription<T extends ConfigInstance> extends ConfigSubs } private T updateConfig() { - ts = file.lastModified(); + ts = file.getLastModified(); try { - ConfigPayload payload = new CfgConfigPayloadBuilder().deserialize(Arrays.asList(IOUtils.readFile(file).split("\n"))); + ConfigPayload payload = new CfgConfigPayloadBuilder().deserialize(file.getContent()); return payload.toInstance(configClass, key.getConfigId()); } catch (IOException e) { throw new ConfigurationRuntimeException(e); |