diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/AggregatorParser.java b/spring-integration-core/src/main/java/org/springframework/integration/config/AggregatorParser.java
index 96b430f9c0..2278c23cd4 100644
--- a/spring-integration-core/src/main/java/org/springframework/integration/config/AggregatorParser.java
+++ b/spring-integration-core/src/main/java/org/springframework/integration/config/AggregatorParser.java
@@ -57,6 +57,8 @@ public class AggregatorParser implements BeanDefinitionParser {
public static final String TRACKED_CORRELATION_ID_CAPACITY_ATTRIBUTE = "tracked-correlation-id-capacity";
+ public static final String TIMEOUT_ATTRIBUTE = "timeout";
+
private static final String COMPLETION_STRATEGY_PROPERTY = "completionStrategy";
private static final String DEFAULT_REPLY_CHANNEL_PROPERTY = "defaultReplyChannel";
@@ -71,12 +73,13 @@ public class AggregatorParser implements BeanDefinitionParser {
public static final String TRACKED_CORRELATION_ID_CAPACITY_PROPERTY = "trackedCorrelationIdCapacity";
+ public static final String TIMEOUT = "timeout";
+
public BeanDefinition parse(Element element, ParserContext parserContext) {
return parseAggregatorElement(element, parserContext, true);
}
-
private BeanDefinition parseAggregatorElement(Element element, ParserContext parserContext, boolean topLevel) {
final RootBeanDefinition aggregatorDef = new RootBeanDefinition(AggregatingMessageHandler.class);
aggregatorDef.setSource(parserContext.extractSource(element));
@@ -116,6 +119,7 @@ public class AggregatorParser implements BeanDefinitionParser {
REAPER_INTERVAL_ATTRIBUTE);
IntegrationNamespaceUtils.setValueIfAttributeDefined(aggregatorDef, TRACKED_CORRELATION_ID_CAPACITY_PROPERTY,
element, TRACKED_CORRELATION_ID_CAPACITY_ATTRIBUTE);
+ IntegrationNamespaceUtils.setValueIfAttributeDefined(aggregatorDef, TIMEOUT, element, TIMEOUT_ATTRIBUTE);
String beanName = StringUtils.hasText(id) ? id : parserContext.getReaderContext().generateBeanName(
aggregatorDef);
parserContext.registerBeanComponent(new BeanComponentDefinition(aggregatorDef, beanName));
diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd b/spring-integration-core/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd
index 5975357374..371d1e3c8d 100644
--- a/spring-integration-core/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd
+++ b/spring-integration-core/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd
@@ -243,6 +243,7 @@
+
diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/AggregatorParserTests.java b/spring-integration-core/src/test/java/org/springframework/integration/config/AggregatorParserTests.java
index 7af5e824c4..afb6d62672 100644
--- a/spring-integration-core/src/test/java/org/springframework/integration/config/AggregatorParserTests.java
+++ b/spring-integration-core/src/test/java/org/springframework/integration/config/AggregatorParserTests.java
@@ -99,6 +99,8 @@ public class AggregatorParserTests {
Assert.assertEquals(
"The AggregatingMessageHandler is not configured with the appropriate tracked correlationId capacity",
99, getPropertyValue(completeAggregatingMessageHandler, "trackedCorrelationIdCapacity", int.class));
+ Assert.assertEquals("The AggregatingMessageHandler is not configured with the appropriate timeout",
+ 42l, getPropertyValue(completeAggregatingMessageHandler, "timeout", long.class));
}
@Test
diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/aggregatorParserTests.xml b/spring-integration-core/src/test/java/org/springframework/integration/config/aggregatorParserTests.xml
index 76ecb3c554..49c6e08a6a 100644
--- a/spring-integration-core/src/test/java/org/springframework/integration/config/aggregatorParserTests.xml
+++ b/spring-integration-core/src/test/java/org/springframework/integration/config/aggregatorParserTests.xml
@@ -1,11 +1,11 @@
-
+ http://www.springframework.org/schema/integration/spring-integration-core-1.0.xsd">
@@ -17,7 +17,8 @@
send-timeout="86420000"
send-partial-result-on-timeout="true"
reaper-interval="135"
- tracked-correlation-id-capacity="99"/>
+ tracked-correlation-id-capacity="99"
+ timeout="42"/>
@@ -29,6 +30,6 @@
-
+