This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch kamelet-local-registry in repository https://gitbox.apache.org/repos/asf/camel.git
commit ffd4cf98361809d24e9f579b4b9198a46fdee27e Author: Claus Ibsen <[email protected]> AuthorDate: Wed May 5 07:12:02 2021 +0200 CAMEL-16394: Route Template local beans. WIP --- .../org/apache/camel/impl/DefaultCamelContext.java | 3 +++ .../camel/builder/RouteTemplateLocalBeanTest.java | 24 +++++++++++++++++++--- .../org/apache/camel/support/DefaultRegistry.java | 4 ++++ 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java index 1236c6e..f97e068 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java @@ -782,6 +782,9 @@ public class DefaultCamelContext extends SimpleCamelContext implements ModelCame setStartingRoutes(false); } pc.setLocalProperties(null); + if (localBeans != null) { + localBeans.setLocalBeanRepository(null); + } } } diff --git a/core/camel-core/src/test/java/org/apache/camel/builder/RouteTemplateLocalBeanTest.java b/core/camel-core/src/test/java/org/apache/camel/builder/RouteTemplateLocalBeanTest.java index b3ec7c3..4269282 100644 --- a/core/camel-core/src/test/java/org/apache/camel/builder/RouteTemplateLocalBeanTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/builder/RouteTemplateLocalBeanTest.java @@ -17,7 +17,9 @@ package org.apache.camel.builder; import org.apache.camel.ContextTestSupport; +import org.apache.camel.Exchange; import org.apache.camel.Processor; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -95,6 +97,7 @@ public class RouteTemplateLocalBeanTest extends ContextTestSupport { } @Test + @Disabled("TODO: Fix me") public void testLocalBeanInBuilderTwo() throws Exception { context.addRoutes(new RouteBuilder() { @Override @@ -110,15 +113,14 @@ public class RouteTemplateLocalBeanTest extends ContextTestSupport { TemplatedRouteBuilder.builder(context, "myTemplate") .parameter("foo", "one") .parameter("bar", "myBar") - .bind("myBar", (Processor) ex -> ex.getMessage().setBody("Builder " + ex.getMessage().getBody())) + .bind("myBar", new BuilderProcessor()) .routeId("myRoute") .add(); - // TODO: Fix me TemplatedRouteBuilder.builder(context, "myTemplate") .parameter("foo", "two") .parameter("bar", "myBar") - .bind("myBar", (Processor) ex -> ex.getMessage().setBody("Builder2 " + ex.getMessage().getBody())) + .bind("myBar", new BuilderTwoProcessor()) .routeId("myRoute2") .add(); @@ -135,4 +137,20 @@ public class RouteTemplateLocalBeanTest extends ContextTestSupport { context.stop(); } + private class BuilderProcessor implements Processor { + + @Override + public void process(Exchange exchange) throws Exception { + exchange.getMessage().setBody("Builder " + exchange.getMessage().getBody()); + } + } + + private class BuilderTwoProcessor implements Processor { + + @Override + public void process(Exchange exchange) throws Exception { + exchange.getMessage().setBody("Builder2 " + exchange.getMessage().getBody()); + } + } + } diff --git a/core/camel-support/src/main/java/org/apache/camel/support/DefaultRegistry.java b/core/camel-support/src/main/java/org/apache/camel/support/DefaultRegistry.java index dba5f1c..0886d52 100644 --- a/core/camel-support/src/main/java/org/apache/camel/support/DefaultRegistry.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/DefaultRegistry.java @@ -97,6 +97,10 @@ public class DefaultRegistry extends ServiceSupport implements Registry, LocalBe this.localRepository.set(repository); this.localRepositoryEnabled = true; } else { + BeanRepository old = this.localRepository.get(); + if (old != null) { + ServiceHelper.stopService(old); + } this.localRepository.remove(); this.localRepositoryEnabled = false; }
