diff options
author | Arne Juul <arnej@yahoo-inc.com> | 2018-01-05 12:28:50 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahoo-inc.com> | 2018-01-05 12:28:50 +0000 |
commit | f7472440472c647ba1def181c57d00689670e877 (patch) | |
tree | e56902ab6ccddfb2ebe1e774405da57fff50d2d4 /vespaclient-container-plugin | |
parent | 30c0792d67d69fc08991b28126e5d636a7ea1e34 (diff) |
use LoggingRequestHandler.Context in constructors
* this implicitly wires in a Metric, allowing handler invocations
to be measured in the ThreadedRequestHandler superclass.
Diffstat (limited to 'vespaclient-container-plugin')
9 files changed, 37 insertions, 23 deletions
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/RestApi.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/RestApi.java index 5e0fea8ab7d..d5d6a0dc40b 100644 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/RestApi.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/RestApi.java @@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.google.inject.Inject; import com.fasterxml.jackson.databind.node.ObjectNode; +import com.yahoo.jdisc.Metric; import com.yahoo.container.handler.ThreadpoolConfig; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; @@ -60,9 +61,11 @@ public class RestApi extends LoggingRequestHandler { private final AtomicInteger threadsAvailableForApi; @Inject - public RestApi(Executor executor, AccessLog accessLog, DocumentmanagerConfig documentManagerConfig, - LoadTypeConfig loadTypeConfig, ThreadpoolConfig threadpoolConfig, MetricReceiver metricReceiver) { - super(executor, accessLog); + public RestApi(LoggingRequestHandler.Context parentCtx, DocumentmanagerConfig documentManagerConfig, + LoadTypeConfig loadTypeConfig, ThreadpoolConfig threadpoolConfig, + MetricReceiver metricReceiver) + { + super(parentCtx); MessageBusParams params = new MessageBusParams(new LoadTypeSet(loadTypeConfig)); params.setDocumentmanagerConfig(documentManagerConfig); this.operationHandler = new OperationHandlerImpl(new MessageBusDocumentAccess(params), metricReceiver); @@ -82,7 +85,7 @@ public class RestApi extends LoggingRequestHandler { AccessLog accessLog, OperationHandler operationHandler, int threadsAvailable) { - super(executor, accessLog); + super(executor, accessLog, null); this.operationHandler = operationHandler; this.threadsAvailableForApi = new AtomicInteger(threadsAvailable); } diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandler.java b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandler.java index ddc652dedbb..61ff84cfdaa 100644 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandler.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandler.java @@ -61,24 +61,22 @@ public class FeedHandler extends LoggingRequestHandler { @Inject public FeedHandler( - Executor executor, + LoggingRequestHandler.Context parentCtx, DocumentmanagerConfig documentManagerConfig, SessionCache sessionCache, - Metric metric, - AccessLog accessLog, ThreadpoolConfig threadpoolConfig, MetricReceiver metricReceiver) throws Exception { - super(executor, accessLog, metric); + super(parentCtx); DocumentApiMetrics metricsHelper = new DocumentApiMetrics(metricReceiver, "vespa.http.server"); - feedHandlerV3 = new FeedHandlerV3(executor, documentManagerConfig, sessionCache, metric, accessLog, threadpoolConfig, metricsHelper); + feedHandlerV3 = new FeedHandlerV3(parentCtx, documentManagerConfig, sessionCache, threadpoolConfig, metricsHelper); docTypeManager = createDocumentManager(documentManagerConfig); clients = new HashMap<>(); this.sessionCache = sessionCache; sessionId = new AtomicLong(new Random(System.currentTimeMillis()).nextLong()); - feedReplyHandler = new FeedReplyReader(metric, metricsHelper); + feedReplyHandler = new FeedReplyReader(parentCtx.getMetric(), metricsHelper); cron = new ScheduledThreadPoolExecutor(1, ThreadFactoryFactory.getThreadFactory("feedhandler.cron")); cron.scheduleWithFixedDelay(new CleanClients(), 16, 11, TimeUnit.MINUTES); - this.metric = metric; + this.metric = parentCtx.getMetric(); this.localHostname = resolveLocalHostname(); } diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandlerV3.java b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandlerV3.java index 28bcb50a144..4cb82e74db6 100644 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandlerV3.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandlerV3.java @@ -49,20 +49,18 @@ public class FeedHandlerV3 extends LoggingRequestHandler { private static final Logger log = Logger.getLogger(FeedHandlerV3.class.getName()); public FeedHandlerV3( - Executor executor, + LoggingRequestHandler.Context parentCtx, DocumentmanagerConfig documentManagerConfig, SessionCache sessionCache, - Metric metric, - AccessLog accessLog, ThreadpoolConfig threadpoolConfig, DocumentApiMetrics metricsHelper) throws Exception { - super(executor, accessLog, metric); + super(parentCtx); docTypeManager = new DocumentTypeManager(documentManagerConfig); this.sessionCache = sessionCache; - feedReplyHandler = new FeedReplyReader(metric, metricsHelper); + feedReplyHandler = new FeedReplyReader(parentCtx.getMetric(), metricsHelper); cron = new ScheduledThreadPoolExecutor(1, ThreadFactoryFactory.getThreadFactory("feedhandlerv3.cron")); cron.scheduleWithFixedDelay(this::removeOldClients, 16, 11, TimeUnit.MINUTES); - this.metric = metric; + this.metric = parentCtx.getMetric(); // 40% of the threads can be blocking on feeding before we deny requests. if (threadpoolConfig != null) { threadsAvailableForFeeding = new AtomicInteger(Math.max((int) (0.4 * threadpoolConfig.maxthreads()), 1)); diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/feedhandler/FeedHandlerTest.java b/vespaclient-container-plugin/src/test/java/com/yahoo/feedhandler/FeedHandlerTest.java index a3d4da1c60c..c0cc907c671 100644 --- a/vespaclient-container-plugin/src/test/java/com/yahoo/feedhandler/FeedHandlerTest.java +++ b/vespaclient-container-plugin/src/test/java/com/yahoo/feedhandler/FeedHandlerTest.java @@ -39,7 +39,10 @@ public class FeedHandlerTest { private final CountDownLatch countDownLatch = new CountDownLatch(1); public TestFeedHandler() throws Exception { - super(Executors.newCachedThreadPool(), null, null, mock(Metric.class), mock(AccessLog.class), null, MetricReceiver.nullImplementation); + super(new FeedHandler.Context(Executors.newCachedThreadPool(), + mock(AccessLog.class), + mock(Metric.class)), + null, null, null, MetricReceiver.nullImplementation); } /** diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/feedhandler/v3/FeedTesterV3.java b/vespaclient-container-plugin/src/test/java/com/yahoo/feedhandler/v3/FeedTesterV3.java index e237978878e..b5c3998432c 100644 --- a/vespaclient-container-plugin/src/test/java/com/yahoo/feedhandler/v3/FeedTesterV3.java +++ b/vespaclient-container-plugin/src/test/java/com/yahoo/feedhandler/v3/FeedTesterV3.java @@ -101,7 +101,11 @@ public class FeedTesterV3 { Executor threadPool = Executors.newCachedThreadPool(); DocumentmanagerConfig docMan = new DocumentmanagerConfig(new DocumentmanagerConfig.Builder().enablecompression(true)); FeedHandlerV3 feedHandlerV3 = new FeedHandlerV3( - threadPool, docMan, null /* session cache */ , new NullFeedMetric(), AccessLog.voidAccessLog(), null, new DocumentApiMetrics(MetricReceiver.nullImplementation, "test")) { + new FeedHandlerV3.Context(threadPool, AccessLog.voidAccessLog(), new NullFeedMetric()), + docMan, + null /* session cache */, + null /* thread pool config */, + new DocumentApiMetrics(MetricReceiver.nullImplementation, "test")) { @Override protected ReferencedResource<SharedSourceSession> retainSource( SessionCache sessionCache, SourceSessionParams sessionParams) { diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/V2ErrorsInResultTestCase.java b/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/V2ErrorsInResultTestCase.java index f1cf9b2cfa1..47745b29032 100644 --- a/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/V2ErrorsInResultTestCase.java +++ b/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/V2ErrorsInResultTestCase.java @@ -60,7 +60,10 @@ public class V2ErrorsInResultTestCase { private static class LessConfiguredHandler extends FeedHandler { public LessConfiguredHandler(Executor executor) throws Exception { - super(executor, null, null, new DummyMetric(), AccessLog.voidAccessLog(), null, MetricReceiver.nullImplementation); + super(new FeedHandler.Context(executor, + AccessLog.voidAccessLog(), + new DummyMetric()), + null, null, null, MetricReceiver.nullImplementation); } diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/V2ExternalFeedTestCase.java b/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/V2ExternalFeedTestCase.java index a0eb1323c53..9960d98f7f1 100644 --- a/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/V2ExternalFeedTestCase.java +++ b/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/V2ExternalFeedTestCase.java @@ -115,7 +115,10 @@ public class V2ExternalFeedTestCase { volatile DataFormat lastFormatSeen; public LessConfiguredHandler(Executor executor) throws Exception { - super(executor, null, null, new DummyMetric(), AccessLog.voidAccessLog(), null, MetricReceiver.nullImplementation); + super(new FeedHandler.Context(executor, + AccessLog.voidAccessLog(), + new DummyMetric()), + null, null, null, MetricReceiver.nullImplementation); } @Override diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/V2FailingMessagebusTestCase.java b/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/V2FailingMessagebusTestCase.java index 8e8da1bed99..6290c22f694 100644 --- a/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/V2FailingMessagebusTestCase.java +++ b/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/V2FailingMessagebusTestCase.java @@ -61,7 +61,8 @@ public class V2FailingMessagebusTestCase { private class LessConfiguredHandler extends FeedHandler { public LessConfiguredHandler(Executor executor) throws Exception { - super(executor, null, null, new DummyMetric(), AccessLog.voidAccessLog(), null, MetricReceiver.nullImplementation); + super(new FeedHandler.Context(executor, AccessLog.voidAccessLog(), new DummyMetric()), + null, null, null, MetricReceiver.nullImplementation); } @Override diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/V2NoXmlReaderTestCase.java b/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/V2NoXmlReaderTestCase.java index c044a5963cb..633477dcc79 100644 --- a/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/V2NoXmlReaderTestCase.java +++ b/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/V2NoXmlReaderTestCase.java @@ -58,7 +58,8 @@ public class V2NoXmlReaderTestCase { private static class LessConfiguredHandler extends FeedHandler { public LessConfiguredHandler(Executor executor) throws Exception { - super(executor, null, null, new DummyMetric(), AccessLog.voidAccessLog(), null, MetricReceiver.nullImplementation); + super(new FeedHandler.Context(executor, AccessLog.voidAccessLog(), new DummyMetric()), + null, null, null, MetricReceiver.nullImplementation); } |