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 06:26:32 UTC
[camel] 04/04: CAMEL-15105: make the InterceptEndpointFactory 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 0d22038e18e2fc726bfd7d5269bbd6223c35f45f
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Sat Apr 1 14:49:33 2023 +0200
CAMEL-15105: make the InterceptEndpointFactory a plugin of the context
---
.../java/org/apache/camel/ExtendedCamelContext.java | 15 ---------------
.../camel/impl/engine/AbstractCamelContext.java | 2 +-
.../impl/engine/DefaultCamelContextExtension.java | 18 ------------------
.../camel/impl/ExtendedCamelContextConfigurer.java | 6 ------
.../impl/lw/LightweightCamelContextExtension.java | 11 -----------
.../processor/InterceptSendToEndpointCallback.java | 3 ++-
.../java/org/apache/camel/support/PluginHelper.java | 19 +++++++++++++++++++
7 files changed, 22 insertions(+), 52 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 c1850cfb5c7..21778d95d9d 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
@@ -35,7 +35,6 @@ import org.apache.camel.spi.ExchangeFactory;
import org.apache.camel.spi.ExchangeFactoryManager;
import org.apache.camel.spi.FactoryFinder;
import org.apache.camel.spi.HeadersMapFactory;
-import org.apache.camel.spi.InterceptEndpointFactory;
import org.apache.camel.spi.InterceptStrategy;
import org.apache.camel.spi.LifecycleStrategy;
import org.apache.camel.spi.LogListener;
@@ -315,20 +314,6 @@ public interface ExtendedCamelContext {
*/
FactoryFinder getFactoryFinder(String path);
- /**
- * Gets the current {@link org.apache.camel.spi.InterceptEndpointFactory}
- *
- * @return the factory
- */
- InterceptEndpointFactory getInterceptEndpointFactory();
-
- /**
- * Sets a custom {@link org.apache.camel.spi.InterceptEndpointFactory}
- *
- * @param interceptEndpointFactory the custom factory
- */
- void setInterceptEndpointFactory(InterceptEndpointFactory interceptEndpointFactory);
-
/**
* Gets the current {@link org.apache.camel.spi.RouteFactory}
*
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 2e288f9763c..1553ed0759a 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 InterceptEndpointFactory interceptEndpointFactory;
volatile RouteFactory routeFactory;
volatile AsyncProcessorAwaitManager asyncProcessorAwaitManager;
volatile UnitOfWorkFactory unitOfWorkFactory;
@@ -380,6 +379,7 @@ public abstract class AbstractCamelContext extends BaseService
camelContextExtension.lazyAddContextPlugin(DevConsoleResolver.class, this::createDevConsoleResolver);
camelContextExtension.lazyAddContextPlugin(ProcessorFactory.class, this::createProcessorFactory);
camelContextExtension.lazyAddContextPlugin(InternalProcessorFactory.class, this::createInternalProcessorFactory);
+ camelContextExtension.lazyAddContextPlugin(InterceptEndpointFactory.class, this::createInterceptEndpointFactory);
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 482ef419e07..b4fc2578ce2 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
@@ -52,7 +52,6 @@ import org.apache.camel.spi.ExchangeFactory;
import org.apache.camel.spi.ExchangeFactoryManager;
import org.apache.camel.spi.FactoryFinder;
import org.apache.camel.spi.HeadersMapFactory;
-import org.apache.camel.spi.InterceptEndpointFactory;
import org.apache.camel.spi.InterceptStrategy;
import org.apache.camel.spi.LifecycleStrategy;
import org.apache.camel.spi.LogListener;
@@ -465,23 +464,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
this.lightweight = lightweight;
}
- @Override
- public InterceptEndpointFactory getInterceptEndpointFactory() {
- if (camelContext.interceptEndpointFactory == null) {
- synchronized (camelContext.lock) {
- if (camelContext.interceptEndpointFactory == null) {
- setInterceptEndpointFactory(camelContext.createInterceptEndpointFactory());
- }
- }
- }
- return camelContext.interceptEndpointFactory;
- }
-
- @Override
- public void setInterceptEndpointFactory(InterceptEndpointFactory interceptEndpointFactory) {
- camelContext.interceptEndpointFactory = camelContext.getInternalServiceManager().addService(interceptEndpointFactory);
- }
-
@Override
public RouteFactory getRouteFactory() {
if (camelContext.routeFactory == null) {
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 d4a7548ee8a..347ed5bb27d 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
@@ -45,8 +45,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "ExchangeFactoryManager": target.setExchangeFactoryManager(property(camelContext, org.apache.camel.spi.ExchangeFactoryManager.class, value)); return true;
case "headersmapfactory":
case "HeadersMapFactory": target.setHeadersMapFactory(property(camelContext, org.apache.camel.spi.HeadersMapFactory.class, value)); return true;
- case "interceptendpointfactory":
- case "InterceptEndpointFactory": target.setInterceptEndpointFactory(property(camelContext, org.apache.camel.spi.InterceptEndpointFactory.class, value)); return true;
case "lightweight":
case "Lightweight": target.setLightweight(property(camelContext, boolean.class, value)); return true;
case "modeltoxmldumper":
@@ -104,8 +102,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "ExchangeFactoryManager": return org.apache.camel.spi.ExchangeFactoryManager.class;
case "headersmapfactory":
case "HeadersMapFactory": return org.apache.camel.spi.HeadersMapFactory.class;
- case "interceptendpointfactory":
- case "InterceptEndpointFactory": return org.apache.camel.spi.InterceptEndpointFactory.class;
case "lightweight":
case "Lightweight": return boolean.class;
case "modeltoxmldumper":
@@ -164,8 +160,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "ExchangeFactoryManager": return target.getExchangeFactoryManager();
case "headersmapfactory":
case "HeadersMapFactory": return target.getHeadersMapFactory();
- case "interceptendpointfactory":
- case "InterceptEndpointFactory": return target.getInterceptEndpointFactory();
case "lightweight":
case "Lightweight": return target.isLightweight();
case "modeltoxmldumper":
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 14d389a7e31..62449a13059 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
@@ -50,7 +50,6 @@ import org.apache.camel.spi.ExchangeFactory;
import org.apache.camel.spi.ExchangeFactoryManager;
import org.apache.camel.spi.FactoryFinder;
import org.apache.camel.spi.HeadersMapFactory;
-import org.apache.camel.spi.InterceptEndpointFactory;
import org.apache.camel.spi.InterceptStrategy;
import org.apache.camel.spi.LogListener;
import org.apache.camel.spi.ManagementMBeanAssembler;
@@ -241,16 +240,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext {
throw new UnsupportedOperationException();
}
- @Override
- public InterceptEndpointFactory getInterceptEndpointFactory() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setInterceptEndpointFactory(InterceptEndpointFactory interceptEndpointFactory) {
- throw new UnsupportedOperationException();
- }
-
@Override
public RouteFactory getRouteFactory() {
throw new UnsupportedOperationException();
diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/InterceptSendToEndpointCallback.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/InterceptSendToEndpointCallback.java
index 93c4828d5f5..a6bca20f705 100644
--- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/InterceptSendToEndpointCallback.java
+++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/InterceptSendToEndpointCallback.java
@@ -22,6 +22,7 @@ import org.apache.camel.Processor;
import org.apache.camel.spi.EndpointStrategy;
import org.apache.camel.spi.InterceptSendToEndpoint;
import org.apache.camel.support.EndpointHelper;
+import org.apache.camel.support.PluginHelper;
import org.apache.camel.util.URISupport;
/**
@@ -51,7 +52,7 @@ public class InterceptSendToEndpointCallback implements EndpointStrategy {
} else if (matchURI == null || matchPattern(uri, matchURI)) {
// only proxy if the uri is matched decorate endpoint with
// our proxy should be false by default
- return camelContext.getCamelContextExtension().getInterceptEndpointFactory()
+ return PluginHelper.getInterceptEndpointFactory(camelContext)
.createInterceptSendToEndpoint(camelContext, endpoint, skip, before, after);
} else {
// no proxy so return regular endpoint
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 5396ed47732..8ddf5cff349 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
@@ -30,6 +30,7 @@ import org.apache.camel.spi.ComponentResolver;
import org.apache.camel.spi.ConfigurerResolver;
import org.apache.camel.spi.DataFormatResolver;
import org.apache.camel.spi.FactoryFinderResolver;
+import org.apache.camel.spi.InterceptEndpointFactory;
import org.apache.camel.spi.InternalProcessorFactory;
import org.apache.camel.spi.LanguageResolver;
import org.apache.camel.spi.ModelJAXBContextFactory;
@@ -383,4 +384,22 @@ public final class PluginHelper {
public static InternalProcessorFactory getInternalProcessorFactory(ExtendedCamelContext extendedCamelContext) {
return extendedCamelContext.getContextPlugin(InternalProcessorFactory.class);
}
+
+ /**
+ * Gets the current {@link org.apache.camel.spi.InterceptEndpointFactory}
+ *
+ * @return the factory
+ */
+ public static InterceptEndpointFactory getInterceptEndpointFactory(CamelContext camelContext) {
+ return getInterceptEndpointFactory(camelContext.getCamelContextExtension());
+ }
+
+ /**
+ * Gets the current {@link org.apache.camel.spi.InterceptEndpointFactory}
+ *
+ * @return the factory
+ */
+ public static InterceptEndpointFactory getInterceptEndpointFactory(ExtendedCamelContext extendedCamelContext) {
+ return extendedCamelContext.getContextPlugin(InterceptEndpointFactory.class);
+ }
}