summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHarald Musum <musum@oath.com>2018-04-02 21:14:51 +0200
committerHarald Musum <musum@oath.com>2018-04-02 21:14:51 +0200
commit5f9f18ea151914f722c74b6b74a22e17ecf2a587 (patch)
tree2cd1f855371b391fb5cdeee9035b5012c1eded0e /config-model
parentaed004eeb9ee3634cbb3e0dcd386aa9f31321092 (diff)
Remove DummyFileDistributionConfigProducer, not needed anymore
Simplify and move code that produces config
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java10
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java7
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/filedistribution/DummyFileDistributionConfigProducer.java35
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProducer.java24
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProvider.java10
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java6
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java3
7 files changed, 28 insertions, 67 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
index 711ea885a36..19c64d7903d 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
@@ -19,7 +19,6 @@ import com.yahoo.vespa.model.admin.monitoring.MetricsConsumer;
import com.yahoo.vespa.model.admin.monitoring.Monitoring;
import com.yahoo.vespa.model.admin.monitoring.builder.Metrics;
import com.yahoo.vespa.model.container.ContainerCluster;
-import com.yahoo.vespa.model.filedistribution.DummyFileDistributionConfigProducer;
import com.yahoo.vespa.model.filedistribution.FileDistributionConfigProducer;
import com.yahoo.vespa.model.filedistribution.FileDistributionConfigProvider;
import com.yahoo.vespa.model.filedistribution.FileDistributor;
@@ -230,14 +229,11 @@ public class Admin extends AbstractConfigProducer implements Serializable {
}
FileDistributionConfigProvider configProvider =
- new FileDistributionConfigProvider(fileDistributor,
+ new FileDistributionConfigProvider(fileDistribution,
+ fileDistributor,
host == deployHost,
host.getHost());
- DummyFileDistributionConfigProducer dummyFileDistributionConfigProducer =
- new DummyFileDistributionConfigProducer(fileDistribution,
- host.getHost().getHostname(),
- configProvider);
- fileDistribution.addFileDistributionConfigProducer(host.getHost(), dummyFileDistributionConfigProducer);
+ fileDistribution.addFileDistributionConfigProducer(host.getHost(), configProvider);
}
private boolean deployHostIsMissing(HostResource deployHost) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java
index a78e9ad30fc..96e120cae92 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java
@@ -25,9 +25,8 @@ import static com.yahoo.vespa.model.admin.monitoring.builder.PredefinedMetricSet
/**
* A base class for admin model builders, to support common functionality across versions.
*
- * @author lulf
- * @author vegardh
- * @since 5.12
+ * @author Ulf Lilleengen
+ * @author Vegard Havdal
*/
public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProducerBuilder<Admin> {
@@ -80,7 +79,7 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu
}
private FileDistributionConfigProducer getFileDistributionConfigProducer(AbstractConfigProducer parent) {
- return new FileDistributionConfigProducer.Builder().build(parent, fileRegistry, configServerSpecs);
+ return new FileDistributionConfigProducer(parent, fileRegistry, configServerSpecs);
}
private Element getChildWithFallback(Element parent, String childName, String alternativeChildName) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/DummyFileDistributionConfigProducer.java b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/DummyFileDistributionConfigProducer.java
deleted file mode 100644
index d4993d01d1c..00000000000
--- a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/DummyFileDistributionConfigProducer.java
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.model.filedistribution;
-
-import com.yahoo.cloud.config.filedistribution.FiledistributorrpcConfig;
-import com.yahoo.cloud.config.filedistribution.FilereferencesConfig;
-import com.yahoo.config.model.producer.AbstractConfigProducer;
-
-/**
- * @author hmusum
- * <p>
- * Dummy file distribution config producer, needed for serving file distribution config when there is no FiledistributorService.
- */
-public class DummyFileDistributionConfigProducer extends AbstractConfigProducer implements
- FiledistributorrpcConfig.Producer,
- FilereferencesConfig.Producer {
-
- private final FileDistributionConfigProvider configProvider;
-
- public DummyFileDistributionConfigProducer(AbstractConfigProducer parent,
- String hostname,
- FileDistributionConfigProvider configProvider) {
- super(parent, hostname);
- this.configProvider = configProvider;
- }
-
- @Override
- public void getConfig(FiledistributorrpcConfig.Builder builder) {
- configProvider.getConfig(builder);
- }
-
- @Override
- public void getConfig(FilereferencesConfig.Builder builder) {
- configProvider.getConfig(builder);
- }
-}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProducer.java b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProducer.java
index 9441b787b09..9662540e8df 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProducer.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProducer.java
@@ -13,13 +13,17 @@ import java.util.Map;
/**
* @author hmusum
* <p>
- * File distribution config producer, delegates getting config to {@link DummyFileDistributionConfigProducer} (one per host)
+ * File distribution config producer, delegates getting config to {@link FileDistributionConfigProvider} (one per host)
*/
public class FileDistributionConfigProducer extends AbstractConfigProducer {
- private final Map<Host, AbstractConfigProducer> fileDistributionConfigProducers = new IdentityHashMap<>();
+ private final Map<Host, FileDistributionConfigProvider> fileDistributionConfigProviders = new IdentityHashMap<>();
private final FileDistributor fileDistributor;
+ public FileDistributionConfigProducer(AbstractConfigProducer ancestor, FileRegistry fileRegistry, List<ConfigServerSpec> configServerSpec) {
+ this(ancestor, new FileDistributor(fileRegistry, configServerSpec));
+ }
+
private FileDistributionConfigProducer(AbstractConfigProducer parent, FileDistributor fileDistributor) {
super(parent, "filedistribution");
this.fileDistributor = fileDistributor;
@@ -29,20 +33,12 @@ public class FileDistributionConfigProducer extends AbstractConfigProducer {
return fileDistributor;
}
- public void addFileDistributionConfigProducer(Host host, AbstractConfigProducer fileDistributionConfigProducer) {
- fileDistributionConfigProducers.put(host, fileDistributionConfigProducer);
- }
-
- public static class Builder {
-
- public FileDistributionConfigProducer build(AbstractConfigProducer ancestor, FileRegistry fileRegistry, List<ConfigServerSpec> configServerSpec) {
- FileDistributor fileDistributor = new FileDistributor(fileRegistry, configServerSpec);
- return new FileDistributionConfigProducer(ancestor, fileDistributor);
- }
+ public void addFileDistributionConfigProducer(Host host, FileDistributionConfigProvider fileDistributionConfigProvider) {
+ fileDistributionConfigProviders.put(host, fileDistributionConfigProvider);
}
- public AbstractConfigProducer getConfigProducer(Host host) {
- return fileDistributionConfigProducers.get(host);
+ public FileDistributionConfigProvider getConfigProducer(Host host) {
+ return fileDistributionConfigProviders.get(host);
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProvider.java b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProvider.java
index 34e242400d3..47ee546181a 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProvider.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProvider.java
@@ -4,29 +4,35 @@ package com.yahoo.vespa.model.filedistribution;
import com.yahoo.cloud.config.filedistribution.FiledistributorrpcConfig;
import com.yahoo.cloud.config.filedistribution.FilereferencesConfig;
import com.yahoo.config.FileReference;
+import com.yahoo.config.model.producer.AbstractConfigProducer;
import com.yahoo.vespa.model.ConfigProxy;
import com.yahoo.vespa.model.Host;
import java.util.Collection;
-public class FileDistributionConfigProvider {
+public class FileDistributionConfigProvider extends AbstractConfigProducer
+ implements FiledistributorrpcConfig.Producer, FilereferencesConfig.Producer {
private final FileDistributor fileDistributor;
private final boolean sendAllFiles;
private final Host host;
- public FileDistributionConfigProvider(FileDistributor fileDistributor,
+ public FileDistributionConfigProvider(AbstractConfigProducer parent,
+ FileDistributor fileDistributor,
boolean sendAllFiles,
Host host) {
+ super(parent, host.getHostname());
this.fileDistributor = fileDistributor;
this.sendAllFiles = sendAllFiles;
this.host = host;
}
+ @Override
public void getConfig(FiledistributorrpcConfig.Builder builder) {
builder.connectionspec("tcp/" + host.getHostname() + ":" + ConfigProxy.BASEPORT);
}
+ @Override
public void getConfig(FilereferencesConfig.Builder builder) {
for (FileReference reference : getFileReferences()) {
builder.filereferences(reference.value());
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
index df5c2c9c173..e8f0c0de30a 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
@@ -19,8 +19,8 @@ import com.yahoo.vespa.model.admin.monitoring.Monitoring;
import com.yahoo.vespa.model.application.validation.RestartConfigs;
import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder;
import com.yahoo.vespa.model.content.ContentNode;
-import com.yahoo.vespa.model.filedistribution.DummyFileDistributionConfigProducer;
import com.yahoo.vespa.model.filedistribution.FileDistributionConfigProducer;
+import com.yahoo.vespa.model.filedistribution.FileDistributionConfigProvider;
import org.w3c.dom.Element;
import java.util.HashMap;
@@ -228,8 +228,8 @@ public class SearchNode extends AbstractService implements
public void getConfig(FiledistributorrpcConfig.Builder builder) {
FileDistributionConfigProducer fileDistribution = getRoot().getFileDistributionConfigProducer();
if (fileDistribution != null) {
- AbstractConfigProducer configProducer = fileDistribution.getConfigProducer(getHost());
- ((DummyFileDistributionConfigProducer) configProducer).getConfig(builder);
+ FileDistributionConfigProvider configProducer = fileDistribution.getConfigProducer(getHost());
+ configProducer.getConfig(builder);
}
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java b/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java
index 15acdf0737b..8e0c0d0b253 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java
@@ -60,8 +60,7 @@ public class ContentClusterUtils {
public static ContentCluster createCluster(String clusterXml, MockRoot root) {
Document doc = XML.getDocument(clusterXml);
Admin admin = new Admin(root, new DefaultMonitoring("vespa", 60), new Metrics(), Collections.emptyMap(), false,
- new FileDistributionConfigProducer.Builder()
- .build(root, new MockFileRegistry(), null));
+ new FileDistributionConfigProducer(root, new MockFileRegistry(), null));
ConfigModelContext context = ConfigModelContext.create(null, root.getDeployState(), null, root, null);
return new ContentCluster.Builder(admin).build(Collections.emptyList(), context, doc.getDocumentElement());