You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2019/06/12 05:03:35 UTC

[camel] 06/08: CAMEL-13369: Message History EIP now supports filtering nodes and to keep a copy of the traced message.

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 3a72850172b8cb667c9b9520814b788cc84aa1ee
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jun 11 21:23:40 2019 +0200

    CAMEL-13369: Message History EIP now supports filtering nodes and to keep a copy of the traced message.
---
 .../impl/engine}/DefaultMessageHistoryFactory.java      | 17 +++++++++--------
 .../java/org/apache/camel/impl/DefaultCamelContext.java |  2 +-
 .../impl/DefaultAsyncProcessorAwaitManagerTest.java     |  2 +-
 3 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/core/camel-support/src/main/java/org/apache/camel/support/DefaultMessageHistoryFactory.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultMessageHistoryFactory.java
similarity index 89%
rename from core/camel-support/src/main/java/org/apache/camel/support/DefaultMessageHistoryFactory.java
rename to core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultMessageHistoryFactory.java
index c0c1050..13acc5c 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/DefaultMessageHistoryFactory.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultMessageHistoryFactory.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.support;
+package org.apache.camel.impl.engine;
 
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
@@ -23,6 +23,8 @@ 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.DefaultMessageHistory;
+import org.apache.camel.support.PatternHelper;
 import org.apache.camel.support.service.ServiceSupport;
 
 @ManagedResource(description = "Managed MessageHistoryFactory")
@@ -30,17 +32,13 @@ public class DefaultMessageHistoryFactory extends ServiceSupport implements Mess
 
     private boolean copyMessage;
     private String nodePattern;
+    private volatile String[] nodePatternParts;
 
     @Override
     public MessageHistory newMessageHistory(String routeId, NamedNode node, long timestamp, Exchange exchange) {
-        if (!isRunAllowed()) {
-            return null;
-        }
-
-        if (nodePattern != null) {
+        if (nodePatternParts != null) {
             String name = node.getShortName();
-            String[] parts = nodePattern.split(",");
-            for (String part : parts) {
+            for (String part : nodePatternParts) {
                 boolean match = PatternHelper.matchPattern(name, part);
                 if (!match) {
                     return null;
@@ -74,6 +72,9 @@ public class DefaultMessageHistoryFactory extends ServiceSupport implements Mess
     @ManagedAttribute(description = "Pattern to filter EIPs")
     public void setNodePattern(String nodePattern) {
         this.nodePattern = nodePattern;
+        if (nodePattern != null) {
+            this.nodePatternParts = nodePattern.split(",");
+        }
     }
 
     @Override
diff --git a/core/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/core/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
index dbfc62c..6b7ac7e 100644
--- a/core/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
+++ b/core/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
@@ -41,6 +41,7 @@ import org.apache.camel.impl.engine.DefaultInflightRepository;
 import org.apache.camel.impl.engine.DefaultInjector;
 import org.apache.camel.impl.engine.DefaultLanguageResolver;
 import org.apache.camel.impl.engine.DefaultManagementNameStrategy;
+import org.apache.camel.impl.engine.DefaultMessageHistoryFactory;
 import org.apache.camel.impl.engine.DefaultNodeIdFactory;
 import org.apache.camel.impl.engine.DefaultPackageScanClassResolver;
 import org.apache.camel.impl.engine.DefaultProcessorFactory;
@@ -57,7 +58,6 @@ import org.apache.camel.impl.engine.WebSpherePackageScanClassResolver;
 import org.apache.camel.impl.health.DefaultHealthCheckRegistry;
 import org.apache.camel.runtimecatalog.RuntimeCamelCatalog;
 import org.apache.camel.runtimecatalog.impl.DefaultRuntimeCamelCatalog;
-import org.apache.camel.support.DefaultMessageHistoryFactory;
 import org.apache.camel.spi.AsyncProcessorAwaitManager;
 import org.apache.camel.spi.BeanProcessorFactory;
 import org.apache.camel.spi.BeanProxyFactory;
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultAsyncProcessorAwaitManagerTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/DefaultAsyncProcessorAwaitManagerTest.java
index 8afe37a..a4c30e6 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultAsyncProcessorAwaitManagerTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/DefaultAsyncProcessorAwaitManagerTest.java
@@ -26,7 +26,7 @@ import org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager;
 import org.apache.camel.spi.AsyncProcessorAwaitManager;
 import org.apache.camel.spi.MessageHistoryFactory;
 import org.apache.camel.support.DefaultExchange;
-import org.apache.camel.support.DefaultMessageHistoryFactory;
+import org.apache.camel.impl.engine.DefaultMessageHistoryFactory;
 import org.junit.Test;
 
 import static org.hamcrest.core.Is.is;