This is an automated email from the ASF dual-hosted git repository. orpiske pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit 6fdc87bd495abfcb06374cdde2ab463c10c0edb8 Author: Otavio Rodolfo Piske <angusyo...@gmail.com> AuthorDate: Sat Apr 1 15:04:24 2023 +0200 CAMEL-15105: make the RouteFactory a plugin of the context --- .../java/org/apache/camel/ExtendedCamelContext.java | 15 --------------- .../camel/impl/engine/AbstractCamelContext.java | 2 +- .../impl/engine/DefaultCamelContextExtension.java | 17 ----------------- .../camel/impl/ExtendedCamelContextConfigurer.java | 6 ------ .../impl/lw/LightweightCamelContextExtension.java | 10 ---------- .../java/org/apache/camel/reifier/RouteReifier.java | 2 +- .../java/org/apache/camel/support/PluginHelper.java | 19 +++++++++++++++++++ 7 files changed, 21 insertions(+), 50 deletions(-) diff --git a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java index 21778d95d9d..09e8847d3e8 100644 --- a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java +++ b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java @@ -48,7 +48,6 @@ import org.apache.camel.spi.Registry; import org.apache.camel.spi.ResourceLoader; import org.apache.camel.spi.RestBindingJaxbDataFormatFactory; import org.apache.camel.spi.RouteController; -import org.apache.camel.spi.RouteFactory; import org.apache.camel.spi.RouteStartupOrder; import org.apache.camel.spi.RoutesLoader; import org.apache.camel.spi.StartupStepRecorder; @@ -314,20 +313,6 @@ public interface ExtendedCamelContext { */ FactoryFinder getFactoryFinder(String path); - /** - * Gets the current {@link org.apache.camel.spi.RouteFactory} - * - * @return the factory - */ - RouteFactory getRouteFactory(); - - /** - * Sets a custom {@link org.apache.camel.spi.RouteFactory} - * - * @param routeFactory the custom factory - */ - void setRouteFactory(RouteFactory routeFactory); - /** * Gets the {@link DeferServiceFactory} to use. */ diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java index 1553ed0759a..596891705f0 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java @@ -221,7 +221,6 @@ public abstract class AbstractCamelContext extends BaseService volatile ModelToXMLDumper modelToXMLDumper; volatile RestBindingJaxbDataFormatFactory restBindingJaxbDataFormatFactory; volatile RuntimeCamelCatalog runtimeCamelCatalog; - volatile RouteFactory routeFactory; volatile AsyncProcessorAwaitManager asyncProcessorAwaitManager; volatile UnitOfWorkFactory unitOfWorkFactory; volatile BeanIntrospection beanIntrospection; @@ -380,6 +379,7 @@ public abstract class AbstractCamelContext extends BaseService camelContextExtension.lazyAddContextPlugin(ProcessorFactory.class, this::createProcessorFactory); camelContextExtension.lazyAddContextPlugin(InternalProcessorFactory.class, this::createInternalProcessorFactory); camelContextExtension.lazyAddContextPlugin(InterceptEndpointFactory.class, this::createInterceptEndpointFactory); + camelContextExtension.lazyAddContextPlugin(RouteFactory.class, this::createRouteFactory); if (build) { try { diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java index b4fc2578ce2..3f5f1a668b6 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java @@ -464,23 +464,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext { this.lightweight = lightweight; } - @Override - public RouteFactory getRouteFactory() { - if (camelContext.routeFactory == null) { - synchronized (camelContext.lock) { - if (camelContext.routeFactory == null) { - setRouteFactory(camelContext.createRouteFactory()); - } - } - } - return camelContext.routeFactory; - } - - @Override - public void setRouteFactory(RouteFactory routeFactory) { - camelContext.routeFactory = routeFactory; - } - @Override public HeadersMapFactory getHeadersMapFactory() { return camelContext.headersMapFactory; diff --git a/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java b/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java index 347ed5bb27d..78611fd886c 100644 --- a/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java +++ b/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java @@ -61,8 +61,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com case "ResourceLoader": target.setResourceLoader(property(camelContext, org.apache.camel.spi.ResourceLoader.class, value)); return true; case "restbindingjaxbdataformatfactory": case "RestBindingJaxbDataFormatFactory": target.setRestBindingJaxbDataFormatFactory(property(camelContext, org.apache.camel.spi.RestBindingJaxbDataFormatFactory.class, value)); return true; - case "routefactory": - case "RouteFactory": target.setRouteFactory(property(camelContext, org.apache.camel.spi.RouteFactory.class, value)); return true; case "routesloader": case "RoutesLoader": target.setRoutesLoader(property(camelContext, org.apache.camel.spi.RoutesLoader.class, value)); return true; case "runtimecamelcatalog": @@ -118,8 +116,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com case "ResourceLoader": return org.apache.camel.spi.ResourceLoader.class; case "restbindingjaxbdataformatfactory": case "RestBindingJaxbDataFormatFactory": return org.apache.camel.spi.RestBindingJaxbDataFormatFactory.class; - case "routefactory": - case "RouteFactory": return org.apache.camel.spi.RouteFactory.class; case "routesloader": case "RoutesLoader": return org.apache.camel.spi.RoutesLoader.class; case "runtimecamelcatalog": @@ -176,8 +172,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com case "ResourceLoader": return target.getResourceLoader(); case "restbindingjaxbdataformatfactory": case "RestBindingJaxbDataFormatFactory": return target.getRestBindingJaxbDataFormatFactory(); - case "routefactory": - case "RouteFactory": return target.getRouteFactory(); case "routesloader": case "RoutesLoader": return target.getRoutesLoader(); case "runtimecamelcatalog": diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java index 62449a13059..56b5abd8051 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java @@ -240,16 +240,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext { throw new UnsupportedOperationException(); } - @Override - public RouteFactory getRouteFactory() { - throw new UnsupportedOperationException(); - } - - @Override - public void setRouteFactory(RouteFactory routeFactory) { - throw new UnsupportedOperationException(); - } - @Override public DeferServiceFactory getDeferServiceFactory() { throw new UnsupportedOperationException(); diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java index 45a0f6584c1..cea8c7e5df2 100644 --- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java +++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java @@ -100,7 +100,7 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { // create route String id = definition.idOrCreate(camelContext.getCamelContextExtension().getContextPlugin(NodeIdFactory.class)); String desc = definition.getDescriptionText(); - Route route = camelContext.getCamelContextExtension().getRouteFactory().createRoute(camelContext, definition, id, + Route route = PluginHelper.getRouteFactory(camelContext).createRoute(camelContext, definition, id, desc, endpoint, definition.getResource()); // configure error handler diff --git a/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java index 8ddf5cff349..5a81a2e93ff 100644 --- a/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java @@ -40,6 +40,7 @@ import org.apache.camel.spi.PackageScanResourceResolver; import org.apache.camel.spi.PeriodTaskResolver; import org.apache.camel.spi.PeriodTaskScheduler; import org.apache.camel.spi.ProcessorFactory; +import org.apache.camel.spi.RouteFactory; import org.apache.camel.spi.UriFactoryResolver; public final class PluginHelper { @@ -402,4 +403,22 @@ public final class PluginHelper { public static InterceptEndpointFactory getInterceptEndpointFactory(ExtendedCamelContext extendedCamelContext) { return extendedCamelContext.getContextPlugin(InterceptEndpointFactory.class); } + + /** + * Gets the current {@link org.apache.camel.spi.RouteFactory} + * + * @return the factory + */ + public static RouteFactory getRouteFactory(CamelContext camelContext) { + return getRouteFactory(camelContext.getCamelContextExtension()); + } + + /** + * Gets the current {@link org.apache.camel.spi.RouteFactory} + * + * @return the factory + */ + public static RouteFactory getRouteFactory(ExtendedCamelContext extendedCamelContext) { + return extendedCamelContext.getContextPlugin(RouteFactory.class); + } }