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/c50d48ac Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/c50d48ac Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/c50d48ac Branch: refs/heads/master Commit: c50d48ac36375a07049b32974991d22938a2ed72 Parents: 9708a10 Author: Claus Ibsen <davscl...@apache.org> Authored: Mon May 20 18:27:18 2013 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Tue May 21 07:43:38 2013 +0200 ---------------------------------------------------------------------- .../org/apache/camel/impl/DefaultRouteContext.java | 3 - .../apache/camel/processor/CorrectRouteIdTest.java | 38 ++++++++++++++- 2 files changed, 37 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/c50d48ac/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java index 07c3235..3bcb8e8 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java @@ -36,7 +36,6 @@ import org.apache.camel.model.ProcessorDefinition; import org.apache.camel.model.RouteDefinition; import org.apache.camel.processor.CamelInternalProcessor; import org.apache.camel.processor.Pipeline; -import org.apache.camel.processor.UnitOfWorkProcessor; import org.apache.camel.spi.InterceptStrategy; import org.apache.camel.spi.RouteContext; import org.apache.camel.spi.RoutePolicy; @@ -153,8 +152,6 @@ public class DefaultRouteContext implements RouteContext { String routeId = route.idOrCreate(getCamelContext().getNodeIdFactory()); // and wrap it in a unit of work so the UoW is on the top, so the entire route will be in the same UoW - //UnitOfWorkProcessor unitOfWorkProcessor = new UnitOfWorkProcessor(this, target); - CamelInternalProcessor internal = new CamelInternalProcessor(target); internal.addTask(new CamelInternalProcessor.UnitOfWorkProcessorTask(routeId)); http://git-wip-us.apache.org/repos/asf/camel/blob/c50d48ac/camel-core/src/test/java/org/apache/camel/processor/CorrectRouteIdTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/processor/CorrectRouteIdTest.java b/camel-core/src/test/java/org/apache/camel/processor/CorrectRouteIdTest.java index f5a5661..f91e7e2 100644 --- a/camel-core/src/test/java/org/apache/camel/processor/CorrectRouteIdTest.java +++ b/camel-core/src/test/java/org/apache/camel/processor/CorrectRouteIdTest.java @@ -16,5 +16,41 @@ */ package org.apache.camel.processor; -public class CorrectRouteIdTest { +import org.apache.camel.ContextTestSupport; +import org.apache.camel.builder.RouteBuilder; + +public class CorrectRouteIdTest extends ContextTestSupport { + + public void testCorrectRouteId() throws Exception { + getMockEndpoint("mock:foo").expectedHeaderReceived("foo", "foo"); + getMockEndpoint("mock:bar").expectedHeaderReceived("bar", "bar"); + getMockEndpoint("mock:baz").expectedHeaderReceived("baz", "baz"); + + template.requestBody("direct:foo", "Hello World"); + + assertMockEndpointsSatisfied(); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + @Override + public void configure() throws Exception { + from("direct:foo").routeId("foo") + .setHeader("foo").simple("routeId") + .to("mock:foo") + .to("seda:bar") + .to("mock:result"); + + from("seda:bar").routeId("bar") + .setHeader("bar").simple("routeId") + .to("mock:bar") + .to("direct:baz"); + + from("direct:baz").routeId("baz") + .setHeader("baz").simple("routeId") + .to("mock:baz"); + } + }; + } }