aboutsummaryrefslogtreecommitdiffstats
path: root/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java
diff options
context:
space:
mode:
Diffstat (limited to 'config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java')
-rw-r--r--config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java38
1 files changed, 10 insertions, 28 deletions
diff --git a/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java b/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java
index ee843088086..e8fc5a94645 100644
--- a/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java
+++ b/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java
@@ -11,13 +11,15 @@ import com.yahoo.jrt.Supervisor;
import com.yahoo.jrt.Target;
import com.yahoo.jrt.Transport;
import com.yahoo.log.LogLevel;
-import com.yahoo.vespa.config.*;
+import com.yahoo.vespa.config.ConfigCacheKey;
+import com.yahoo.vespa.config.JRTConnectionPool;
+import com.yahoo.vespa.config.RawConfig;
+import com.yahoo.vespa.config.TimingValues;
import com.yahoo.vespa.config.protocol.JRTServerConfigRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import java.util.concurrent.DelayQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -42,7 +44,7 @@ class RpcConfigSourceClient implements ConfigSourceClient {
private final TimingValues timingValues;
private final ExecutorService exec;
- private final Map<ConfigSourceSet, JRTConfigRequester> requesterPool;
+ private final JRTConfigRequester requester;
RpcConfigSourceClient(RpcServer rpcServer,
@@ -57,20 +59,7 @@ class RpcConfigSourceClient implements ConfigSourceClient {
this.timingValues = timingValues;
checkConfigSources();
exec = Executors.newCachedThreadPool(new DaemonThreadFactory("subscriber-"));
- requesterPool = createRequesterPool(configSourceSet, timingValues);
- }
-
- /**
- * Creates a requester (connection) pool of one entry, to be used each time this {@link RpcConfigSourceClient} is used
- * @param ccs a {@link ConfigSourceSet}
- * @param timingValues a {@link TimingValues}
- * @return requester map
- */
- private Map<ConfigSourceSet, JRTConfigRequester> createRequesterPool(ConfigSourceSet ccs, TimingValues timingValues) {
- Map<ConfigSourceSet, JRTConfigRequester> ret = new HashMap<>();
- if (ccs.getSources().isEmpty()) return ret; // unit test, just skip creating any requester
- ret.put(ccs, new JRTConfigRequester(new JRTConnectionPool(ccs), timingValues));
- return ret;
+ requester = new JRTConfigRequester(new JRTConnectionPool(configSourceSet), timingValues);
}
/**
@@ -153,7 +142,7 @@ class RpcConfigSourceClient implements ConfigSourceClient {
} else {
log.log(LogLevel.DEBUG, () -> "Could not find good config in cache, creating subscriber for: " + configCacheKey);
UpstreamConfigSubscriber subscriber = new UpstreamConfigSubscriber(input, this, configSourceSet,
- timingValues, requesterPool, memoryCache);
+ timingValues, requester, memoryCache);
try {
subscriber.subscribe();
activeSubscribers.put(configCacheKey, subscriber);
@@ -183,25 +172,18 @@ class RpcConfigSourceClient implements ConfigSourceClient {
activeSubscribers.clear();
}
exec.shutdown();
- for (JRTConfigRequester requester : requesterPool.values()) {
- requester.close();
- }
+ requester.close();
}
@Override
public String getActiveSourceConnection() {
- if (requesterPool.get(configSourceSet) != null) {
- return requesterPool.get(configSourceSet).getConnectionPool().getCurrent().getAddress();
- } else {
- return "";
- }
+ return requester.getConnectionPool().getCurrent().getAddress();
}
@Override
public List<String> getSourceConnections() {
ArrayList<String> ret = new ArrayList<>();
- final JRTConfigRequester jrtConfigRequester = requesterPool.get(configSourceSet);
- if (jrtConfigRequester != null) {
+ if (configSourceSet != null) {
ret.addAll(configSourceSet.getSources());
}
return ret;