diff --git a/spring-integration-core/src/main/java/org/springframework/integration/support/management/graph/IntegrationGraphServer.java b/spring-integration-core/src/main/java/org/springframework/integration/support/management/graph/IntegrationGraphServer.java index b3bbfc0a3b..5400f8d7fc 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/support/management/graph/IntegrationGraphServer.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/support/management/graph/IntegrationGraphServer.java @@ -50,6 +50,7 @@ import org.springframework.util.StringUtils; * Builds the runtime object model graph. * * @author Gary Russell + * @author Artem Bilan * @since 4.3 * */ @@ -364,11 +365,12 @@ public class IntegrationGraphServer implements ApplicationContextAware, Applicat private MessageHandlerNode discardingHandler(String name, IntegrationConsumer consumer, DiscardingMessageHandler handler, String output, String errors, boolean polled) { + String discards = handler.getDiscardChannel() != null ? handler.getDiscardChannel().toString() : null; return polled ? new ErrorCapableDiscardingMessageHandlerNode(this.nodeId.incrementAndGet(), name, handler, - consumer.getInputChannel().toString(), output, handler.getDiscardChannel().toString(), errors) + consumer.getInputChannel().toString(), output, discards, errors) : new DiscardingMessageHandlerNode(this.nodeId.incrementAndGet(), name, handler, - consumer.getInputChannel().toString(), output, handler.getDiscardChannel().toString()); + consumer.getInputChannel().toString(), output, discards); } private MessageHandlerNode routingHandler(String name, IntegrationConsumer consumer, MessageHandler handler, diff --git a/spring-integration-core/src/test/java/org/springframework/integration/support/management/graph/IntegrationGraphServerTests.java b/spring-integration-core/src/test/java/org/springframework/integration/support/management/graph/IntegrationGraphServerTests.java index 1b2e2b91a3..adfc9a8f2d 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/support/management/graph/IntegrationGraphServerTests.java +++ b/spring-integration-core/src/test/java/org/springframework/integration/support/management/graph/IntegrationGraphServerTests.java @@ -34,6 +34,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.integration.annotation.Filter; import org.springframework.integration.annotation.IntegrationComponentScan; import org.springframework.integration.annotation.MessagingGateway; import org.springframework.integration.annotation.Router; @@ -67,6 +68,7 @@ import com.fasterxml.jackson.databind.SerializationFeature; /** * @author Gary Russell + * @author Artem Bilan * @since 4.3 * */ @@ -95,10 +97,10 @@ public class IntegrationGraphServerTests { assertThat(map.size(), is(equalTo(3))); List> nodes = (List>) map.get("nodes"); assertThat(nodes, is(notNullValue())); - assertThat(nodes.size(), is(equalTo(31))); + assertThat(nodes.size(), is(equalTo(32))); List> links = (List>) map.get("links"); assertThat(links, is(notNullValue())); - assertThat(links.size(), is(equalTo(32))); + assertThat(links.size(), is(equalTo(33))); toRouter.send(MessageBuilder.withPayload("foo").setHeader("foo", "bar").build()); toRouter.send(MessageBuilder.withPayload("foo").setHeader("foo", "baz").build()); @@ -117,10 +119,10 @@ public class IntegrationGraphServerTests { assertThat(map.size(), is(equalTo(3))); nodes = (List>) map.get("nodes"); assertThat(nodes, is(notNullValue())); - assertThat(nodes.size(), is(equalTo(31))); + assertThat(nodes.size(), is(equalTo(32))); links = (List>) map.get("links"); assertThat(links, is(notNullValue())); - assertThat(links.size(), is(equalTo(34))); + assertThat(links.size(), is(equalTo(35))); } @Configuration @@ -270,6 +272,11 @@ public class IntegrationGraphServerTests { public void bar(String foo) { } + @Filter(inputChannel = "filterChannel") + public boolean filter(String payload) { + return false; + } + } public static class BareHandler implements MessageHandler {