CAMEL-6377: Optimized routing engine to reduce stack frames in use during routing. Work in progress.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/44086237 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/44086237 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/44086237 Branch: refs/heads/master Commit: 4408623727f089637754ac8d36b2907991a620ba Parents: e80810f Author: Claus Ibsen <davscl...@apache.org> Authored: Tue May 21 07:37:29 2013 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Tue May 21 07:43:39 2013 +0200 ---------------------------------------------------------------------- .../java/org/apache/camel/impl/MDCUnitOfWork.java | 33 +-------------- camel-core/src/test/resources/log4j.properties | 2 +- 2 files changed, 3 insertions(+), 32 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/44086237/camel-core/src/main/java/org/apache/camel/impl/MDCUnitOfWork.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/MDCUnitOfWork.java b/camel-core/src/main/java/org/apache/camel/impl/MDCUnitOfWork.java index 62f6b16..6565887 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/MDCUnitOfWork.java +++ b/camel-core/src/main/java/org/apache/camel/impl/MDCUnitOfWork.java @@ -184,46 +184,17 @@ public class MDCUnitOfWork extends DefaultUnitOfWork { private static final class MDCCallback implements AsyncCallback { private final AsyncCallback delegate; - private final String breadcrumbId; - private final String exchangeId; - private final String messageId; - private final String correlationId; private final String routeId; - private final String camelContextId; private MDCCallback(AsyncCallback delegate) { this.delegate = delegate; - this.exchangeId = MDC.get(MDC_EXCHANGE_ID); - this.messageId = MDC.get(MDC_MESSAGE_ID); - this.breadcrumbId = MDC.get(MDC_BREADCRUMB_ID); - this.correlationId = MDC.get(MDC_CORRELATION_ID); - this.camelContextId = MDC.get(MDC_CAMEL_CONTEXT_ID); + // we only need to keep track of route id as we may change routes during routing this.routeId = MDC.get(MDC_ROUTE_ID); } public void done(boolean doneSync) { try { - if (!doneSync) { - // when done asynchronously then restore information from previous thread - if (breadcrumbId != null) { - MDC.put(MDC_BREADCRUMB_ID, breadcrumbId); - } - if (exchangeId != null) { - MDC.put(MDC_EXCHANGE_ID, exchangeId); - } - if (messageId != null) { - MDC.put(MDC_MESSAGE_ID, messageId); - } - if (correlationId != null) { - MDC.put(MDC_CORRELATION_ID, correlationId); - } - if (routeId != null) { - MDC.put(MDC_ROUTE_ID, routeId); - } - if (camelContextId != null) { - MDC.put(MDC_CAMEL_CONTEXT_ID, camelContextId); - } - } + MDC.put(MDC_ROUTE_ID, routeId); } finally { // muse ensure delegate is invoked delegate.done(doneSync); http://git-wip-us.apache.org/repos/asf/camel/blob/44086237/camel-core/src/test/resources/log4j.properties ---------------------------------------------------------------------- diff --git a/camel-core/src/test/resources/log4j.properties b/camel-core/src/test/resources/log4j.properties index 21ecb02..55b0834 100644 --- a/camel-core/src/test/resources/log4j.properties +++ b/camel-core/src/test/resources/log4j.properties @@ -59,7 +59,7 @@ log4j.appender.out=org.apache.log4j.ConsoleAppender log4j.appender.out.layout=org.apache.log4j.PatternLayout log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n # MDC -#log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %-10.10X{camel.breadcrumbId} - %-10.10X{camelexchangeId} - %-10.10X{camel.correlationId} - %-10.10X{camel.routeId} - %m%n +#log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %-10.10X{camel.breadcrumbId} - %-10.10X{camel.exchangeId} - %-10.10X{camel.correlationId} - %-10.10X{camel.routeId} - %m%n # File appender log4j.appender.file=org.apache.log4j.FileAppender