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:30 UTC
[camel] 02/04: CAMEL-15105: make the ProcessorFactory 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 878825560b0a3457a3827d10cee07d657b3e5eba
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Sat Apr 1 14:00:08 2023 +0200
CAMEL-15105: make the ProcessorFactory a plugin of the context
---
.../camel/component/knative/KnativeEndpoint.java | 7 ++++---
.../camel/component/knative/KnativeProducer.java | 5 +++--
.../apache/camel/component/seda/SedaEndpoint.java | 5 +++--
.../java/org/apache/camel/ExtendedCamelContext.java | 15 ---------------
.../camel/impl/engine/AbstractCamelContext.java | 2 +-
.../impl/engine/DefaultCamelContextExtension.java | 19 -------------------
.../engine/DefaultServiceBootstrapCloseable.java | 3 +--
.../impl/cloud/DefaultServiceCallProcessor.java | 3 ++-
.../camel/impl/ExtendedCamelContextConfigurer.java | 6 ------
.../impl/lw/LightweightCamelContextExtension.java | 12 ------------
.../reifier/InterceptSendToEndpointReifier.java | 3 ++-
.../org/apache/camel/reifier/ProcessorReifier.java | 17 +++++++++++------
.../core/xml/AbstractCamelContextFactoryBean.java | 2 +-
.../camel/processor/CustomProcessorFactoryTest.java | 2 +-
.../camel/main/DefaultConfigurationConfigurer.java | 2 +-
.../java/org/apache/camel/support/PluginHelper.java | 20 ++++++++++++++++++++
16 files changed, 50 insertions(+), 73 deletions(-)
diff --git a/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/KnativeEndpoint.java b/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/KnativeEndpoint.java
index 37f78addc13..16728919979 100644
--- a/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/KnativeEndpoint.java
+++ b/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/KnativeEndpoint.java
@@ -40,6 +40,7 @@ import org.apache.camel.spi.UriEndpoint;
import org.apache.camel.spi.UriParam;
import org.apache.camel.spi.UriPath;
import org.apache.camel.support.DefaultEndpoint;
+import org.apache.camel.support.PluginHelper;
import org.apache.camel.support.PropertyBindingSupport;
import org.apache.camel.util.ObjectHelper;
import org.slf4j.Logger;
@@ -115,15 +116,15 @@ public class KnativeEndpoint extends DefaultEndpoint {
if (replyProcessor != null) {
list.add(replyProcessor);
}
- CamelContext ecc = getCamelContext();
+ CamelContext camelContext = getCamelContext();
Processor pipeline
- = ecc.getCamelContextExtension().getProcessorFactory().createProcessor(ecc, "Pipeline", new Object[] { list });
+ = PluginHelper.getProcessorFactory(camelContext).createProcessor(camelContext, "Pipeline", new Object[] { list });
Consumer consumer = getComponent().getConsumerFactory().createConsumer(this,
createTransportConfiguration(service), service, pipeline);
PropertyBindingSupport.build()
- .withCamelContext(getCamelContext())
+ .withCamelContext(camelContext)
.withProperties(configuration.getTransportOptions())
.withRemoveParameters(false)
.withMandatory(false)
diff --git a/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/KnativeProducer.java b/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/KnativeProducer.java
index f94186c3f94..8434f7c0f28 100644
--- a/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/KnativeProducer.java
+++ b/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/KnativeProducer.java
@@ -28,6 +28,7 @@ import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.support.AsyncProcessorConverterHelper;
import org.apache.camel.support.DefaultAsyncProducer;
+import org.apache.camel.support.PluginHelper;
import org.apache.camel.support.service.ServiceHelper;
public class KnativeProducer extends DefaultAsyncProducer {
@@ -40,8 +41,8 @@ public class KnativeProducer extends DefaultAsyncProducer {
elements.add(processor);
Collections.addAll(elements, processors);
- CamelContext ecc = getEndpoint().getCamelContext();
- Processor pipeline = ecc.getCamelContextExtension().getProcessorFactory().createProcessor(ecc, "Pipeline",
+ CamelContext camelContext = getEndpoint().getCamelContext();
+ Processor pipeline = PluginHelper.getProcessorFactory(camelContext).createProcessor(camelContext, "Pipeline",
new Object[] { elements });
this.processor = AsyncProcessorConverterHelper.convert(pipeline);
diff --git a/components/camel-seda/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java b/components/camel-seda/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
index d3fba484761..d59944d047a 100644
--- a/components/camel-seda/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
+++ b/components/camel-seda/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
@@ -44,6 +44,7 @@ import org.apache.camel.spi.UriEndpoint;
import org.apache.camel.spi.UriParam;
import org.apache.camel.spi.UriPath;
import org.apache.camel.support.DefaultEndpoint;
+import org.apache.camel.support.PluginHelper;
import org.apache.camel.support.service.ServiceHelper;
import org.apache.camel.util.URISupport;
import org.slf4j.Logger;
@@ -267,8 +268,8 @@ public class SedaEndpoint extends DefaultEndpoint implements AsyncEndpoint, Brow
// create multicast processor
multicastStarted = false;
- consumerMulticastProcessor = (AsyncProcessor) getCamelContext().getCamelContextExtension()
- .getProcessorFactory().createProcessor(getCamelContext(), "MulticastProcessor",
+ consumerMulticastProcessor = (AsyncProcessor) PluginHelper.getProcessorFactory(getCamelContext())
+ .createProcessor(getCamelContext(), "MulticastProcessor",
new Object[] { processors, multicastExecutor, false });
}
}
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 d365aceda38..50f9a58a498 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
@@ -45,7 +45,6 @@ import org.apache.camel.spi.ModelToXMLDumper;
import org.apache.camel.spi.NormalizedEndpointUri;
import org.apache.camel.spi.PluginManager;
import org.apache.camel.spi.ProcessorExchangeFactory;
-import org.apache.camel.spi.ProcessorFactory;
import org.apache.camel.spi.ReactiveExecutor;
import org.apache.camel.spi.Registry;
import org.apache.camel.spi.ResourceLoader;
@@ -317,20 +316,6 @@ public interface ExtendedCamelContext {
*/
FactoryFinder getFactoryFinder(String path);
- /**
- * Gets the current {@link org.apache.camel.spi.ProcessorFactory}
- *
- * @return the factory, can be <tt>null</tt> if no custom factory has been set
- */
- ProcessorFactory getProcessorFactory();
-
- /**
- * Sets a custom {@link org.apache.camel.spi.ProcessorFactory}
- *
- * @param processorFactory the custom factory
- */
- void setProcessorFactory(ProcessorFactory processorFactory);
-
/**
* Gets the current {@link org.apache.camel.spi.InternalProcessorFactory}
*
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 36c172cfab7..47609926f46 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 ProcessorFactory processorFactory;
volatile InternalProcessorFactory internalProcessorFactory;
volatile InterceptEndpointFactory interceptEndpointFactory;
volatile RouteFactory routeFactory;
@@ -380,6 +379,7 @@ public abstract class AbstractCamelContext extends BaseService
camelContextExtension.lazyAddContextPlugin(PeriodTaskScheduler.class, this::createPeriodTaskScheduler);
camelContextExtension.lazyAddContextPlugin(HealthCheckResolver.class, this::createHealthCheckResolver);
camelContextExtension.lazyAddContextPlugin(DevConsoleResolver.class, this::createDevConsoleResolver);
+ camelContextExtension.lazyAddContextPlugin(ProcessorFactory.class, this::createProcessorFactory);
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 8423dba0a54..7e5f6e45a66 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
@@ -36,7 +36,6 @@ import org.apache.camel.Route;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.Service;
import org.apache.camel.catalog.RuntimeCamelCatalog;
-import org.apache.camel.console.DevConsoleResolver;
import org.apache.camel.spi.AnnotationBasedProcessorFactory;
import org.apache.camel.spi.AsyncProcessorAwaitManager;
import org.apache.camel.spi.BeanIntrospection;
@@ -65,7 +64,6 @@ import org.apache.camel.spi.ModelToXMLDumper;
import org.apache.camel.spi.NormalizedEndpointUri;
import org.apache.camel.spi.PluginManager;
import org.apache.camel.spi.ProcessorExchangeFactory;
-import org.apache.camel.spi.ProcessorFactory;
import org.apache.camel.spi.PropertiesComponent;
import org.apache.camel.spi.ReactiveExecutor;
import org.apache.camel.spi.Registry;
@@ -468,23 +466,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
this.lightweight = lightweight;
}
- @Override
- public ProcessorFactory getProcessorFactory() {
- if (camelContext.processorFactory == null) {
- synchronized (camelContext.lock) {
- if (camelContext.processorFactory == null) {
- setProcessorFactory(camelContext.createProcessorFactory());
- }
- }
- }
- return camelContext.processorFactory;
- }
-
- @Override
- public void setProcessorFactory(ProcessorFactory processorFactory) {
- camelContext.processorFactory = camelContext.getInternalServiceManager().addService(processorFactory);
- }
-
@Override
public InternalProcessorFactory getInternalProcessorFactory() {
if (camelContext.internalProcessorFactory == null) {
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultServiceBootstrapCloseable.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultServiceBootstrapCloseable.java
index ff10d2c453c..b85463f9ac1 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultServiceBootstrapCloseable.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultServiceBootstrapCloseable.java
@@ -79,7 +79,7 @@ public class DefaultServiceBootstrapCloseable implements BootstrapCloseable {
}
// clear processor factory
- ProcessorFactory pf = camelContextExtension.getProcessorFactory();
+ ProcessorFactory pf = PluginHelper.getProcessorFactory(camelContextExtension);
if (pf instanceof BootstrapCloseable) {
try {
((BootstrapCloseable) pf).close();
@@ -87,7 +87,6 @@ public class DefaultServiceBootstrapCloseable implements BootstrapCloseable {
LOG.warn("Error during closing bootstrap service. This exception is ignored", e);
}
}
- camelContextExtension.setProcessorFactory(null);
// clear bootstrap factory finder
FactoryFinder ff = camelContextExtension.getBootstrapFactoryFinder();
diff --git a/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/DefaultServiceCallProcessor.java b/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/DefaultServiceCallProcessor.java
index bb8e5a4bc50..13f34f209ba 100644
--- a/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/DefaultServiceCallProcessor.java
+++ b/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/DefaultServiceCallProcessor.java
@@ -33,6 +33,7 @@ import org.apache.camel.spi.Language;
import org.apache.camel.spi.ProcessorFactory;
import org.apache.camel.support.AsyncProcessorConverterHelper;
import org.apache.camel.support.AsyncProcessorSupport;
+import org.apache.camel.support.PluginHelper;
import org.apache.camel.support.service.ServiceHelper;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.StringHelper;
@@ -130,7 +131,7 @@ public class DefaultServiceCallProcessor extends AsyncProcessorSupport {
@Override
protected void doBuild() throws Exception {
ObjectHelper.notNull(camelContext, "camel context");
- processorFactory = camelContext.getCamelContextExtension().getProcessorFactory();
+ processorFactory = PluginHelper.getProcessorFactory(camelContext);
}
@Override
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 7c3ea5cc9c2..244fd82d8c2 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
@@ -57,8 +57,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "Name": target.setName(property(camelContext, java.lang.String.class, value)); return true;
case "processorexchangefactory":
case "ProcessorExchangeFactory": target.setProcessorExchangeFactory(property(camelContext, org.apache.camel.spi.ProcessorExchangeFactory.class, value)); return true;
- case "processorfactory":
- case "ProcessorFactory": target.setProcessorFactory(property(camelContext, org.apache.camel.spi.ProcessorFactory.class, value)); return true;
case "reactiveexecutor":
case "ReactiveExecutor": target.setReactiveExecutor(property(camelContext, org.apache.camel.spi.ReactiveExecutor.class, value)); return true;
case "registry":
@@ -120,8 +118,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "Name": return java.lang.String.class;
case "processorexchangefactory":
case "ProcessorExchangeFactory": return org.apache.camel.spi.ProcessorExchangeFactory.class;
- case "processorfactory":
- case "ProcessorFactory": return org.apache.camel.spi.ProcessorFactory.class;
case "reactiveexecutor":
case "ReactiveExecutor": return org.apache.camel.spi.ReactiveExecutor.class;
case "registry":
@@ -184,8 +180,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "Name": return target.getName();
case "processorexchangefactory":
case "ProcessorExchangeFactory": return target.getProcessorExchangeFactory();
- case "processorfactory":
- case "ProcessorFactory": return target.getProcessorFactory();
case "reactiveexecutor":
case "ReactiveExecutor": return target.getReactiveExecutor();
case "registry":
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 f38d25c1c73..e280a82d6dc 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
@@ -37,7 +37,6 @@ import org.apache.camel.Route;
import org.apache.camel.Service;
import org.apache.camel.ServiceStatus;
import org.apache.camel.catalog.RuntimeCamelCatalog;
-import org.apache.camel.console.DevConsoleResolver;
import org.apache.camel.spi.AnnotationBasedProcessorFactory;
import org.apache.camel.spi.AsyncProcessorAwaitManager;
import org.apache.camel.spi.BeanIntrospection;
@@ -60,7 +59,6 @@ import org.apache.camel.spi.ModelToXMLDumper;
import org.apache.camel.spi.NormalizedEndpointUri;
import org.apache.camel.spi.PluginManager;
import org.apache.camel.spi.ProcessorExchangeFactory;
-import org.apache.camel.spi.ProcessorFactory;
import org.apache.camel.spi.PropertiesComponent;
import org.apache.camel.spi.ReactiveExecutor;
import org.apache.camel.spi.Registry;
@@ -244,16 +242,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext {
throw new UnsupportedOperationException();
}
- @Override
- public ProcessorFactory getProcessorFactory() {
- return camelContext.getCamelContextExtension().getProcessorFactory();
- }
-
- @Override
- public void setProcessorFactory(ProcessorFactory processorFactory) {
- throw new UnsupportedOperationException();
- }
-
@Override
public InternalProcessorFactory getInternalProcessorFactory() {
return camelContext.getCamelContextExtension().getInternalProcessorFactory();
diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/InterceptSendToEndpointReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/InterceptSendToEndpointReifier.java
index e9bb28cac5d..fc4f53f659d 100644
--- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/InterceptSendToEndpointReifier.java
+++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/InterceptSendToEndpointReifier.java
@@ -26,6 +26,7 @@ import org.apache.camel.model.RouteDefinition;
import org.apache.camel.model.ToDefinition;
import org.apache.camel.processor.InterceptEndpointProcessor;
import org.apache.camel.processor.InterceptSendToEndpointCallback;
+import org.apache.camel.support.PluginHelper;
public class InterceptSendToEndpointReifier extends ProcessorReifier<InterceptSendToEndpointDefinition> {
@@ -43,7 +44,7 @@ public class InterceptSendToEndpointReifier extends ProcessorReifier<InterceptSe
if (afterUri != null) {
ToDefinition to = new ToDefinition(afterUri);
// at first use custom factory
- afterProcessor = camelContext.getCamelContextExtension().getProcessorFactory().createProcessor(route, to);
+ afterProcessor = PluginHelper.getProcessorFactory(camelContext).createProcessor(route, to);
// fallback to default implementation if factory did not create the processor
if (afterProcessor == null) {
afterProcessor = createProcessor(to);
diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
index 0d233c8e967..41096b48c89 100644
--- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
+++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
@@ -115,9 +115,11 @@ import org.apache.camel.spi.ExecutorServiceManager;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.InterceptStrategy;
import org.apache.camel.spi.NodeIdFactory;
+import org.apache.camel.spi.ProcessorFactory;
import org.apache.camel.spi.ReifierStrategy;
import org.apache.camel.spi.RouteIdAware;
import org.apache.camel.support.CamelContextHelper;
+import org.apache.camel.support.PluginHelper;
import org.apache.camel.util.ObjectHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -572,8 +574,9 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> extends
protected Processor createChildProcessor(boolean mandatory) throws Exception {
Processor children = null;
// at first use custom factory
- if (camelContext.getCamelContextExtension().getProcessorFactory() != null) {
- children = camelContext.getCamelContextExtension().getProcessorFactory().createChildProcessor(route,
+ final ProcessorFactory processorFactory = PluginHelper.getProcessorFactory(camelContext);
+ if (processorFactory != null) {
+ children = processorFactory.createChildProcessor(route,
definition, mandatory);
}
// fallback to default implementation if factory did not create the
@@ -820,8 +823,9 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> extends
Processor processor = null;
// at first use custom factory
- if (camelContext.getCamelContextExtension().getProcessorFactory() != null) {
- processor = camelContext.getCamelContextExtension().getProcessorFactory().createProcessor(route, output);
+ final ProcessorFactory processorFactory = PluginHelper.getProcessorFactory(camelContext);
+ if (processorFactory != null) {
+ processor = processorFactory.createProcessor(route, output);
}
// fallback to default implementation if factory did not create the processor
if (processor == null) {
@@ -842,8 +846,9 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> extends
preCreateProcessor();
// at first use custom factory
- if (camelContext.getCamelContextExtension().getProcessorFactory() != null) {
- processor = camelContext.getCamelContextExtension().getProcessorFactory().createProcessor(route, definition);
+ final ProcessorFactory processorFactory = PluginHelper.getProcessorFactory(camelContext);
+ if (processorFactory != null) {
+ processor = processorFactory.createProcessor(route, definition);
}
// fallback to default implementation if factory did not create the
// processor
diff --git a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
index e09166f34c2..faa44550efd 100644
--- a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
+++ b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
@@ -1503,7 +1503,7 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex
ProcessorFactory processorFactory = getBeanForType(ProcessorFactory.class);
if (processorFactory != null) {
LOG.info("Using custom ProcessorFactory: {}", processorFactory);
- getContext().getCamelContextExtension().setProcessorFactory(processorFactory);
+ getContext().getCamelContextExtension().addContextPlugin(ProcessorFactory.class, processorFactory);
}
Debugger debugger = getBeanForType(Debugger.class);
if (debugger != null) {
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/CustomProcessorFactoryTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/CustomProcessorFactoryTest.java
index ace4ecf2e98..82dced26ea2 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/CustomProcessorFactoryTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/CustomProcessorFactoryTest.java
@@ -36,7 +36,7 @@ public class CustomProcessorFactoryTest extends ContextTestSupport {
protected CamelContext createCamelContext() throws Exception {
CamelContext context = super.createCamelContext();
// register our custom factory
- context.getCamelContextExtension().setProcessorFactory(new MyFactory());
+ context.getCamelContextExtension().addContextPlugin(ProcessorFactory.class, new MyFactory());
return context;
}
// END SNIPPET: e1
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java
index 00aed04324e..cfd445143f5 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java
@@ -435,7 +435,7 @@ public final class DefaultConfigurationConfigurer {
}
ProcessorFactory pf = getSingleBeanOfType(registry, ProcessorFactory.class);
if (pf != null) {
- ecc.getCamelContextExtension().setProcessorFactory(pf);
+ ecc.getCamelContextExtension().addContextPlugin(ProcessorFactory.class, pf);
}
Debugger debugger = getSingleBeanOfType(registry, Debugger.class);
if (debugger != null) {
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 ebd084d0b00..30ddec8e04e 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
@@ -37,6 +37,7 @@ import org.apache.camel.spi.PackageScanClassResolver;
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.UriFactoryResolver;
public final class PluginHelper {
@@ -345,4 +346,23 @@ public final class PluginHelper {
public static DevConsoleResolver getDevConsoleResolver(ExtendedCamelContext extendedCamelContext) {
return extendedCamelContext.getContextPlugin(DevConsoleResolver.class);
}
+
+ /**
+ * Gets the current {@link org.apache.camel.spi.ProcessorFactory}
+ *
+ * @return the factory, can be <tt>null</tt> if no custom factory has been set
+ */
+ public static ProcessorFactory getProcessorFactory(CamelContext camelContext) {
+ return getProcessorFactory(camelContext.getCamelContextExtension());
+ }
+
+ /**
+ * Gets the current {@link org.apache.camel.spi.ProcessorFactory}
+ *
+ * @return the factory, can be <tt>null</tt> if no custom factory has been set
+ */
+ public static ProcessorFactory getProcessorFactory(ExtendedCamelContext extendedCamelContext) {
+ return extendedCamelContext.getContextPlugin(ProcessorFactory.class);
+ }
+
}