diff --git a/org.springframework.integration.jmx/src/main/java/org/springframework/integration/jmx/config/NotificationPublishingChannelAdapterParser.java b/org.springframework.integration.jmx/src/main/java/org/springframework/integration/jmx/config/NotificationPublishingChannelAdapterParser.java index a14bf71614..a2c95e35ba 100644 --- a/org.springframework.integration.jmx/src/main/java/org/springframework/integration/jmx/config/NotificationPublishingChannelAdapterParser.java +++ b/org.springframework.integration.jmx/src/main/java/org/springframework/integration/jmx/config/NotificationPublishingChannelAdapterParser.java @@ -22,6 +22,7 @@ import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.integration.config.xml.AbstractOutboundChannelAdapterParser; +import org.springframework.integration.config.xml.IntegrationNamespaceUtils; /** * @author Mark Fisher @@ -34,6 +35,7 @@ public class NotificationPublishingChannelAdapterParser extends AbstractOutbound BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition( "org.springframework.integration.jmx.NotificationPublishingMessageHandler"); builder.addConstructorArgValue(element.getAttribute("object-name")); + IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "default-notification-type"); return builder.getBeanDefinition(); } diff --git a/org.springframework.integration.jmx/src/main/resources/org/springframework/integration/jmx/config/spring-integration-jmx-2.0.xsd b/org.springframework.integration.jmx/src/main/resources/org/springframework/integration/jmx/config/spring-integration-jmx-2.0.xsd index 17e867ef00..0f87ddf7c1 100644 --- a/org.springframework.integration.jmx/src/main/resources/org/springframework/integration/jmx/config/spring-integration-jmx-2.0.xsd +++ b/org.springframework.integration.jmx/src/main/resources/org/springframework/integration/jmx/config/spring-integration-jmx-2.0.xsd @@ -80,6 +80,7 @@ + diff --git a/org.springframework.integration.jmx/src/test/java/org/springframework/integration/jmx/config/NotificationPublishingChannelAdapterParserTests-context.xml b/org.springframework.integration.jmx/src/test/java/org/springframework/integration/jmx/config/NotificationPublishingChannelAdapterParserTests-context.xml index 7d42ff811b..f7b3a5e31f 100644 --- a/org.springframework.integration.jmx/src/test/java/org/springframework/integration/jmx/config/NotificationPublishingChannelAdapterParserTests-context.xml +++ b/org.springframework.integration.jmx/src/test/java/org/springframework/integration/jmx/config/NotificationPublishingChannelAdapterParserTests-context.xml @@ -20,7 +20,8 @@ + object-name="test.publisher:name=publisher" + default-notification-type="default.type"/> diff --git a/org.springframework.integration.jmx/src/test/java/org/springframework/integration/jmx/config/NotificationPublishingChannelAdapterParserTests.java b/org.springframework.integration.jmx/src/test/java/org/springframework/integration/jmx/config/NotificationPublishingChannelAdapterParserTests.java index f8bdd6b854..643a18fd60 100644 --- a/org.springframework.integration.jmx/src/test/java/org/springframework/integration/jmx/config/NotificationPublishingChannelAdapterParserTests.java +++ b/org.springframework.integration.jmx/src/test/java/org/springframework/integration/jmx/config/NotificationPublishingChannelAdapterParserTests.java @@ -81,6 +81,17 @@ public class NotificationPublishingChannelAdapterParserTests { assertEquals("test.type", notification.getType()); } + @Test + public void defaultNotificationType() throws Exception { + assertNull(listener.lastNotification); + Message message = MessageBuilder.withPayload("test").build(); + channel.send(message); + assertNotNull(listener.lastNotification); + Notification notification = listener.lastNotification; + assertEquals("default.type", notification.getType()); + } + + private static class TestData { }