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 <[email protected]> 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;
