summaryrefslogtreecommitdiffstats
path: root/container-di
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2020-09-14 12:41:29 +0200
committerGitHub <noreply@github.com>2020-09-14 12:41:29 +0200
commitf3f0e30ca61aaae20193671e2976a2300922757f (patch)
tree7479e2abb3ec2aa948b264b197e586dad71092a9 /container-di
parent79700366d17788c61080662f83117e8f8800b1bc (diff)
parent3a7ae7bfd3087a4f0011e2d6138aa09eee554bc3 (diff)
Merge pull request #14196 from vespa-engine/gjoranv/remove-duplicate-code
Remove code duplication by letting getConfigs call getConfigsOnce
Diffstat (limited to 'container-di')
-rw-r--r--container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java28
1 files changed, 7 insertions, 21 deletions
diff --git a/container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java b/container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java
index d8350ec2f6b..f892fe410a8 100644
--- a/container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java
+++ b/container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java
@@ -45,36 +45,24 @@ public final class ConfigRetriever {
this.componentSubscriber = subscribe.apply(componentSubscriberKeys);
}
- /**
- * Loop forever until we get config
- */
public ConfigSnapshot getConfigs(Set<ConfigKey<? extends ConfigInstance>> componentConfigKeys,
long leastGeneration,
boolean restartOnRedeploy) {
+ // Loop until we get config.
while (true) {
- if (!Sets.intersection(componentConfigKeys, bootstrapKeys).isEmpty())
- throw new IllegalArgumentException("Component config keys [" + componentConfigKeys +
- "] overlaps with bootstrap config keys [" + bootstrapKeys + "]");
-
- log.log(FINE, "getConfigs: " + componentConfigKeys);
- Set<ConfigKey<? extends ConfigInstance>> allKeys = new HashSet<>(componentConfigKeys);
- allKeys.addAll(bootstrapKeys);
- setupComponentSubscriber(allKeys);
-
- Optional<ConfigSnapshot> maybeSnapshot = getConfigsOptional(leastGeneration, restartOnRedeploy);
+ Optional<ConfigSnapshot> maybeSnapshot = getConfigsOnce(componentConfigKeys, leastGeneration, restartOnRedeploy);
if (maybeSnapshot.isPresent()) {
- ConfigSnapshot snapshot = maybeSnapshot.get();
- resetComponentSubscriberIfBootstrap(snapshot);
- return snapshot;
+ var configSnapshot = maybeSnapshot.get();
+ resetComponentSubscriberIfBootstrap(configSnapshot);
+ return configSnapshot;
}
}
}
- public ConfigSnapshot getConfigs(Set<ConfigKey<? extends ConfigInstance>> componentConfigKeys, long leastGeneration) {
+ ConfigSnapshot getConfigs(Set<ConfigKey<? extends ConfigInstance>> componentConfigKeys, long leastGeneration) {
return getConfigs(componentConfigKeys, leastGeneration, false);
}
- // TODO: duplicate code, let getConfigs call this.
Optional<ConfigSnapshot> getConfigsOnce(Set<ConfigKey<? extends ConfigInstance>> componentConfigKeys,
long leastGeneration,
boolean restartOnRedeploy) {
@@ -88,9 +76,7 @@ public final class ConfigRetriever {
allKeys.addAll(bootstrapKeys);
setupComponentSubscriber(allKeys);
- Optional<ConfigSnapshot> maybeSnapshot = getConfigsOptional(leastGeneration, restartOnRedeploy);
- maybeSnapshot.ifPresent(this::resetComponentSubscriberIfBootstrap);
- return maybeSnapshot;
+ return getConfigsOptional(leastGeneration, restartOnRedeploy);
}
private Optional<ConfigSnapshot> getConfigsOptional(long leastGeneration, boolean restartOnRedeploy) {