summaryrefslogtreecommitdiffstats
path: root/config-application-package/src/test/java/com/yahoo/config/application/XmlPreprocessorTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'config-application-package/src/test/java/com/yahoo/config/application/XmlPreprocessorTest.java')
-rw-r--r--config-application-package/src/test/java/com/yahoo/config/application/XmlPreprocessorTest.java297
1 files changed, 154 insertions, 143 deletions
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 0da94b69e58..49dbacbae3d 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
@@ -23,29 +23,31 @@ public class XmlPreprocessorTest {
@Test
public void testPreProcessing() throws Exception {
String expectedDev =
- "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>" +
- "<services xmlns:deploy=\"vespa\" xmlns:preprocess=\"properties\" version=\"1.0\">\n" +
- " <admin version=\"2.0\">\n" +
- " <adminserver hostalias=\"node0\"/>\n" +
- " </admin>\n" +
- " <content id=\"foo\" version=\"1.0\">\n" +
- " <redundancy>1</redundancy>\n" +
- " <documents>\n" +
- " <document mode=\"index\" type=\"music.sd\"/>\n" +
- " </documents>\n" +
- " <nodes>\n" +
- " <node distribution-key=\"0\" hostalias=\"node0\"/>\n" +
- " </nodes>\n" +
- " </content>\n" +
- " <container id=\"stateless\" version=\"1.0\">\n" +
- " <search/>\n" +
- " <component bundle=\"foobundle\" class=\"MyFoo\" id=\"foo\"/>\n" +
- " <component bundle=\"foobundle\" class=\"TestBar\" id=\"bar\"/>\n" +
- " <nodes>\n" +
- " <node hostalias=\"node0\" baseport=\"5000\"/>\n" +
- " </nodes>\n" +
- " </container>\n" +
- "</services>";
+ """
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!-- Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -->
+ <services xmlns:deploy="vespa" xmlns:preprocess="properties" version="1.0">
+ <admin version="2.0">
+ <adminserver hostalias="node0"/>
+ </admin>
+ <content id="foo" version="1.0">
+ <redundancy>1</redundancy>
+ <documents>
+ <document mode="index" type="music.sd"/>
+ </documents>
+ <nodes>
+ <node distribution-key="0" hostalias="node0"/>
+ </nodes>
+ </content>
+ <container id="stateless" version="1.0">
+ <search/>
+ <component bundle="foobundle" class="MyFoo" id="foo"/>
+ <component bundle="foobundle" class="TestBar" id="bar"/>
+ <nodes>
+ <node hostalias="node0" baseport="5000"/>
+ </nodes>
+ </container>
+ </services>""";
TestBase.assertDocument(expectedDev,
new XmlPreProcessor(appDir,
services,
@@ -54,30 +56,33 @@ public class XmlPreprocessorTest {
RegionName.defaultName(),
Tags.empty()).run());
+ // Difference from dev: node1
+ // Difference from dev: no TestBar
String expectedStaging =
- "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>" +
- "<services xmlns:deploy=\"vespa\" xmlns:preprocess=\"properties\" version=\"1.0\">\n" +
- " <admin version=\"2.0\">\n" +
- " <adminserver hostalias=\"node1\"/>\n" + // Difference from dev: node1
- " </admin>\n" +
- " <content id=\"foo\" version=\"1.0\">\n" +
- " <redundancy>1</redundancy>\n" +
- " <documents>\n" +
- " <document mode=\"index\" type=\"music.sd\"/>\n" +
- " </documents>\n" +
- " <nodes>\n" +
- " <node distribution-key=\"0\" hostalias=\"node0\"/>\n" +
- " </nodes>\n" +
- " </content>\n" +
- " <container id=\"stateless\" version=\"1.0\">\n" +
- " <search/>\n" +
- " <component bundle=\"foobundle\" class=\"MyFoo\" id=\"foo\"/>\n" +
- "" + // Difference from dev: no TestBar
- " <nodes>\n" +
- " <node hostalias=\"node0\" baseport=\"5000\"/>\n" +
- " </nodes>\n" +
- " </container>\n" +
- "</services>";
+ """
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!-- Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -->
+ <services xmlns:deploy="vespa" xmlns:preprocess="properties" version="1.0">
+ <admin version="2.0">
+ <adminserver hostalias="node1"/>
+ </admin>
+ <content id="foo" version="1.0">
+ <redundancy>1</redundancy>
+ <documents>
+ <document mode="index" type="music.sd"/>
+ </documents>
+ <nodes>
+ <node distribution-key="0" hostalias="node0"/>
+ </nodes>
+ </content>
+ <container id="stateless" version="1.0">
+ <search/>
+ <component bundle="foobundle" class="MyFoo" id="foo"/>
+ <nodes>
+ <node hostalias="node0" baseport="5000"/>
+ </nodes>
+ </container>
+ </services>""";
TestBase.assertDocument(expectedStaging,
new XmlPreProcessor(appDir,
services,
@@ -87,37 +92,39 @@ public class XmlPreprocessorTest {
Tags.empty()).run());
String expectedUsWest =
- "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>" +
- "<services xmlns:deploy=\"vespa\" xmlns:preprocess=\"properties\" version=\"1.0\">\n" +
- " <admin version=\"2.0\">\n" +
- " <adminserver hostalias=\"node0\"/>\n" +
- " </admin>\n" +
- " <content id=\"foo\" version=\"1.0\">\n" +
- " <redundancy>1</redundancy>\n" +
- " <documents>\n" +
- " <document mode=\"index\" type=\"music.sd\"/>\n" +
- " </documents>\n" +
- " <nodes>\n" +
- " <node distribution-key=\"0\" hostalias=\"node0\"/>\n" +
- " <node distribution-key=\"1\" hostalias=\"node1\"/>\n" +
- " <node distribution-key=\"2\" hostalias=\"node2\"/>\n" +
- " </nodes>\n" +
- " </content>\n" +
- " <container id=\"stateless\" version=\"1.0\">\n" +
- " <search>\n" +
- " <chain id=\"common\">\n" +
- " <searcher id=\"MySearcher1\"/>\n" +
- " <searcher id=\"MySearcher2\"/>\n" +
- " </chain>\n" +
- " </search>\n" +
- " <component bundle=\"foobundle\" class=\"MyFoo\" id=\"foo\"/>\n" +
- " <component bundle=\"foobundle\" class=\"ProdBar\" id=\"bar\"/>\n" +
- " <component bundle=\"foobundle\" class=\"ProdBaz\" id=\"baz\"/>\n" +
- " <nodes>\n" +
- " <node hostalias=\"node0\" baseport=\"5001\"/>\n" +
- " </nodes>\n" +
- " </container>\n" +
- "</services>";
+ """
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!-- Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -->
+ <services xmlns:deploy="vespa" xmlns:preprocess="properties" version="1.0">
+ <admin version="2.0">
+ <adminserver hostalias="node0"/>
+ </admin>
+ <content id="foo" version="1.0">
+ <redundancy>1</redundancy>
+ <documents>
+ <document mode="index" type="music.sd"/>
+ </documents>
+ <nodes>
+ <node distribution-key="0" hostalias="node0"/>
+ <node distribution-key="1" hostalias="node1"/>
+ <node distribution-key="2" hostalias="node2"/>
+ </nodes>
+ </content>
+ <container id="stateless" version="1.0">
+ <search>
+ <chain id="common">
+ <searcher id="MySearcher1"/>
+ <searcher id="MySearcher2"/>
+ </chain>
+ </search>
+ <component bundle="foobundle" class="MyFoo" id="foo"/>
+ <component bundle="foobundle" class="ProdBar" id="bar"/>
+ <component bundle="foobundle" class="ProdBaz" id="baz"/>
+ <nodes>
+ <node hostalias="node0" baseport="5001"/>
+ </nodes>
+ </container>
+ </services>""";
TestBase.assertDocument(expectedUsWest,
new XmlPreProcessor(appDir,
services,
@@ -127,36 +134,38 @@ public class XmlPreprocessorTest {
Tags.empty()).run());
String expectedUsEastAndCentral =
- "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>" +
- "<services xmlns:deploy=\"vespa\" xmlns:preprocess=\"properties\" version=\"1.0\">\n" +
- " <admin version=\"2.0\">\n" +
- " <adminserver hostalias=\"node1\"/>\n" +
- " </admin>\n" +
- " <content id=\"foo\" version=\"1.0\">\n" +
- " <redundancy>1</redundancy>\n" +
- " <documents>\n" +
- " <document mode=\"index\" type=\"music.sd\"/>\n" +
- " </documents>\n" +
- " <nodes>\n" +
- " <node distribution-key=\"0\" hostalias=\"node0\"/>\n" +
- " <node distribution-key=\"1\" hostalias=\"node1\"/>\n" +
- " </nodes>\n" +
- " </content>\n" +
- " <container id=\"stateless\" version=\"1.0\">\n" +
- " <search>\n" +
- " <chain id=\"common\">\n" +
- " <searcher id=\"MySearcher1\"/>\n" +
- " <searcher id=\"MySearcher2\"/>\n" +
- " </chain>\n" +
- " </search>\n" +
- " <component bundle=\"foobundle\" class=\"MyFoo\" id=\"foo\"/>\n" +
- " <component bundle=\"foobundle\" class=\"ProdBar\" id=\"bar\"/>\n" +
- " <component bundle=\"foobundle\" class=\"ProdBaz\" id=\"baz\"/>\n" +
- " <nodes>\n" +
- " <node hostalias=\"node0\" baseport=\"5002\"/>\n" +
- " </nodes>\n" +
- " </container>\n" +
- "</services>";
+ """
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!-- Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -->
+ <services xmlns:deploy="vespa" xmlns:preprocess="properties" version="1.0">
+ <admin version="2.0">
+ <adminserver hostalias="node1"/>
+ </admin>
+ <content id="foo" version="1.0">
+ <redundancy>1</redundancy>
+ <documents>
+ <document mode="index" type="music.sd"/>
+ </documents>
+ <nodes>
+ <node distribution-key="0" hostalias="node0"/>
+ <node distribution-key="1" hostalias="node1"/>
+ </nodes>
+ </content>
+ <container id="stateless" version="1.0">
+ <search>
+ <chain id="common">
+ <searcher id="MySearcher1"/>
+ <searcher id="MySearcher2"/>
+ </chain>
+ </search>
+ <component bundle="foobundle" class="MyFoo" id="foo"/>
+ <component bundle="foobundle" class="ProdBar" id="bar"/>
+ <component bundle="foobundle" class="ProdBaz" id="baz"/>
+ <nodes>
+ <node hostalias="node0" baseport="5002"/>
+ </nodes>
+ </container>
+ </services>""";
TestBase.assertDocument(expectedUsEastAndCentral,
new XmlPreProcessor(appDir,
services,
@@ -176,44 +185,46 @@ public class XmlPreprocessorTest {
@Test
public void testPropertiesWithOverlappingNames() throws Exception {
String input =
- "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>" +
- "<services xmlns:deploy=\"vespa\" xmlns:preprocess=\"properties\" version=\"1.0\">" +
- " <preprocess:properties>" +
- " <sherpa.host>gamma-usnc1.dht.yahoo.com</sherpa.host>" +
- " <sherpa.port>4080</sherpa.port>" +
- " <lidspacecompaction_interval>3600</lidspacecompaction_interval>" +
- " <lidspacecompaction_interval deploy:environment='prod'>36000</lidspacecompaction_interval>" +
- " <lidspacecompaction_allowedlidbloat>50000</lidspacecompaction_allowedlidbloat>" +
- " <lidspacecompaction_allowedlidbloat deploy:environment='prod'>50000000</lidspacecompaction_allowedlidbloat>" +
- " <lidspacecompaction_allowedlidbloatfactor>0.01</lidspacecompaction_allowedlidbloatfactor>" +
- " <lidspacecompaction_allowedlidbloatfactor deploy:environment='prod'>0.91</lidspacecompaction_allowedlidbloatfactor>" +
- " </preprocess:properties>" +
- " <config name='a'>" +
- " <a>${lidspacecompaction_interval}</a>" +
- " <b>${lidspacecompaction_allowedlidbloat}</b>" +
- " <c>${lidspacecompaction_allowedlidbloatfactor}</c>" +
- " <host>${sherpa.host}</host>" +
- " <port>${sherpa.port}</port>" +
- " </config>" +
- " <admin version=\"2.0\">" +
- " <adminserver hostalias=\"node0\"/>" +
- " </admin>" +
- "</services>";
+ """
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <services xmlns:deploy="vespa" xmlns:preprocess="properties" version="1.0">
+ <preprocess:properties>
+ <sherpa.host>gamma-usnc1.dht.yahoo.com</sherpa.host>
+ <sherpa.port>4080</sherpa.port>
+ <lidspacecompaction_interval>3600</lidspacecompaction_interval>
+ <lidspacecompaction_interval deploy:environment='prod'>36000</lidspacecompaction_interval>
+ <lidspacecompaction_allowedlidbloat>50000</lidspacecompaction_allowedlidbloat>
+ <lidspacecompaction_allowedlidbloat deploy:environment='prod'>50000000</lidspacecompaction_allowedlidbloat>
+ <lidspacecompaction_allowedlidbloatfactor>0.01</lidspacecompaction_allowedlidbloatfactor>
+ <lidspacecompaction_allowedlidbloatfactor deploy:environment='prod'>0.91</lidspacecompaction_allowedlidbloatfactor>
+ </preprocess:properties>
+ <config name='a'>
+ <a>${lidspacecompaction_interval}</a>
+ <b>${lidspacecompaction_allowedlidbloat}</b>
+ <c>${lidspacecompaction_allowedlidbloatfactor}</c>
+ <host>${sherpa.host}</host>
+ <port>${sherpa.port}</port>
+ </config>
+ <admin version="2.0">
+ <adminserver hostalias="node0"/>
+ </admin>
+ </services>""";
String expectedProd =
- "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>" +
- "<services xmlns:deploy=\"vespa\" xmlns:preprocess=\"properties\" version=\"1.0\">" +
- " <config name='a'>" +
- " <a>36000</a>" +
- " <b>50000000</b>" +
- " <c>0.91</c>" +
- " <host>gamma-usnc1.dht.yahoo.com</host>" +
- " <port>4080</port>" +
- " </config>" +
- " <admin version=\"2.0\">" +
- " <adminserver hostalias=\"node0\"/>" +
- " </admin>" +
- "</services>";
+ """
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <services xmlns:deploy="vespa" xmlns:preprocess="properties" version="1.0">
+ <config name='a'>
+ <a>36000</a>
+ <b>50000000</b>
+ <c>0.91</c>
+ <host>gamma-usnc1.dht.yahoo.com</host>
+ <port>4080</port>
+ </config>
+ <admin version="2.0">
+ <adminserver hostalias="node0"/>
+ </admin>
+ </services>""";
Document docDev = (new XmlPreProcessor(appDir,
new StringReader(input),
InstanceName.defaultName(),