aboutsummaryrefslogtreecommitdiffstats
path: root/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java
diff options
context:
space:
mode:
Diffstat (limited to 'config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java')
-rw-r--r--config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java41
1 files changed, 12 insertions, 29 deletions
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..2c4e3d40250 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:", ""));
+ FileSource file = source instanceof FileSource fileSource ? fileSource
+ : new FileSource(new File(key.getConfigId().replace("file:", "")));
return new FileConfigSubscription<>(key, file);
}
@@ -158,30 +155,16 @@ 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);
+ DirSource dir = source instanceof DirSource dirSource ? dirSource
+ : new DirSource(new File(key.getConfigId().replace("dir:", "")));
+ return new FileConfigSubscription<>(key, dir.getFile(getConfigFilename(key)));
}
- @SuppressWarnings("unchecked")
@Override
public boolean equals(Object o) {
- if (o instanceof ConfigSubscription) {
- ConfigSubscription<T> other = (ConfigSubscription<T>) o;
- return key.equals(other.key);
- }
- return false;
+ return o instanceof ConfigSubscription<?> cs && key.equals(cs.key);
}
-
/**
* Called from {@link ConfigSubscriber} when the changed status of this config is propagated to the clients
*/