aboutsummaryrefslogtreecommitdiffstats
path: root/config-application-package
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2017-04-18 15:53:19 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2017-04-18 15:53:19 +0200
commit352b828e91711ab1384213ad7f741d423688eeca (patch)
tree55094ccb785eeca6156f8445cd45a1c5e868bbba /config-application-package
parent76497a12e6ec76d82527b2bd2fbe3de8bba6eb63 (diff)
parentbd5edd2681f6b0a3282cd053acb98d4b0ee126c4 (diff)
Merge branch 'master' into bratseth/receive-wanted-version
Diffstat (limited to 'config-application-package')
-rw-r--r--config-application-package/pom.xml6
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java10
-rw-r--r--config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java3
3 files changed, 15 insertions, 4 deletions
diff --git a/config-application-package/pom.xml b/config-application-package/pom.xml
index 8236458c532..6bb1191ff8f 100644
--- a/config-application-package/pom.xml
+++ b/config-application-package/pom.xml
@@ -98,6 +98,12 @@
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
+ <groupId>com.yahoo.vespa</groupId>
+ <artifactId>configdefinitions</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
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 1e77ad1a8f7..db506c0ed51 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
@@ -118,14 +118,18 @@ class OverrideProcessor implements PreProcessor {
Iterator<Element> elemIt = children.iterator();
while (elemIt.hasNext()) {
Element child = elemIt.next();
- Optional<Environment> env = getEnvironment(child);
- RegionName reg = getRegion(child);
- if ((env.isPresent() && !environment.equals(env.get())) || (!reg.isDefault() && !region.equals(reg))) {
+ if ( ! matches(getEnvironment(child), getRegion(child))) {
parent.removeChild(child);
elemIt.remove();
}
}
}
+
+ private boolean matches(Optional<Environment> elementEnvironment, RegionName elementRegion) {
+ if (elementEnvironment.isPresent() && ! environment.equals(elementEnvironment.get())) return false;
+ if ( ! elementRegion.isDefault() && ( ! region.equals(elementRegion) || ! environment.equals(Environment.prod))) return false;
+ return true;
+ }
/**
* Find the most specific element and remove all others.
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 41b69e9a7aa..adced18bb85 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
@@ -268,7 +268,8 @@ public class OverrideProcessorTest {
" <document mode=\"index\" type=\"music2\"/>" +
" </documents>" +
" <nodes>" +
- " <node distribution-key=\"0\" hostalias=\"node1\"/>" +
+ // node1 is specified for us-west but does not match because region overrides implies environment=prod
+ " <node distribution-key=\"0\" hostalias=\"node0\"/>" +
" </nodes>" +
" </content>" +
" <jdisc id=\"stateless\" version=\"1.0\">" +