diff options
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.java | 39 |
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(); + } + + +} |