summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java
diff options
context:
space:
mode:
authorgjoranv <gv@yahoo-inc.com>2017-01-30 15:40:51 +0100
committergjoranv <gv@yahoo-inc.com>2017-01-30 15:49:47 +0100
commita6ee706439c77d86d761898f1645ec9f82bae772 (patch)
treed7166c743704f2c820cce1cc50958432e74c9c7a /config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java
parent308c9f1ff7091cbfd9421b5991cb1c5dcc1f526c (diff)
Add ApplicationType to ConfigModelContext.
Diffstat (limited to 'config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java26
1 files changed, 20 insertions, 6 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java b/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java
index d4b6751c356..fbe392f698a 100644
--- a/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java
+++ b/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java
@@ -3,6 +3,7 @@ package com.yahoo.config.model;
import com.yahoo.config.application.api.ApplicationFile;
import com.yahoo.config.application.api.ApplicationPackage;
+import com.yahoo.config.model.ConfigModelContext.ApplicationType;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.builder.xml.ConfigModelBuilder;
import com.yahoo.config.model.builder.xml.ConfigModelId;
@@ -90,7 +91,6 @@ public class ConfigModelRepo implements ConfigModelRepoAdder, Serializable, Iter
private List<Element> getServiceElements(Element servicesRoot) {
if (servicesRoot.getTagName().equals("services"))
return XML.getChildren(servicesRoot);
-
List<Element> singleServiceList = new ArrayList<>(1);
singleServiceList.add(servicesRoot);
return singleServiceList;
@@ -139,11 +139,17 @@ public class ConfigModelRepo implements ConfigModelRepoAdder, Serializable, Iter
}
for (ModelNode node : graphBuilder.build().topologicalSort())
- buildModels(node, deployState, root, model2Element.get(node.builder));
+ buildModels(node, getApplicationType(servicesRoot), deployState, root, model2Element.get(node.builder));
for (ConfigModel model : configModels)
model.initialize(ConfigModelRepo.this);
}
+ private ApplicationType getApplicationType(Element servicesRoot) {
+ return XmlHelper.getOptionalAttribute(servicesRoot, "application-type")
+ .map(ApplicationType::fromString)
+ .orElse(ApplicationType.DEFAULT);
+ }
+
private Collection<Element> getPermanentServices(DeployState deployState) throws IOException, SAXException {
List<Element> permanentServices = new ArrayList<>();
Optional<ApplicationPackage> applicationPackage = deployState.getPermanentApplicationPackage();
@@ -164,17 +170,25 @@ public class ConfigModelRepo implements ConfigModelRepoAdder, Serializable, Iter
return doc.getDocumentElement();
}
- private void buildModels(ModelNode node, DeployState deployState, AbstractConfigProducer parent, List<Element> elements) {
+ private void buildModels(ModelNode node,
+ ApplicationType applicationType,
+ DeployState deployState,
+ AbstractConfigProducer parent,
+ List<Element> elements) {
for (Element servicesElement : elements) {
- ConfigModel model = buildModel(node, deployState, parent, servicesElement);
+ ConfigModel model = buildModel(node, applicationType, deployState, parent, servicesElement);
if (model.isServing())
add(model);
}
}
- private ConfigModel buildModel(ModelNode node, DeployState deployState, AbstractConfigProducer parent, Element servicesElement) {
+ private ConfigModel buildModel(ModelNode node,
+ ApplicationType applicationType,
+ DeployState deployState,
+ AbstractConfigProducer parent,
+ Element servicesElement) {
ConfigModelBuilder builder = node.builder;
- ConfigModelContext context = ConfigModelContext.create(deployState, this, parent, getIdString(servicesElement));
+ ConfigModelContext context = ConfigModelContext.create(applicationType, deployState, this, parent, getIdString(servicesElement));
return builder.build(node, servicesElement, context);
}