This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit d644327d45f41060c55bea6791f6076f52ad7e92 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Tue Jun 11 21:15:10 2019 +0200 CAMEL-13369: Message History EIP now supports filtering nodes and to keep a copy of the traced message. --- .../apache/camel/spi/MessageHistoryFactory.java | 3 ++- .../support/DefaultMessageHistoryFactory.java | 28 ++++++++++++++++++---- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/MessageHistoryFactory.java b/core/camel-api/src/main/java/org/apache/camel/spi/MessageHistoryFactory.java index 3c3c9b6..12c95f6 100644 --- a/core/camel-api/src/main/java/org/apache/camel/spi/MessageHistoryFactory.java +++ b/core/camel-api/src/main/java/org/apache/camel/spi/MessageHistoryFactory.java @@ -19,11 +19,12 @@ package org.apache.camel.spi; import org.apache.camel.Exchange; import org.apache.camel.MessageHistory; import org.apache.camel.NamedNode; +import org.apache.camel.StaticService; /** * A factory to create {@link MessageHistory} instances. */ -public interface MessageHistoryFactory { +public interface MessageHistoryFactory extends StaticService { /** * Creates a new {@link MessageHistory} diff --git a/core/camel-support/src/main/java/org/apache/camel/support/DefaultMessageHistoryFactory.java b/core/camel-support/src/main/java/org/apache/camel/support/DefaultMessageHistoryFactory.java index 71c1f3f..c0c1050 100644 --- a/core/camel-support/src/main/java/org/apache/camel/support/DefaultMessageHistoryFactory.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/DefaultMessageHistoryFactory.java @@ -20,15 +20,23 @@ import org.apache.camel.Exchange; import org.apache.camel.Message; import org.apache.camel.MessageHistory; import org.apache.camel.NamedNode; +import org.apache.camel.api.management.ManagedAttribute; +import org.apache.camel.api.management.ManagedResource; import org.apache.camel.spi.MessageHistoryFactory; +import org.apache.camel.support.service.ServiceSupport; -public class DefaultMessageHistoryFactory implements MessageHistoryFactory { +@ManagedResource(description = "Managed MessageHistoryFactory") +public class DefaultMessageHistoryFactory extends ServiceSupport implements MessageHistoryFactory { private boolean copyMessage; private String nodePattern; @Override public MessageHistory newMessageHistory(String routeId, NamedNode node, long timestamp, Exchange exchange) { + if (!isRunAllowed()) { + return null; + } + if (nodePattern != null) { String name = node.getShortName(); String[] parts = nodePattern.split(","); @@ -48,23 +56,33 @@ public class DefaultMessageHistoryFactory implements MessageHistoryFactory { return new DefaultMessageHistory(routeId, node, timestamp, msg); } - @Override + @ManagedAttribute(description = "Whether a copy of the message is included in the message history") public boolean isCopyMessage() { return copyMessage; } - @Override + @ManagedAttribute(description = "Whether a copy of the message is included in the message history") public void setCopyMessage(boolean copyMessage) { this.copyMessage = copyMessage; } - @Override + @ManagedAttribute(description = "Pattern to filter EIPs") public String getNodePattern() { return nodePattern; } - @Override + @ManagedAttribute(description = "Pattern to filter EIPs") public void setNodePattern(String nodePattern) { this.nodePattern = nodePattern; } + + @Override + protected void doStart() throws Exception { + // noop + } + + @Override + protected void doStop() throws Exception { + // noop + } }