summaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2021-10-08 19:50:33 +0200
committergjoranv <gv@verizonmedia.com>2021-10-08 19:50:33 +0200
commitbe5fc1c7a88efc0aaad2f945acaa79a1f4206b54 (patch)
treef64239c2b2936e2637a5e52f336da79553eb7fff /container-core
parentb3733a0d0b08377601edee806459cb9eec1024d0 (diff)
Simplify by taking a SubscriberFactory instead of a Function.
Diffstat (limited to 'container-core')
-rw-r--r--container-core/src/main/java/com/yahoo/container/di/ConfigRetriever.java14
-rw-r--r--container-core/src/main/java/com/yahoo/container/di/Container.java2
-rw-r--r--container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java5
3 files changed, 10 insertions, 11 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/di/ConfigRetriever.java b/container-core/src/main/java/com/yahoo/container/di/ConfigRetriever.java
index 200b963bcad..88167c73198 100644
--- a/container-core/src/main/java/com/yahoo/container/di/ConfigRetriever.java
+++ b/container-core/src/main/java/com/yahoo/container/di/ConfigRetriever.java
@@ -5,6 +5,7 @@ import com.google.common.collect.Sets;
import com.yahoo.config.ConfigInstance;
import com.yahoo.container.di.componentgraph.core.Keys;
import com.yahoo.container.di.config.Subscriber;
+import com.yahoo.container.di.config.SubscriberFactory;
import com.yahoo.vespa.config.ConfigKey;
import java.util.Collections;
@@ -31,18 +32,17 @@ public final class ConfigRetriever {
private Set<ConfigKey<? extends ConfigInstance>> componentSubscriberKeys;
private final Subscriber bootstrapSubscriber;
private Subscriber componentSubscriber;
- private final Function<Set<ConfigKey<? extends ConfigInstance>>, Subscriber> subscribe;
+ private final SubscriberFactory subscriberFactory;
- public ConfigRetriever(Set<ConfigKey<? extends ConfigInstance>> bootstrapKeys,
- Function<Set<ConfigKey<? extends ConfigInstance>>, Subscriber> subscribe) {
+ public ConfigRetriever(Set<ConfigKey<? extends ConfigInstance>> bootstrapKeys, SubscriberFactory subscriberFactory) {
this.bootstrapKeys = bootstrapKeys;
this.componentSubscriberKeys = new HashSet<>();
- this.subscribe = subscribe;
+ this.subscriberFactory = subscriberFactory;
if (bootstrapKeys.isEmpty()) {
throw new IllegalArgumentException("Bootstrap key set is empty");
}
- this.bootstrapSubscriber = subscribe.apply(bootstrapKeys);
- this.componentSubscriber = subscribe.apply(componentSubscriberKeys);
+ this.bootstrapSubscriber = this.subscriberFactory.getSubscriber(bootstrapKeys);
+ this.componentSubscriber = this.subscriberFactory.getSubscriber(componentSubscriberKeys);
}
public ConfigSnapshot getConfigs(Set<ConfigKey<? extends ConfigInstance>> componentConfigKeys,
@@ -133,7 +133,7 @@ public final class ConfigRetriever {
componentSubscriberKeys = keys;
try {
log.log(FINE, () -> "Setting up new component subscriber for keys: " + keys);
- componentSubscriber = subscribe.apply(keys);
+ componentSubscriber = subscriberFactory.getSubscriber(keys);
} catch (Throwable e) {
log.log(Level.WARNING, "Failed setting up subscriptions for component configs: " + e.getMessage());
log.log(Level.WARNING, "Config keys: " + keys);
diff --git a/container-core/src/main/java/com/yahoo/container/di/Container.java b/container-core/src/main/java/com/yahoo/container/di/Container.java
index 626f97dd25c..aaab1a11712 100644
--- a/container-core/src/main/java/com/yahoo/container/di/Container.java
+++ b/container-core/src/main/java/com/yahoo/container/di/Container.java
@@ -62,7 +62,7 @@ public class Container {
platformBundlesConfigKey = new ConfigKey<>(PlatformBundlesConfig.class, configId);
componentsConfigKey = new ConfigKey<>(ComponentsConfig.class, configId);
var bootstrapKeys = Set.of(applicationBundlesConfigKey, platformBundlesConfigKey, componentsConfigKey);
- this.configurer = new ConfigRetriever(bootstrapKeys, subscriberFactory::getSubscriber);
+ this.configurer = new ConfigRetriever(bootstrapKeys, subscriberFactory);
}
public Container(SubscriberFactory subscriberFactory, String configId, ComponentDeconstructor componentDeconstructor) {
diff --git a/container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java b/container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java
index bba5675e458..99ea6a4ee58 100644
--- a/container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java
+++ b/container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java
@@ -19,7 +19,6 @@ import org.junit.rules.ExpectedException;
import java.util.Collections;
import java.util.HashSet;
-import java.util.Optional;
import java.util.Set;
import static org.hamcrest.CoreMatchers.instanceOf;
@@ -108,11 +107,11 @@ public class ConfigRetrieverTest {
private ConfigRetriever createConfigRetriever() {
String configId = dirConfigSource.configId();
- CloudSubscriberFactory subscriber = new CloudSubscriberFactory(dirConfigSource.configSource());
+ CloudSubscriberFactory subscriberFactory = new CloudSubscriberFactory(dirConfigSource.configSource());
Set<ConfigKey<? extends ConfigInstance>> keys = new HashSet<>();
keys.add(new ConfigKey<>(Bootstrap1Config.class, configId));
keys.add(new ConfigKey<>(Bootstrap2Config.class, configId));
- return new ConfigRetriever(keys, keySet -> subscriber.getSubscriber(keySet));
+ return new ConfigRetriever(keys, subscriberFactory);
}
private void writeConfig(String name, String contents) {