summaryrefslogtreecommitdiffstats
path: root/config-application-package
diff options
context:
space:
mode:
authorHarald Musum <musum@yahoo-inc.com>2017-01-24 11:07:10 +0100
committerHarald Musum <musum@yahoo-inc.com>2017-01-24 11:07:10 +0100
commit7b5323ee2d26e38e4c38a44da79e2eedc9a9bce6 (patch)
tree4b11314b06308f087f773393a29ece19164277a2 /config-application-package
parentd80a42df35c195e1058d2cee36e03986146a224f (diff)
Simplify code and change order of attributes in test
Diffstat (limited to 'config-application-package')
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java20
-rw-r--r--config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java2
2 files changed, 9 insertions, 13 deletions
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 a060433cda6..6776119567b 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
@@ -12,6 +12,8 @@ import org.w3c.dom.NamedNodeMap;
import javax.xml.transform.TransformerException;
import java.util.*;
import java.util.logging.Logger;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
/**
* Handles overrides in a XML document according to the rules defined for multi environment application packages.
@@ -253,18 +255,12 @@ class OverrideProcessor implements PreProcessor {
// Index by a concatenation of tag name + attribute names (except override attribute names)
for (Element child : children) {
NamedNodeMap attributes = child.getAttributes();
- Set<String> attributeNames = new HashSet<>();
- for (int i = 0; i < attributes.getLength(); i++) {
- String nodeName = attributes.item(i).getNodeName();
- if (nodeName.equals(ATTR_ENV_FULL_NAME) || nodeName.equals(ATTR_REG_FULL_NAME))
- continue;
- attributeNames.add(nodeName);
- }
- List<String> names = new ArrayList<>(attributeNames);
- Collections.sort(names);
- StringBuilder sb = new StringBuilder(child.getTagName());
- names.forEach(sb::append);
- String key = sb.toString();
+ String attributeNames = IntStream.range(0, attributes.getLength())
+ .mapToObj(i -> attributes.item(i).getNodeName())
+ .filter(nodeName -> !(nodeName.equals(ATTR_ENV_FULL_NAME) || nodeName.equals(ATTR_REG_FULL_NAME)))
+ .sorted()
+ .collect(Collectors.joining());
+ String key = child.getTagName() + attributeNames;
if ( ! elementsByEqualAttributeSet.containsKey(key)) {
elementsByEqualAttributeSet.put(key, new ArrayList<>());
}
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 082e019ba98..41b69e9a7aa 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
@@ -37,7 +37,7 @@ public class OverrideProcessorTest {
" <redundancy>1</redundancy>" +
" <documents>" +
" <document mode='index' type='music'/>\n" +
- " <document mode='index' type='music2'/>\n" +
+ " <document type='music2' mode='index' />\n" +
" <document deploy:environment='prod' deploy:region='us-east-3' mode='index' type='music'/>\n" +
" <document deploy:environment='prod' deploy:region='us-east-3' mode='index' type='music2'/>\n" +
" <document deploy:environment='prod' mode='index' type='music3'/>\n" +