summaryrefslogtreecommitdiffstats
path: root/container-disc
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2019-09-01 20:32:50 +0200
committerHarald Musum <musum@verizonmedia.com>2019-09-01 20:32:50 +0200
commit79ad6c8fa853eba080e9e9ead89fd98afca6a572 (patch)
treee4e9d18d36baf296dd12d68c9236d544a0e2332b /container-disc
parentfcc8294dedcee228c088c85e6c3f95cbc5a2ba1b (diff)
parent4fbe8e1b9f448ada9fbe3a6c5b532440282a3f51 (diff)
Merge branch 'master' into hmusum/use-config-subscriber-for-slobrok-config
Diffstat (limited to 'container-disc')
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java30
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/ContainerDiscApplication.java30
2 files changed, 11 insertions, 49 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 634d3fafdd1..e2eb664c8a5 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
@@ -4,7 +4,6 @@ package com.yahoo.container.jdisc;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
import com.google.inject.Injector;
-import com.yahoo.cloud.config.SlobroksConfig;
import com.yahoo.component.provider.ComponentRegistry;
import com.yahoo.concurrent.DaemonThreadFactory;
import com.yahoo.config.ConfigInstance;
@@ -17,6 +16,7 @@ import com.yahoo.container.di.config.Subscriber;
import com.yahoo.container.di.config.SubscriberFactory;
import com.yahoo.container.http.filter.FilterChainRepository;
import com.yahoo.container.jdisc.component.Deconstructor;
+import com.yahoo.container.jdisc.messagebus.SessionCache;
import com.yahoo.container.jdisc.metric.DisableGuiceMetric;
import com.yahoo.jdisc.Metric;
import com.yahoo.jdisc.application.Application;
@@ -77,10 +77,10 @@ public final class ConfiguredApplication implements Application {
private final SubscriberFactory subscriberFactory;
private final ContainerActivator activator;
private final String configId;
- private final ContainerDiscApplication applicationWithLegacySetup;
private final OsgiFramework osgiFramework;
private final com.yahoo.jdisc.Timer timerSingleton;
private final SlobrokConfigSubscriber slobrokConfigSubscriber;
+ private final SessionCache sessionCache;
//TODO: FilterChainRepository should instead always be set up in the model.
private final FilterChainRepository defaultFilterChainRepository =
@@ -120,16 +120,15 @@ public final class ConfiguredApplication implements Application {
public ConfiguredApplication(ContainerActivator activator,
OsgiFramework osgiFramework,
com.yahoo.jdisc.Timer timer,
- SubscriberFactory subscriberFactory) throws ListenFailedException {
+ SubscriberFactory subscriberFactory) {
this.activator = activator;
this.osgiFramework = osgiFramework;
this.timerSingleton = timer;
this.subscriberFactory = subscriberFactory;
this.configId = System.getProperty("config.id");
this.slobrokConfigSubscriber = new SlobrokConfigSubscriber(configId);
+ this.sessionCache = new SessionCache(configId);
this.restrictedOsgiFramework = new DisableOsgiFramework(new RestrictedBundleContext(osgiFramework.bundleContext()));
-
- applicationWithLegacySetup = new ContainerDiscApplication(configId);
}
@Override
@@ -141,7 +140,7 @@ public final class ConfiguredApplication implements Application {
ContainerBuilder builder = createBuilderWithGuiceBindings();
configurer = createConfigurer(builder.guiceModules().activate());
- intitializeAndActivateContainer(builder);
+ initializeAndActivateContainer(builder);
startReconfigurerThread();
portWatcher = new Thread(this::watchPortChange);
portWatcher.setDaemon(true);
@@ -184,7 +183,6 @@ public final class ConfiguredApplication implements Application {
supervisor.transport().shutdown().join();
}
- @SuppressWarnings("deprecation")
private static void hackToInitializeServer(QrConfig config) {
try {
Container.get().setupFileAcquirer(config.filedistributor());
@@ -225,7 +223,7 @@ public final class ConfiguredApplication implements Application {
}
}
- private void intitializeAndActivateContainer(ContainerBuilder builder) {
+ private void initializeAndActivateContainer(ContainerBuilder builder) {
addHandlerBindings(builder, Container.get().getRequestHandlerRegistry(),
configurer.getComponent(ApplicationContext.class).discBindingsConfig);
installServerProviders(builder);
@@ -253,7 +251,7 @@ public final class ConfiguredApplication implements Application {
// Block until new config arrives, and it should be applied
configurer.getNewComponentGraph(builder.guiceModules().activate(), qrConfig.restartOnDeploy());
- intitializeAndActivateContainer(builder);
+ initializeAndActivateContainer(builder);
} catch (ConfigInterruptedException e) {
break;
} catch (Exception | LinkageError e) { // LinkageError: OSGi problems
@@ -324,9 +322,9 @@ public final class ConfiguredApplication implements Application {
bind(OsgiFramework.class).toInstance(restrictedOsgiFramework);
bind(com.yahoo.jdisc.Timer.class).toInstance(timerSingleton);
bind(FilterChainRepository.class).toInstance(defaultFilterChainRepository);
+ bind(SessionCache.class).toInstance(sessionCache); // Needed by e.g. FeedHandler
}
});
- modules.install(applicationWithLegacySetup.getMbusBindings());
}
@Override
@@ -377,15 +375,9 @@ public final class ConfiguredApplication implements Application {
shutdownDeadlineExecutor = new ScheduledThreadPoolExecutor(1, new DaemonThreadFactory("Shutdown deadline timer"));
shutdownDeadlineExecutor.setExecuteExistingDelayedTasksAfterShutdownPolicy(false);
long delayMillis = 50 * 1000;
- shutdownDeadlineExecutor.schedule(new Runnable() {
-
- @Override
- public void run() {
- com.yahoo.protect.Process.logAndDie(
- "Timed out waiting for application shutdown. Please check that all your request handlers " +
- "drain their request content channels.", true);
- }
- }, delayMillis, TimeUnit.MILLISECONDS);
+ shutdownDeadlineExecutor.schedule(() -> com.yahoo.protect.Process.logAndDie(
+ "Timed out waiting for application shutdown. Please check that all your request handlers " +
+ "drain their request content channels.", true), delayMillis, TimeUnit.MILLISECONDS);
}
private static void addHandlerBindings(ContainerBuilder builder,
diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/ContainerDiscApplication.java b/container-disc/src/main/java/com/yahoo/container/jdisc/ContainerDiscApplication.java
deleted file mode 100644
index 0d2224f8c1c..00000000000
--- a/container-disc/src/main/java/com/yahoo/container/jdisc/ContainerDiscApplication.java
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.container.jdisc;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.Inject;
-import com.yahoo.container.jdisc.messagebus.SessionCache;
-import com.yahoo.jrt.ListenFailedException;
-
-/**
- * TODO: The contents of this class can probably be moved into ConfiguredApplication
- */
-public class ContainerDiscApplication {
-
- private SessionCache sessionCache;
-
- @Inject
- public ContainerDiscApplication(String configId) throws ListenFailedException {
- sessionCache = new SessionCache(configId);
- }
-
- AbstractModule getMbusBindings() {
- return new AbstractModule() {
- @Override
- protected void configure() {
- bind(SessionCache.class).toInstance(sessionCache);
- }
- };
- }
-
-}