aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/container/core/documentapi/DocumentAccessProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-core/src/main/java/com/yahoo/container/core/documentapi/DocumentAccessProvider.java')
-rw-r--r--container-core/src/main/java/com/yahoo/container/core/documentapi/DocumentAccessProvider.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/core/documentapi/DocumentAccessProvider.java b/container-core/src/main/java/com/yahoo/container/core/documentapi/DocumentAccessProvider.java
new file mode 100644
index 00000000000..5e3f873bba9
--- /dev/null
+++ b/container-core/src/main/java/com/yahoo/container/core/documentapi/DocumentAccessProvider.java
@@ -0,0 +1,39 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.container.core.documentapi;
+
+import com.google.inject.Inject;
+import com.yahoo.cloud.config.SlobroksConfig;
+import com.yahoo.component.AbstractComponent;
+import com.yahoo.container.di.componentgraph.Provider;
+import com.yahoo.document.config.DocumentmanagerConfig;
+import com.yahoo.messagebus.MessagebusConfig;
+import com.yahoo.vespa.config.content.LoadTypeConfig;
+
+/**
+ * Lets a lazily initialised DocumentAccess forwarding to a real MessageBusDocumentAccess be injected in containers.
+ *
+ * @author jonmv
+ */
+public class DocumentAccessProvider extends AbstractComponent implements Provider<VespaDocumentAccess> {
+
+ private final VespaDocumentAccess access;
+
+ @Inject
+ // TODO jonmv: Have Slobrok and RPC config injected as well.
+ public DocumentAccessProvider(DocumentmanagerConfig documentmanagerConfig, LoadTypeConfig loadTypeConfig,
+ SlobroksConfig slobroksConfig, MessagebusConfig messagebusConfig) {
+ this.access = new VespaDocumentAccess(documentmanagerConfig, loadTypeConfig, slobroksConfig, messagebusConfig);
+ }
+
+ @Override
+ public VespaDocumentAccess get() {
+ return access;
+ }
+
+ @Override
+ public void deconstruct() {
+ access.shutdown();
+ }
+
+
+}