You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/04/02 12:50:05 UTC
[camel] 01/09: CAMEL-15105: make the RouteFactory a plugin of the context
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 <an...@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);
+ }
}