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
+    }
 }

Reply via email to