diff options
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.java | 297 |
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(), |