summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@oath.com>2017-10-27 17:28:16 +0200
committerHåkon Hallingstad <hakon@oath.com>2017-10-27 17:28:16 +0200
commit1eb73a76b162e0ef7488d14fec5567210afba86a (patch)
tree19f91561824c7f25886634256fb5653f2aaba6c3
parent78cd439b57ea869b967af581af7789c7b84ebc7f (diff)
Make exported providers for components
-rw-r--r--configserver/src/main/resources/configserver-app/services.xml4
-rw-r--r--service-monitor/pom.xml6
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitorProvider.java36
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManagerProvider.java23
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/ServiceMonitorImpl.java2
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/SlobrokMonitorManagerImpl.java4
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) {