diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/AbstractMessageEndpointParser.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/AbstractMessageEndpointParser.java index 9b144ebfbe..65f85f9069 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/AbstractMessageEndpointParser.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/AbstractMessageEndpointParser.java @@ -54,6 +54,8 @@ public abstract class AbstractMessageEndpointParser extends AbstractSingleBeanDe private static final String SELECTOR_ATTRIBUTE = "selector"; + private static final String ERROR_HANDLER_ATTRIBUTE = "error-handler"; + private static final String INTERCEPTORS_ELEMENT = "interceptors"; @@ -111,6 +113,7 @@ public abstract class AbstractMessageEndpointParser extends AbstractSingleBeanDe IntegrationNamespaceUtils.setValueIfAttributeDefined( builder, element, OUTPUT_CHANNEL_ATTRIBUTE, "outputChannelName"); IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, SELECTOR_ATTRIBUTE); + IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, ERROR_HANDLER_ATTRIBUTE); String returnAddressOverridesAttribute = element.getAttribute(RETURN_ADDRESS_OVERRIDES_ATTRIBUTE); boolean returnAddressOverrides = "true".equals(returnAddressOverridesAttribute); builder.addPropertyValue("returnAddressOverrides", returnAddressOverrides); diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd b/org.springframework.integration/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd index 50ef413b20..99de95dd76 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd @@ -213,6 +213,7 @@ + diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/util/ErrorHandler.java b/org.springframework.integration/src/main/java/org/springframework/integration/util/ErrorHandler.java index 36d26d402f..f24fd60f6c 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/util/ErrorHandler.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/util/ErrorHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2007 the original author or authors. + * Copyright 2002-2008 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/EndpointParserTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/config/EndpointParserTests.java index 5dfaf6ba8a..b84dc4248a 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/config/EndpointParserTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/EndpointParserTests.java @@ -104,4 +104,16 @@ public class EndpointParserTests { endpoint.send(message); } + @Test + public void testEndpointWithErrorHandler() { + ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( + "endpointWithErrorHandler.xml", this.getClass()); + MessageChannel channel = (MessageChannel) context.getBean("channel"); + TestErrorHandler errorHandler = (TestErrorHandler) context.getBean("errorHandler"); + assertNull(errorHandler.getLastError()); + channel.send(new StringMessage("test")); + assertNotNull(errorHandler.getLastError()); + assertEquals("intentional test failure", errorHandler.getLastError().getMessage()); + } + } diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/TestErrorHandler.java b/org.springframework.integration/src/test/java/org/springframework/integration/config/TestErrorHandler.java index 7328c051bf..9572249841 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/config/TestErrorHandler.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/TestErrorHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2007 the original author or authors. + * Copyright 2002-2008 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/endpointWithErrorHandler.xml b/org.springframework.integration/src/test/java/org/springframework/integration/config/endpointWithErrorHandler.xml index b49e67a9f2..2ee5ff3aa6 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/config/endpointWithErrorHandler.xml +++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/endpointWithErrorHandler.xml @@ -6,15 +6,15 @@ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-core-1.0.xsd"> - + - + - + - + - +