summaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-05-30 11:39:26 +0200
committerJon Bratseth <bratseth@oath.com>2018-05-30 11:39:26 +0200
commit4919fb84be7edc03f7c7feb0080ff0c5f705f654 (patch)
tree4eb3d1a1032c6a329b05acc05af4acc4eb0594e8 /container-core
parent9bfecc00be5716933ec305aa9161f68c4dca4200 (diff)
Run reconfigurer thread even when restartOnRedeploy is true
Diffstat (limited to 'container-core')
-rw-r--r--container-core/src/main/java/com/yahoo/container/Server.java6
-rw-r--r--container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java19
-rw-r--r--container-core/src/main/java/com/yahoo/container/core/config/testutil/HandlersConfigurerTestWrapper.java2
3 files changed, 16 insertions, 11 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/Server.java b/container-core/src/main/java/com/yahoo/container/Server.java
index 207050a8d88..2eec2e36c47 100644
--- a/container-core/src/main/java/com/yahoo/container/Server.java
+++ b/container-core/src/main/java/com/yahoo/container/Server.java
@@ -19,7 +19,7 @@ public class Server {
private ConfigSubscriber subscriber = new ConfigSubscriber();
/** The OSGi container instance of this server */
- private Container container=Container.get();
+ private Container container = Container.get();
/** A short string which is different for all the qrserver instances on a given node. */
private String localServerDiscriminator = "qrserver.0";
@@ -48,7 +48,6 @@ public class Server {
return instance;
}
-
private void initRpcServer(Rpc rpcConfig) {
if (rpcConfig.enabled()) {
ContainerRpcAdaptor rpcAdaptor = container.getRpcAdaptor();
@@ -57,8 +56,7 @@ public class Server {
}
}
- /** Ugly hack, see Container.resetInstance
- **/
+ /** Ugly hack, see Container.resetInstance */
static void resetInstance() {
instance = new Server();
}
diff --git a/container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java b/container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java
index 49cacb3a09b..41e3e43f156 100644
--- a/container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java
+++ b/container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java
@@ -86,7 +86,7 @@ public class HandlersConfigurerDi {
container = new Container(subscriberFactory, configId, deconstructor, osgiWrapper);
try {
- runOnceAndEnsureRegistryHackRun(discInjector);
+ getNewConfigGraph(discInjector, false);
} catch (InterruptedException e) {
throw new RuntimeException("Interrupted while setting up handlers for the first time.");
}
@@ -138,11 +138,18 @@ public class HandlersConfigurerDi {
}
}
- public void runOnceAndEnsureRegistryHackRun(Injector discInjector) throws InterruptedException {
- currentGraph = container.runOnce(currentGraph, createFallbackInjector(vespaContainer, discInjector));
-
- RegistriesHack registriesHack = currentGraph.getInstance(RegistriesHack.class);
- assert (registriesHack != null);
+ /**
+ * Wait for new config to arrive and produce the new graph
+ *
+ * @return true if this resulted in a new graph that should be applied to the currently running container
+ */
+ public boolean getNewConfigGraph(Injector discInjector, boolean restartOnRedeploy) throws InterruptedException {
+ ComponentGraph newGraph = container.getNewConfigGraph(currentGraph, createFallbackInjector(vespaContainer, discInjector), restartOnRedeploy);
+ if (newGraph == currentGraph) return false;
+ currentGraph = newGraph;
+
+ assert (currentGraph.getInstance(RegistriesHack.class) != null); // TODO: Remove, seems quite pointless?
+ return true;
}
@SuppressWarnings("deprecation")
diff --git a/container-core/src/main/java/com/yahoo/container/core/config/testutil/HandlersConfigurerTestWrapper.java b/container-core/src/main/java/com/yahoo/container/core/config/testutil/HandlersConfigurerTestWrapper.java
index 89c73e19fe3..008ca5c1d5a 100644
--- a/container-core/src/main/java/com/yahoo/container/core/config/testutil/HandlersConfigurerTestWrapper.java
+++ b/container-core/src/main/java/com/yahoo/container/core/config/testutil/HandlersConfigurerTestWrapper.java
@@ -112,7 +112,7 @@ public class HandlersConfigurerTestWrapper {
public void reloadConfig() {
configurer.reloadConfig(++lastGeneration);
try {
- configurer.runOnceAndEnsureRegistryHackRun(Guice.createInjector());
+ configurer.getNewConfigGraph(Guice.createInjector(), false);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}