From d943af0e8782207a7191a463464da96ac89cf0b3 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Sat, 22 Nov 2008 14:37:28 +0000 Subject: [PATCH] Added postProcessHeaders method to the SimpleHeaderEnricherParser (preparing for INT-489). --- .../xml/SimpleHeaderEnricherParser.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/SimpleHeaderEnricherParser.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/SimpleHeaderEnricherParser.java index 52479da8cd..d07fce0bd0 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/SimpleHeaderEnricherParser.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/SimpleHeaderEnricherParser.java @@ -78,25 +78,32 @@ public class SimpleHeaderEnricherParser extends AbstractTransformerParser { @Override @SuppressWarnings("unchecked") protected void parseTransformer(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { - ManagedMap headersToAdd = new ManagedMap(); - NamedNodeMap nodeMap = element.getAttributes(); - for (int i = 0; i < nodeMap.getLength(); i++) { - Node node = nodeMap.item(i); + ManagedMap headers = new ManagedMap(); + NamedNodeMap attributes = element.getAttributes(); + for (int i = 0; i < attributes.getLength(); i++) { + Node node = attributes.item(i); String name = node.getNodeName(); if (this.isEligibleHeaderName(name)) { if (this.referenceAttributes.contains(name)) { - headersToAdd.put(name, new RuntimeBeanReference(node.getNodeValue())); + headers.put(name, new RuntimeBeanReference(node.getNodeValue())); } else { - headersToAdd.put(name, node.getNodeValue()); + headers.put(name, node.getNodeValue()); } } } - builder.addConstructorArgValue(headersToAdd); + this.postProcessHeaders(element, headers); + builder.addConstructorArgValue(headers); builder.addPropertyValue("overwrite", this.shouldOverwrite(element)); if (this.prefix != null) { builder.addPropertyValue("prefix", this.prefix); } } + /** + * Subclasses may implement this method to provide additional headers. + */ + protected void postProcessHeaders(Element element, ManagedMap headers) { + } + }