summaryrefslogtreecommitdiffstats
path: root/container-disc/src
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2019-08-28 13:36:28 +0200
committerHarald Musum <musum@verizonmedia.com>2019-08-28 13:36:28 +0200
commitfcc8294dedcee228c088c85e6c3f95cbc5a2ba1b (patch)
treeeac11866cad0dacbbe99bb6ab5dc3fd12b8d4ea7 /container-disc/src
parent64d9e97518813952fd1d64811fec0b1505342bfa (diff)
Use config subscriber for slobroks config
Diffstat (limited to 'container-disc/src')
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java b/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java
index c57149748e7..634d3fafdd1 100644
--- a/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java
+++ b/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java
@@ -37,6 +37,7 @@ import com.yahoo.jrt.slobrok.api.Register;
import com.yahoo.jrt.slobrok.api.SlobrokList;
import com.yahoo.log.LogLevel;
import com.yahoo.log.LogSetup;
+import com.yahoo.messagebus.network.rpc.SlobrokConfigSubscriber;
import com.yahoo.net.HostName;
import com.yahoo.vespa.config.ConfigKey;
import com.yahoo.yolean.Exceptions;
@@ -79,6 +80,7 @@ public final class ConfiguredApplication implements Application {
private final ContainerDiscApplication applicationWithLegacySetup;
private final OsgiFramework osgiFramework;
private final com.yahoo.jdisc.Timer timerSingleton;
+ private final SlobrokConfigSubscriber slobrokConfigSubscriber;
//TODO: FilterChainRepository should instead always be set up in the model.
private final FilterChainRepository defaultFilterChainRepository =
@@ -124,6 +126,7 @@ public final class ConfiguredApplication implements Application {
this.timerSingleton = timer;
this.subscriberFactory = subscriberFactory;
this.configId = System.getProperty("config.id");
+ this.slobrokConfigSubscriber = new SlobrokConfigSubscriber(configId);
this.restrictedOsgiFramework = new DisableOsgiFramework(new RestrictedBundleContext(osgiFramework.bundleContext()));
applicationWithLegacySetup = new ContainerDiscApplication(configId);
@@ -132,8 +135,7 @@ public final class ConfiguredApplication implements Application {
@Override
public void start() {
qrConfig = getConfig(QrConfig.class);
- SlobroksConfig slobroksConfig = getConfig(SlobroksConfig.class);
- slobrokRegistrator = registerInSlobrok(slobroksConfig, qrConfig);
+ slobrokRegistrator = registerInSlobrok(slobrokConfigSubscriber, qrConfig);
hackToInitializeServer(qrConfig);
@@ -150,7 +152,7 @@ public final class ConfiguredApplication implements Application {
* The container has no rpc methods, but we still need an RPC sever
* to register in Slobrok to enable orchestration
*/
- private Register registerInSlobrok(SlobroksConfig slobrokConfig, QrConfig qrConfig) {
+ private Register registerInSlobrok(SlobrokConfigSubscriber slobrokConfigSubscriber, QrConfig qrConfig) {
if ( ! qrConfig.rpc().enabled()) return null;
// 1. Set up RPC server
@@ -164,8 +166,7 @@ public final class ConfiguredApplication implements Application {
}
// 2. Register it in slobrok
- SlobrokList slobrokList = new SlobrokList();
- slobrokList.setup(slobrokConfig.slobrok().stream().map(SlobroksConfig.Slobrok::connectionspec).toArray(String[]::new));
+ SlobrokList slobrokList = slobrokConfigSubscriber.getSlobroks();
Spec mySpec = new Spec(HostName.getLocalhost(), acceptor.port());
slobrokRegistrator = new Register(supervisor, slobrokList, mySpec);
slobrokRegistrator.registerName(qrConfig.rpc().slobrokId());