diff options
author | Håkon Hallingstad <hakon@oath.com> | 2017-10-27 17:28:16 +0200 |
---|---|---|
committer | Håkon Hallingstad <hakon@oath.com> | 2017-10-27 17:28:16 +0200 |
commit | 1eb73a76b162e0ef7488d14fec5567210afba86a (patch) | |
tree | 19f91561824c7f25886634256fb5653f2aaba6c3 | |
parent | 78cd439b57ea869b967af581af7789c7b84ebc7f (diff) |
Make exported providers for components
6 files changed, 68 insertions, 7 deletions
diff --git a/configserver/src/main/resources/configserver-app/services.xml b/configserver/src/main/resources/configserver-app/services.xml index 602b4793f6e..983d4c29a9f 100644 --- a/configserver/src/main/resources/configserver-app/services.xml +++ b/configserver/src/main/resources/configserver-app/services.xml @@ -43,8 +43,8 @@ <preprocess:include file='config-models.xml' required='false' /> <preprocess:include file='node-repository.xml' required='false' /> <preprocess:include file='hosted-vespa/routing-status.xml' required='false' /> - <component id="com.yahoo.vespa.service.monitor.internal.SlobrokMonitorManagerImpl" bundle="orchestrator" /> - <component id="com.yahoo.vespa.service.monitor.internal.ServiceMonitorImpl" bundle="orchestrator" /> + <component id="com.yahoo.vespa.service.monitor.SlobrokMonitorManagerProvider" bundle="orchestrator" /> + <component id="com.yahoo.vespa.service.monitor.ServiceMonitorProvider" bundle="orchestrator" /> <component id="com.yahoo.vespa.orchestrator.ServiceMonitorInstanceLookupService" bundle="orchestrator" /> <component id="com.yahoo.vespa.orchestrator.status.ZookeeperStatusService" bundle="orchestrator" /> <component id="com.yahoo.vespa.orchestrator.controller.RetryingClusterControllerClientFactory" bundle="orchestrator" /> diff --git a/service-monitor/pom.xml b/service-monitor/pom.xml index c63bdf35574..4240a4980ff 100644 --- a/service-monitor/pom.xml +++ b/service-monitor/pom.xml @@ -23,6 +23,12 @@ </dependency> <dependency> <groupId>com.yahoo.vespa</groupId> + <artifactId>container-di</artifactId> + <version>${project.version}</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>com.yahoo.vespa</groupId> <artifactId>jdisc_core</artifactId> <version>${project.version}</version> <scope>provided</scope> diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitorProvider.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitorProvider.java new file mode 100644 index 00000000000..b1af48f885d --- /dev/null +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitorProvider.java @@ -0,0 +1,36 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.service.monitor; + +import com.google.inject.Inject; +import com.yahoo.cloud.config.ConfigserverConfig; +import com.yahoo.config.model.api.SuperModelProvider; +import com.yahoo.container.di.componentgraph.Provider; +import com.yahoo.jdisc.Metric; +import com.yahoo.jdisc.Timer; +import com.yahoo.vespa.service.monitor.internal.ServiceMonitorImpl; +import com.yahoo.vespa.service.monitor.internal.SlobrokMonitorManagerImpl; + +public class ServiceMonitorProvider implements Provider<ServiceMonitor> { + private final ServiceMonitorImpl serviceMonitor; + + @Inject + public ServiceMonitorProvider(SuperModelProvider superModelProvider, + ConfigserverConfig configserverConfig, + SlobrokMonitorManagerImpl slobrokMonitorManager, + Metric metric, + Timer timer) { + serviceMonitor = new ServiceMonitorImpl( + superModelProvider, + configserverConfig, + slobrokMonitorManager, + metric, + timer); + } + @Override + public ServiceMonitor get() { + return serviceMonitor; + } + + @Override + public void deconstruct() {} +} diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManagerProvider.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManagerProvider.java new file mode 100644 index 00000000000..ca523ca5fdf --- /dev/null +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManagerProvider.java @@ -0,0 +1,23 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.service.monitor; + +import com.google.inject.Inject; +import com.yahoo.container.di.componentgraph.Provider; +import com.yahoo.vespa.service.monitor.internal.SlobrokMonitorManagerImpl; + +public class SlobrokMonitorManagerProvider implements Provider<SlobrokMonitorManager> { + private final SlobrokMonitorManager slobrokMonitorManager; + + @Inject + public SlobrokMonitorManagerProvider() { + slobrokMonitorManager = new SlobrokMonitorManagerImpl(); + } + + @Override + public SlobrokMonitorManager get() { + return slobrokMonitorManager; + } + + @Override + public void deconstruct() {} +} diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/ServiceMonitorImpl.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/ServiceMonitorImpl.java index 282a0797912..0470d37af85 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/ServiceMonitorImpl.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/ServiceMonitorImpl.java @@ -1,7 +1,6 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.service.monitor.internal; -import com.google.inject.Inject; import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.model.api.SuperModelProvider; import com.yahoo.config.provision.Zone; @@ -25,7 +24,6 @@ public class ServiceMonitorImpl implements ServiceMonitor { private final List<String> configServerHosts; private final ServiceModelCache serviceModelCache; - @Inject public ServiceMonitorImpl(SuperModelProvider superModelProvider, ConfigserverConfig configserverConfig, SlobrokMonitorManagerImpl slobrokMonitorManager, diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/SlobrokMonitorManagerImpl.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/SlobrokMonitorManagerImpl.java index 801f4b05079..f816111f2ee 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/SlobrokMonitorManagerImpl.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/SlobrokMonitorManagerImpl.java @@ -1,7 +1,6 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.service.monitor.internal; -import com.google.inject.Inject; import com.yahoo.config.model.api.ApplicationInfo; import com.yahoo.config.model.api.SuperModel; import com.yahoo.config.model.api.SuperModelListener; @@ -28,9 +27,8 @@ public class SlobrokMonitorManagerImpl implements SuperModelListener, SlobrokMon private final Object monitor = new Object(); private final HashMap<ApplicationId, SlobrokMonitor> slobrokMonitors = new HashMap<>(); - @Inject public SlobrokMonitorManagerImpl() { - this(() -> new SlobrokMonitor()); + this(SlobrokMonitor::new); } SlobrokMonitorManagerImpl(Supplier<SlobrokMonitor> slobrokMonitorFactory) { |