aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomV20ClientsBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomV20ClientsBuilder.java')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomV20ClientsBuilder.java303
1 files changed, 2 insertions, 301 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomV20ClientsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomV20ClientsBuilder.java
index 6a02619bdb4..74e3ac581c4 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomV20ClientsBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomV20ClientsBuilder.java
@@ -2,26 +2,11 @@
package com.yahoo.vespa.model.builder.xml.dom;
import com.yahoo.config.model.deploy.DeployState;
-import com.yahoo.vespa.config.content.spooler.SpoolerConfig;
-import com.yahoo.config.model.producer.AbstractConfigProducer;
import com.yahoo.text.XML;
-import com.yahoo.vespa.defaults.Defaults;
-import com.yahoo.vespa.model.SimpleConfigProducer;
-import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder.DomConfigProducerBuilder;
import com.yahoo.vespa.model.clients.Clients;
-import com.yahoo.vespa.model.clients.VespaSpoolMaster;
-import com.yahoo.vespa.model.clients.VespaSpooler;
-import com.yahoo.vespa.model.clients.VespaSpoolerProducer;
-import com.yahoo.vespa.model.clients.VespaSpoolerService;
-import com.yahoo.vespaclient.config.FeederConfig;
import org.w3c.dom.Element;
-import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* Builds the Clients plugin
*
@@ -38,13 +23,8 @@ public class DomV20ClientsBuilder {
this.clients = clients;
}
- public void build(DeployState deployState, Element spec) {
- NodeList children = spec.getElementsByTagName("spoolers");
- for (int i = 0; i < children.getLength(); i++) {
- createSpoolers(deployState, clients.getConfigProducer(), (Element) children.item(i), clients);
- }
-
- children = spec.getElementsByTagName("load-types");
+ public void build(Element spec) {
+ NodeList children = spec.getElementsByTagName("load-types");
for (int i = 0; i < children.getLength(); i++) {
createLoadTypes((Element) children.item(i), clients);
}
@@ -57,283 +37,4 @@ public class DomV20ClientsBuilder {
}
}
- /**
- * Creates VespaSpooler objects using the given xml Element.
- */
- private void createSpoolers(DeployState deployState, AbstractConfigProducer pcp, Element element, Clients clients) {
- String jvmArgs = null;
- if (element.hasAttribute(VespaDomBuilder.JVMARGS_ATTRIB_NAME)) jvmArgs=element.getAttribute(VespaDomBuilder.JVMARGS_ATTRIB_NAME);
- SimpleConfigProducer spoolerCfg = new VespaDomBuilder.DomSimpleConfigProducerBuilder(element.getNodeName()).
- build(deployState, pcp, element);
- Element spoolersFeederOptions = findFeederOptions(element);
- createSpoolMasters(deployState, spoolerCfg, element);
- for (Element e : XML.getChildren(element, "spooler")) {
- String configId = e.getAttribute("id").trim();
- FeederConfig.Builder feederConfig = getFeederConfig(spoolersFeederOptions, e);
- SpoolerConfig.Builder spoolConfig = getSpoolConfig(e);
- if (configId.length() == 0) {
- int index = clients.getVespaSpoolers().size();
- VespaSpoolerService spoolerService = new VespaSpoolerServiceBuilder(index, new VespaSpooler(feederConfig, spoolConfig)).
- build(deployState, spoolerCfg, e);
- if ("".equals(spoolerService.getJvmOptions()) && jvmArgs!=null) spoolerService.setJvmOptions(jvmArgs);
- spoolerService.setProp("index", String.valueOf(index));
- clients.getVespaSpoolers().add(spoolerService);
- } else {
- new VespaSpoolerProducerBuilder(configId, new VespaSpooler(feederConfig, spoolConfig)).
- build(deployState, spoolerCfg, e);
- }
- }
- }
-
- private void createSpoolMasters(DeployState deployState, SimpleConfigProducer producer, Element element) {
- int i=0;
- for (Element e : XML.getChildren(element, "spoolmaster"))
- new VespaSpoolMasterBuilder(i++).build(deployState, producer, e);
- }
-
- private SpoolerConfig.Builder getSpoolConfig(Element conf) {
- SpoolerConfig.Builder builder = new SpoolerConfig.Builder();
- if (conf.getAttributes().getNamedItem("directory") != null) {
- builder.directory(Defaults.getDefaults().underVespaHome(conf.getAttributes().getNamedItem("directory").getNodeValue()));
- }
- if (conf.getAttributes().getNamedItem("keepsuccess") != null) {
- builder.keepsuccess(getBooleanFromAttribute(conf, "keepsuccess"));
- }
- if (conf.getAttributes().getNamedItem("maxfailuresize") != null) {
- builder.maxfailuresize(getIntegerFromAttribute(conf, "maxfailuresize"));
- }
- if (conf.getAttributes().getNamedItem("maxfatalfailuresize") != null) {
- builder.maxfatalfailuresize(getIntegerFromAttribute(conf, "maxfatalfailuresize"));
- }
- if (conf.getAttributes().getNamedItem("threads") != null) {
- builder.threads(getIntegerFromAttribute(conf, "threads"));
- }
- if (conf.getAttributes().getNamedItem("maxretries") != null) {
- builder.maxretries(getIntegerFromAttribute(conf, "maxretries"));
- }
-
- NodeList children = conf.getElementsByTagName("parsers");
- if (children.getLength() == 1) {
- children = ((Element)children.item(0)).getElementsByTagName("parser");
- }
-
- for (int i=0; i < children.getLength(); i++) {
- Element e = (Element)children.item(i);
-
- String type = e.getAttributes().getNamedItem("type").getNodeValue();
- NodeList params = e.getElementsByTagName("parameter");
-
- SpoolerConfig.Parsers.Builder parserBuilder = new SpoolerConfig.Parsers.Builder();
- parserBuilder.classname(type);
- if (params.getLength() > 0) {
- List<SpoolerConfig.Parsers.Parameters.Builder> parametersBuilders = new ArrayList<>();
- for (int j = 0; j < params.getLength(); j++) {
- SpoolerConfig.Parsers.Parameters.Builder parametersBuilder = new SpoolerConfig.Parsers.Parameters.Builder();
- Element p = (Element) params.item(j);
- parametersBuilder.key(getStringFromAttribute(p, "key"));
- parametersBuilder.value(getStringFromAttribute(p, "value"));
- parametersBuilders.add(parametersBuilder);
- }
- parserBuilder.parameters(parametersBuilders);
- }
-
- builder.parsers.add(parserBuilder);
- }
- return builder;
- }
-
- Boolean getBooleanFromAttribute(Element e, String attributeName) {
- return Boolean.parseBoolean(e.getAttributes().getNamedItem(attributeName).getNodeValue());
- }
-
- Integer getIntegerFromAttribute(Element e, String attributeName) {
- return Integer.parseInt(e.getAttributes().getNamedItem(attributeName).getNodeValue());
- }
-
- String getStringFromAttribute(Element e, String attributeName) {
- return e.getAttributes().getNamedItem(attributeName).getNodeValue();
- }
-
- private FeederConfig.Builder getFeederConfig(Element gatewaysFeederOptions, Element e) {
- FeederOptionsParser foParser = new FeederOptionsParser();
- if (gatewaysFeederOptions!=null) {
- foParser.parseFeederOptions(gatewaysFeederOptions).getFeederConfig();
- }
- foParser.parseFeederOptions(e);
- return foParser.getFeederConfig();
- }
-
- /**
- * Finds the feederoptions subelement in the given xml Element.
- *
- * @param element The xml Element
- * @return The feederoptions xml Element
- */
- private Element findFeederOptions(Element element) {
- for (Element child : XML.getChildren(element)) {
- if (child.getNodeName().equals("feederoptions")) {
- return child;
- }
- }
- return null;
- }
-
- private static class VespaSpoolerServiceBuilder extends DomConfigProducerBuilder<VespaSpoolerService> {
- private int index;
- private VespaSpooler spoolerConfig;
-
- public VespaSpoolerServiceBuilder(int index, VespaSpooler spoolerConfig) {
- this.index = index;
- this.spoolerConfig = spoolerConfig;
- }
-
- @Override
- protected VespaSpoolerService doBuild(DeployState deployState, AbstractConfigProducer parent, Element spec) {
- return new VespaSpoolerService(parent, index, spoolerConfig);
- }
- }
-
- private static class VespaSpoolerProducerBuilder extends DomConfigProducerBuilder<VespaSpoolerProducer> {
- private String name=null;
- private VespaSpooler spooler;
-
- public VespaSpoolerProducerBuilder(String name, VespaSpooler spooler) {
- this.name = name;
- this.spooler = spooler;
- }
-
- @Override
- protected VespaSpoolerProducer doBuild(DeployState deployState, AbstractConfigProducer parent, Element producerSpec) {
- return new VespaSpoolerProducer(parent, name, spooler);
- }
- }
-
- private static class VespaSpoolMasterBuilder extends DomConfigProducerBuilder<VespaSpoolMaster> {
- int index;
-
- public VespaSpoolMasterBuilder(int index) {
- super();
- this.index = index;
- }
-
- @Override
- protected VespaSpoolMaster doBuild(DeployState deployState, AbstractConfigProducer parent, Element spec) {
- return new VespaSpoolMaster(parent, index);
- }
- }
-
- /**
- * This class parses the feederoptions xml tag and produces Vespa config output.
- *
- * @author Gunnar Gauslaa Bergem
- */
- private class FeederOptionsParser implements Serializable {
- private static final long serialVersionUID = 1L;
- // All member variables are objects so that we can switch on null values.
- private Boolean abortondocumenterror = null;
- private String route = null;
- private Integer maxpendingdocs = null;
- private Integer maxpendingbytes = null;
- private Boolean retryenabled = null;
- private Double retrydelay = null;
- private Double timeout = null;
- private Integer tracelevel = null;
- private Integer mbusport = null;
- private String docprocChain = null;
-
- /**
- * Constructs an empty feeder options object with all members set to null.
- */
- public FeederOptionsParser() {
- // empty
- }
-
- /**
- * Parses the content of the given XML element as feeder options.
- *
- * @param conf The XML element to parse.
- */
- public FeederOptionsParser parseFeederOptions(Element conf) {
- for (Node node : XML.getChildren(conf)) {
- String nodename = node.getNodeName();
- Node firstchild = node.getFirstChild();
- String childval = (firstchild != null) ? firstchild.getNodeValue() : null;
-
- switch (nodename) {
- case "abortondocumenterror":
- abortondocumenterror = Boolean.valueOf(childval);
- break;
- case "maxpendingdocs":
- maxpendingdocs = Integer.valueOf(childval);
- break;
- case "maxpendingbytes":
- maxpendingbytes = Integer.valueOf(childval);
- break;
- case "retryenabled":
- retryenabled = Boolean.valueOf(childval);
- break;
- case "retrydelay":
- retrydelay = Double.valueOf(childval);
- break;
- case "timeout":
- timeout = Double.valueOf(childval);
- break;
- case "route":
- route = childval;
- break;
- case "tracelevel":
- tracelevel = Integer.valueOf(childval);
- break;
- case "mbusport":
- mbusport = Integer.valueOf(childval);
- break;
- case "docprocchain":
- docprocChain = childval;
- break;
- }
- }
- return this;
- }
-
- /**
- * Returns a feeder options config string of the content of this.
- *
- * @return A config string.
- */
- public FeederConfig.Builder getFeederConfig() {
- FeederConfig.Builder builder = new FeederConfig.Builder();
- if (abortondocumenterror != null) {
- builder.abortondocumenterror(abortondocumenterror);
- }
- if (route != null && route.length() > 0) {
- builder.route(route);
- }
- if (maxpendingdocs != null) {
- builder.maxpendingdocs(maxpendingdocs);
- }
- if (maxpendingbytes != null) {
- builder.maxpendingbytes(maxpendingbytes);
- }
- if (retryenabled != null) {
- builder.retryenabled(retryenabled);
- }
- if (retrydelay != null) {
- builder.retrydelay(retrydelay);
- }
- if (timeout != null) {
- builder.timeout(timeout);
- }
- if (tracelevel != null) {
- builder.tracelevel(tracelevel);
- }
- if (mbusport != null) {
- builder.mbusport(mbusport);
- }
- if (docprocChain != null && docprocChain.length() > 0) {
- builder.docprocchain(docprocChain);
- }
- return builder;
- }
- }
-
}