From 01b61de4db4be59d86298d540aaa948c68185585 Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Mon, 9 Sep 2019 13:52:14 +0200 Subject: Allow services.xml variants on application instance name --- .../config/application/OverrideProcessor.java | 110 ++++++++++++++------- .../yahoo/config/application/XmlPreProcessor.java | 17 +++- .../model/application/provider/DeployData.java | 55 ++++++----- .../provider/FilesApplicationPackage.java | 29 +++++- .../application/HostedOverrideProcessorTest.java | 20 +++- .../application/MultiOverrideProcessorTest.java | 5 +- .../config/application/OverrideProcessorTest.java | 7 +- .../application/PropertiesProcessorTest.java | 6 +- .../config/application/XmlPreprocessorTest.java | 13 +-- 9 files changed, 184 insertions(+), 78 deletions(-) (limited to 'config-application-package') diff --git a/config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java b/config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java index 0599afa056d..15b775a4543 100644 --- a/config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java +++ b/config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java @@ -1,8 +1,8 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.config.application; -import com.google.common.collect.ImmutableSet; import com.yahoo.config.provision.Environment; +import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.RegionName; import com.yahoo.log.LogLevel; import com.yahoo.text.XML; @@ -38,13 +38,22 @@ class OverrideProcessor implements PreProcessor { private static final Logger log = Logger.getLogger(OverrideProcessor.class.getName()); + private final InstanceName instance; private final Environment environment; private final RegionName region; - private static final String ATTR_ID = "id"; - private static final String ATTR_ENV = "environment"; - private static final String ATTR_REG = "region"; + private static final String ID_ATTRIBUTE = "id"; + private static final String INSTANCE_ATTRIBUTE = "instance"; + private static final String ENVIRONMENT_ATTRIBUTE = "environment"; + private static final String REGION_ATTRIBUTE = "region"; + + // TODO: Remove after September 2019 public OverrideProcessor(Environment environment, RegionName region) { + this(InstanceName.from("default"), environment, region); + } + + public OverrideProcessor(InstanceName instance, Environment environment, RegionName region) { + this.instance = instance; this.environment = environment; this.region = region; } @@ -73,42 +82,53 @@ class OverrideProcessor implements PreProcessor { for (Element child : XML.getChildren(parent)) { applyOverrides(child, context); // Remove attributes - child.removeAttributeNS(XmlPreProcessor.deployNamespaceUri, ATTR_ENV); - child.removeAttributeNS(XmlPreProcessor.deployNamespaceUri, ATTR_REG); + child.removeAttributeNS(XmlPreProcessor.deployNamespaceUri, INSTANCE_ATTRIBUTE); + child.removeAttributeNS(XmlPreProcessor.deployNamespaceUri, ENVIRONMENT_ATTRIBUTE); + child.removeAttributeNS(XmlPreProcessor.deployNamespaceUri, REGION_ATTRIBUTE); } } private Context getParentContext(Element parent, Context context) { + Set instances = context.instances; Set environments = context.environments; Set regions = context.regions; + if (instances.isEmpty()) + instances = getInstances(parent); if (environments.isEmpty()) environments = getEnvironments(parent); if (regions.isEmpty()) regions = getRegions(parent); - return Context.create(environments, regions); + return Context.create(instances, environments, regions); } /** * Prune overrides from parent according to deploy override rules. * - * @param parent Parent {@link Element} above children. - * @param children Children where one {@link Element} will remain as the overriding element - * @param context Current context with environment and region. + * @param parent parent {@link Element} above children. + * @param children children where one {@link Element} will remain as the overriding element + * @param context current context with instance, environment and region. */ private void pruneOverrides(Element parent, List children, Context context) { checkConsistentInheritance(children, context); - pruneNonMatchingEnvironmentsAndRegions(parent, children); - retainMostSpecificEnvironmentAndRegion(parent, children, context); + pruneNonMatching(parent, children); + retainMostSpecific(parent, children, context); } private void checkConsistentInheritance(List children, Context context) { for (Element child : children) { + Set instances = getInstances(child); + if ( ! instances.isEmpty() && ! context.instances.isEmpty() && ! context.instances.containsAll(instances)) { + throw new IllegalArgumentException("Instances in child (" + instances + + ") are not a subset of those of the parent (" + context.instances + ") at " + child); + } + Set environments = getEnvironments(child); - Set regions = getRegions(child); if ( ! environments.isEmpty() && ! context.environments.isEmpty() && ! context.environments.containsAll(environments)) { throw new IllegalArgumentException("Environments in child (" + environments + ") are not a subset of those of the parent (" + context.environments + ") at " + child); } + + Set regions = getRegions(child); if ( ! regions.isEmpty() && ! context.regions.isEmpty() && ! context.regions.containsAll(regions)) { throw new IllegalArgumentException("Regions in child (" + regions + ") are not a subset of those of the parent (" + context.regions + ") at " + child); @@ -119,18 +139,24 @@ class OverrideProcessor implements PreProcessor { /** * Prune elements that are not matching our environment and region */ - private void pruneNonMatchingEnvironmentsAndRegions(Element parent, List children) { + private void pruneNonMatching(Element parent, List children) { Iterator elemIt = children.iterator(); while (elemIt.hasNext()) { Element child = elemIt.next(); - if ( ! matches(getEnvironments(child), getRegions(child))) { + if ( ! matches(getInstances(child), getEnvironments(child), getRegions(child))) { parent.removeChild(child); elemIt.remove(); } } } - private boolean matches(Set elementEnvironments, Set elementRegions) { + private boolean matches(Set elementInstances, + Set elementEnvironments, + Set elementRegions) { + if ( ! elementInstances.isEmpty()) { // match instance + if ( ! elementInstances.contains(instance)) return false; + } + if ( ! elementEnvironments.isEmpty()) { // match environment if ( ! elementEnvironments.contains(environment)) return false; } @@ -149,7 +175,7 @@ class OverrideProcessor implements PreProcessor { /** * Find the most specific element and remove all others. */ - private void retainMostSpecificEnvironmentAndRegion(Element parent, List children, Context context) { + private void retainMostSpecific(Element parent, List children, Context context) { // Keep track of elements with highest number of matches (might be more than one element with same tag, need a list) List bestMatches = new ArrayList<>(); int bestMatch = 0; @@ -181,8 +207,11 @@ class OverrideProcessor implements PreProcessor { private int getNumberOfOverrides(Element child, Context context) { int currentMatch = 0; + Set elementInstances = hasInstance(child) ? getInstances(child) : context.instances; Set elementEnvironments = hasEnvironment(child) ? getEnvironments(child) : context.environments; Set elementRegions = hasRegion(child) ? getRegions(child) : context.regions; + if ( ! elementInstances.isEmpty() && elementInstances.contains(instance)) + currentMatch++; if ( ! elementEnvironments.isEmpty() && elementEnvironments.contains(environment)) currentMatch++; if ( ! elementRegions.isEmpty() && elementRegions.contains(region)) @@ -192,7 +221,7 @@ class OverrideProcessor implements PreProcessor { /** Called on each element which is selected by matching some override condition */ private void doElementSpecificProcessingOnOverride(List elements) { - // if node capacity is specified explicitly for some env/region we should require that capacity + // if node capacity is specified explicitly for some combination we should require that capacity elements.forEach(element -> { if (element.getTagName().equals("nodes")) if (element.getChildNodes().getLength() == 0) // specifies capacity, not a list of nodes @@ -219,22 +248,32 @@ class OverrideProcessor implements PreProcessor { } } + private boolean hasInstance(Element element) { + return element.hasAttributeNS(XmlPreProcessor.deployNamespaceUri, INSTANCE_ATTRIBUTE); + } + private boolean hasRegion(Element element) { - return element.hasAttributeNS(XmlPreProcessor.deployNamespaceUri, ATTR_REG); + return element.hasAttributeNS(XmlPreProcessor.deployNamespaceUri, REGION_ATTRIBUTE); } private boolean hasEnvironment(Element element) { - return element.hasAttributeNS(XmlPreProcessor.deployNamespaceUri, ATTR_ENV); + return element.hasAttributeNS(XmlPreProcessor.deployNamespaceUri, ENVIRONMENT_ATTRIBUTE); + } + + private Set getInstances(Element element) { + String instance = element.getAttributeNS(XmlPreProcessor.deployNamespaceUri, INSTANCE_ATTRIBUTE); + if (instance == null || instance.isEmpty()) return Collections.emptySet(); + return Arrays.stream(instance.split(" ")).map(InstanceName::from).collect(Collectors.toSet()); } private Set getEnvironments(Element element) { - String env = element.getAttributeNS(XmlPreProcessor.deployNamespaceUri, ATTR_ENV); + String env = element.getAttributeNS(XmlPreProcessor.deployNamespaceUri, ENVIRONMENT_ATTRIBUTE); if (env == null || env.isEmpty()) return Collections.emptySet(); return Arrays.stream(env.split(" ")).map(Environment::from).collect(Collectors.toSet()); } private Set getRegions(Element element) { - String reg = element.getAttributeNS(XmlPreProcessor.deployNamespaceUri, ATTR_REG); + String reg = element.getAttributeNS(XmlPreProcessor.deployNamespaceUri, REGION_ATTRIBUTE); if (reg == null || reg.isEmpty()) return Collections.emptySet(); return Arrays.stream(reg.split(" ")).map(RegionName::from).collect(Collectors.toSet()); } @@ -244,10 +283,10 @@ class OverrideProcessor implements PreProcessor { // Index by tag name for (Element child : children) { String key = child.getTagName(); - if (child.hasAttribute(ATTR_ID)) { - key += child.getAttribute(ATTR_ID); + if (child.hasAttribute(ID_ATTRIBUTE)) { + key += child.getAttribute(ID_ATTRIBUTE); } - if (!elementsByTagName.containsKey(key)) { + if ( ! elementsByTagName.containsKey(key)) { elementsByTagName.put(key, new ArrayList<>()); } elementsByTagName.get(key).add(child); @@ -290,21 +329,24 @@ class OverrideProcessor implements PreProcessor { */ private static final class Context { - final ImmutableSet environments; - - final ImmutableSet regions; + final Set instances; + final Set environments; + final Set regions; - private Context(Set environments, Set regions) { - this.environments = ImmutableSet.copyOf(environments); - this.regions = ImmutableSet.copyOf(regions); + private Context(Set instances, Set environments, Set regions) { + this.instances = Set.copyOf(instances); + this.environments = Set.copyOf(environments); + this.regions = Set.copyOf(regions); } static Context empty() { - return new Context(ImmutableSet.of(), ImmutableSet.of()); + return new Context(Set.of(), Set.of(), Set.of()); } - public static Context create(Set environments, Set regions) { - return new Context(environments, regions); + public static Context create(Set instances, + Set environments, + Set regions) { + return new Context(instances, environments, regions); } } diff --git a/config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java b/config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java index 261a684353b..73f97cf516f 100644 --- a/config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java +++ b/config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java @@ -2,6 +2,7 @@ package com.yahoo.config.application; import com.yahoo.config.provision.Environment; +import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.RegionName; import org.w3c.dom.Document; import org.xml.sax.InputSource; @@ -32,17 +33,29 @@ public class XmlPreProcessor { private final File applicationDir; private final Reader xmlInput; + private final InstanceName instance; private final Environment environment; private final RegionName region; private final List chain; + // TODO: Remove after September 2019 public XmlPreProcessor(File applicationDir, File xmlInput, Environment environment, RegionName region) throws IOException { - this(applicationDir, new FileReader(xmlInput), environment, region); + this(applicationDir, new FileReader(xmlInput), InstanceName.from("default"), environment, region); } + public XmlPreProcessor(File applicationDir, File xmlInput, InstanceName instance, Environment environment, RegionName region) throws IOException { + this(applicationDir, new FileReader(xmlInput), instance, environment, region); + } + + // TODO: Remove after September 2019 public XmlPreProcessor(File applicationDir, Reader xmlInput, Environment environment, RegionName region) throws IOException { + this(applicationDir, xmlInput, InstanceName.from("default"), environment, region); + } + + public XmlPreProcessor(File applicationDir, Reader xmlInput, InstanceName instance, Environment environment, RegionName region) { this.applicationDir = applicationDir; this.xmlInput = xmlInput; + this.instance = instance; this.environment = environment; this.region = region; this.chain = setupChain(); @@ -64,7 +77,7 @@ public class XmlPreProcessor { private List setupChain() { List chain = new ArrayList<>(); chain.add(new IncludeProcessor(applicationDir)); - chain.add(new OverrideProcessor(environment, region)); + chain.add(new OverrideProcessor(instance, environment, region)); chain.add(new PropertiesProcessor()); return chain; } diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/DeployData.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/DeployData.java index cd13305c009..344035745f8 100644 --- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/DeployData.java +++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/DeployData.java @@ -1,8 +1,13 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.config.model.application.provider; +import com.yahoo.config.provision.ApplicationId; +import com.yahoo.config.provision.ApplicationName; +import com.yahoo.config.provision.InstanceName; +import com.yahoo.config.provision.TenantName; + /** - * A class for holding values generated or computed during deployment + * Data generated or computed during deployment * * @author hmusum */ @@ -11,8 +16,7 @@ public class DeployData { /** Which user deployed */ private final String deployedByUser; - /** Name of application given by user */ - private final String applicationName; + private final ApplicationId applicationId; /** The absolute path to the directory holding the application */ private final String deployedFromDir; @@ -27,6 +31,7 @@ public class DeployData { private final long generation; private final long currentlyActiveGeneration; + // TODO: Remove after September 2019 public DeployData(String deployedByUser, String deployedFromDir, String applicationName, @@ -34,39 +39,45 @@ public class DeployData { boolean internalRedeploy, Long generation, long currentlyActiveGeneration) { + this(deployedByUser, + deployedFromDir, + ApplicationId.from(TenantName.defaultName(), ApplicationName.from(applicationName), InstanceName.from("default")), + deployTimestamp, + internalRedeploy, + generation, currentlyActiveGeneration); + } + + public DeployData(String deployedByUser, + String deployedFromDir, + ApplicationId applicationId, + Long deployTimestamp, + boolean internalRedeploy, + Long generation, + long currentlyActiveGeneration) { this.deployedByUser = deployedByUser; this.deployedFromDir = deployedFromDir; - this.applicationName = applicationName; + this.applicationId = applicationId; this.deployTimestamp = deployTimestamp; this.internalRedeploy = internalRedeploy; this.generation = generation; this.currentlyActiveGeneration = currentlyActiveGeneration; } - public String getDeployedByUser() { - return deployedByUser; - } + public String getDeployedByUser() { return deployedByUser; } - public String getDeployedFromDir() { - return deployedFromDir; - } + public String getDeployedFromDir() { return deployedFromDir; } - public long getDeployTimestamp() { - return deployTimestamp; - } + public long getDeployTimestamp() { return deployTimestamp; } public boolean isInternalRedeploy() { return internalRedeploy; } - public long getGeneration() { - return generation; - } + public long getGeneration() { return generation; } - public long getCurrentlyActiveGeneration() { - return currentlyActiveGeneration; - } + public long getCurrentlyActiveGeneration() { return currentlyActiveGeneration; } - public String getApplicationName() { - return applicationName; - } + public ApplicationId getApplicationId() { return applicationId; } + + // TODO: remove after September 2019 + public String getApplicationName() { return applicationId.application().toString(); } } diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java index b2a1507b424..2859d9f89fc 100644 --- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java +++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java @@ -13,6 +13,10 @@ import com.yahoo.config.application.api.UnparsedConfigDefinition; import com.yahoo.config.codegen.DefParser; import com.yahoo.config.application.api.ApplicationFile; import com.yahoo.config.application.api.ApplicationPackage; +import com.yahoo.config.provision.ApplicationId; +import com.yahoo.config.provision.ApplicationName; +import com.yahoo.config.provision.InstanceName; +import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.Zone; import com.yahoo.path.Path; import com.yahoo.io.HexDump; @@ -117,7 +121,7 @@ public class FilesApplicationPackage implements ApplicationPackage { deployData.getDeployedFromDir(), deployData.getDeployTimestamp(), deployData.isInternalRedeploy(), - deployData.getApplicationName(), + deployData.getApplicationId(), computeCheckSum(appDir), deployData.getGeneration(), deployData.getCurrentlyActiveGeneration()); @@ -144,8 +148,10 @@ public class FilesApplicationPackage implements ApplicationPackage { this.metaData = metaData; } + @Override + @SuppressWarnings("deprecation") public String getApplicationName() { - return metaData.getApplicationName(); + return metaData.getApplicationId().application().value(); } @Override @@ -571,9 +577,18 @@ public class FilesApplicationPackage implements ApplicationPackage { } private static ApplicationMetaData readMetaData(File appDir) { - ApplicationMetaData defaultMetaData = new ApplicationMetaData(appDir, "n/a", "n/a", 0l, false, "", 0l, 0l); + ApplicationMetaData defaultMetaData = new ApplicationMetaData("n/a", + "n/a", + 0L, + false, + ApplicationId.from(TenantName.defaultName(), + ApplicationName.from(appDir.getName()), + InstanceName.defaultName()), + "", + 0L, + 0L); File metaFile = new File(appDir, META_FILE_NAME); - if (!metaFile.exists()) { + if ( ! metaFile.exists()) { return defaultMetaData; } try (FileReader reader = new FileReader(metaFile)) { @@ -663,7 +678,11 @@ public class FilesApplicationPackage implements ApplicationPackage { } private void preprocessXML(File destination, File inputXml, Zone zone) throws ParserConfigurationException, TransformerException, SAXException, IOException { - Document document = new XmlPreProcessor(appDir, inputXml, zone.environment(), zone.region()).run(); + Document document = new XmlPreProcessor(appDir, + inputXml, + metaData.getApplicationId().instance(), + zone.environment(), + zone.region()).run(); Transformer transformer = TransformerFactory.newInstance().newTransformer(); try (FileOutputStream outputStream = new FileOutputStream(destination)) { transformer.transform(new DOMSource(document), new StreamResult(outputStream)); diff --git a/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTest.java b/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTest.java index 4c6a3eb3513..d19ea177d9b 100644 --- a/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTest.java +++ b/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTest.java @@ -2,6 +2,7 @@ package com.yahoo.config.application; import com.yahoo.config.provision.Environment; +import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.RegionName; import org.custommonkey.xmlunit.XMLUnit; import org.junit.Test; @@ -33,6 +34,7 @@ public class HostedOverrideProcessorTest { " " + " " + " " + + " " + " " + ""; @@ -61,6 +63,18 @@ public class HostedOverrideProcessorTest { assertOverride(Environment.from("prod"), RegionName.from("us-west"), expected); } + @Test + public void testParsingInstance() throws TransformerException { + String expected = + "" + + "" + + " " + + " " + + " " + + ""; + assertOverride(InstanceName.from("myinstance"), Environment.from("prod"), RegionName.from("us-west"), expected); + } + @Test public void testParsingEnvironmentAndRegion2() throws TransformerException { String expected = @@ -146,8 +160,12 @@ public class HostedOverrideProcessorTest { } private void assertOverride(Environment environment, RegionName region, String expected) throws TransformerException { + assertOverride(InstanceName.from("default"), environment, region, expected); + } + + private void assertOverride(InstanceName instance, Environment environment, RegionName region, String expected) throws TransformerException { Document inputDoc = Xml.getDocument(new StringReader(input)); - Document newDoc = new OverrideProcessor(environment, region).process(inputDoc); + Document newDoc = new OverrideProcessor(instance, environment, region).process(inputDoc); TestBase.assertDocument(expected, newDoc); } diff --git a/config-application-package/src/test/java/com/yahoo/config/application/MultiOverrideProcessorTest.java b/config-application-package/src/test/java/com/yahoo/config/application/MultiOverrideProcessorTest.java index 7c054ec62ee..b9b8a9dd798 100644 --- a/config-application-package/src/test/java/com/yahoo/config/application/MultiOverrideProcessorTest.java +++ b/config-application-package/src/test/java/com/yahoo/config/application/MultiOverrideProcessorTest.java @@ -2,6 +2,7 @@ package com.yahoo.config.application; import com.yahoo.config.provision.Environment; +import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.RegionName; import org.custommonkey.xmlunit.XMLUnit; import org.junit.Test; @@ -123,13 +124,13 @@ public class MultiOverrideProcessorTest { private void assertOverride(Environment environment, RegionName region, String expected) throws TransformerException { Document inputDoc = Xml.getDocument(new StringReader(input)); - Document newDoc = new OverrideProcessor(environment, region).process(inputDoc); + Document newDoc = new OverrideProcessor(InstanceName.from("default"), environment, region).process(inputDoc); TestBase.assertDocument(expected, newDoc); } private void assertOverrideWithIds(Environment environment, RegionName region, String expected) throws TransformerException { Document inputDoc = Xml.getDocument(new StringReader(inputWithIds)); - Document newDoc = new OverrideProcessor(environment, region).process(inputDoc); + Document newDoc = new OverrideProcessor(InstanceName.from("default"), environment, region).process(inputDoc); TestBase.assertDocument(expected, newDoc); } diff --git a/config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java b/config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java index 9113ce7f016..05a5357a8ab 100644 --- a/config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java +++ b/config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java @@ -2,6 +2,7 @@ package com.yahoo.config.application; import com.yahoo.config.provision.Environment; +import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.RegionName; import org.custommonkey.xmlunit.XMLUnit; import org.junit.Test; @@ -331,7 +332,7 @@ public class OverrideProcessorTest { " " + ""; Document inputDoc = Xml.getDocument(new StringReader(in)); - new OverrideProcessor(Environment.from("prod"), RegionName.from("us-west")).process(inputDoc); + new OverrideProcessor(InstanceName.from("default"), Environment.from("prod"), RegionName.from("us-west")).process(inputDoc); } @Test(expected = IllegalArgumentException.class) @@ -343,12 +344,12 @@ public class OverrideProcessorTest { " " + ""; Document inputDoc = Xml.getDocument(new StringReader(in)); - new OverrideProcessor(Environment.defaultEnvironment(), RegionName.from("us-west")).process(inputDoc); + new OverrideProcessor(InstanceName.from("default"), Environment.defaultEnvironment(), RegionName.from("us-west")).process(inputDoc); } private void assertOverride(Environment environment, RegionName region, String expected) throws TransformerException { Document inputDoc = Xml.getDocument(new StringReader(OverrideProcessorTest.input)); - Document newDoc = new OverrideProcessor(environment, region).process(inputDoc); + Document newDoc = new OverrideProcessor(InstanceName.from("default"), environment, region).process(inputDoc); TestBase.assertDocument(expected, newDoc); } diff --git a/config-application-package/src/test/java/com/yahoo/config/application/PropertiesProcessorTest.java b/config-application-package/src/test/java/com/yahoo/config/application/PropertiesProcessorTest.java index 038447c7b99..fe9ca4a7951 100644 --- a/config-application-package/src/test/java/com/yahoo/config/application/PropertiesProcessorTest.java +++ b/config-application-package/src/test/java/com/yahoo/config/application/PropertiesProcessorTest.java @@ -26,7 +26,7 @@ public class PropertiesProcessorTest { } @Test - public void testPropertyValues() throws ParserConfigurationException, TransformerException, SAXException, IOException { + public void testPropertyValues() throws TransformerException { String input = "" + "" + " " + @@ -50,7 +50,7 @@ public class PropertiesProcessorTest { } @Test - public void testPropertyApplying() throws IOException, SAXException, XMLStreamException, ParserConfigurationException, TransformerException { + public void testPropertyApplying() throws TransformerException { String input = "" + "" + " " + @@ -104,7 +104,7 @@ public class PropertiesProcessorTest { // TODO: Check that warning is actually logged @Test - public void testWarnIfDuplicatePropertyForSameEnvironment() throws IOException, SAXException, XMLStreamException, ParserConfigurationException, TransformerException { + public void testWarnIfDuplicatePropertyForSameEnvironment() throws TransformerException { String input = "" + "" + " " + diff --git a/config-application-package/src/test/java/com/yahoo/config/application/XmlPreprocessorTest.java b/config-application-package/src/test/java/com/yahoo/config/application/XmlPreprocessorTest.java index eacaa4a881a..549fbdb41ea 100644 --- a/config-application-package/src/test/java/com/yahoo/config/application/XmlPreprocessorTest.java +++ b/config-application-package/src/test/java/com/yahoo/config/application/XmlPreprocessorTest.java @@ -2,6 +2,7 @@ package com.yahoo.config.application; import com.yahoo.config.provision.Environment; +import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.RegionName; import org.junit.Test; import org.w3c.dom.Document; @@ -48,7 +49,7 @@ public class XmlPreprocessorTest { " \n" + " \n" + ""; - TestBase.assertDocument(expectedDev, new XmlPreProcessor(appDir, services, Environment.dev, RegionName.from("default")).run()); + TestBase.assertDocument(expectedDev, new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.dev, RegionName.from("default")).run()); String expectedStaging = "" + @@ -75,7 +76,7 @@ public class XmlPreprocessorTest { " \n" + ""; // System.out.println(Xml.documentAsString(new XmlPreProcessor(appDir, services, Environment.staging, RegionName.from("default")).run())); - TestBase.assertDocument(expectedStaging, new XmlPreProcessor(appDir, services, Environment.staging, RegionName.from("default")).run()); + TestBase.assertDocument(expectedStaging, new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.staging, RegionName.from("default")).run()); String expectedUsWest = "" + @@ -109,7 +110,7 @@ public class XmlPreprocessorTest { " \n" + " \n" + ""; - TestBase.assertDocument(expectedUsWest, new XmlPreProcessor(appDir, services, Environment.prod, RegionName.from("us-west")).run()); + TestBase.assertDocument(expectedUsWest, new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.prod, RegionName.from("us-west")).run()); String expectedUsEastAndCentral = "" + @@ -143,9 +144,9 @@ public class XmlPreprocessorTest { " \n" + ""; TestBase.assertDocument(expectedUsEastAndCentral, - new XmlPreProcessor(appDir, services, Environment.prod, RegionName.from("us-east")).run()); + new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.prod, RegionName.from("us-east")).run()); TestBase.assertDocument(expectedUsEastAndCentral, - new XmlPreProcessor(appDir, services, Environment.prod, RegionName.from("us-central")).run()); + new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.prod, RegionName.from("us-central")).run()); } @Test @@ -189,7 +190,7 @@ public class XmlPreprocessorTest { " " + " " + ""; - Document docDev = (new XmlPreProcessor(appDir, new StringReader(input), Environment.prod, RegionName.from("default")).run()); + Document docDev = (new XmlPreProcessor(appDir, new StringReader(input), InstanceName.defaultName(), Environment.prod, RegionName.from("default")).run()); TestBase.assertDocument(expectedProd, docDev); } -- cgit v1.2.3