You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/10/25 11:36:19 UTC
[camel] branch master updated: CAMEL-15740: camel-core - Modularize
processors into their own module
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new 5235319 CAMEL-15740: camel-core - Modularize processors into their own module
5235319 is described below
commit 5235319d94fbb82f479ca3085b0780c0f144111b
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Oct 25 12:29:36 2020 +0100
CAMEL-15740: camel-core - Modularize processors into their own module
---
apache-camel/pom.xml | 4 ++
apache-camel/src/main/descriptors/common-bin.xml | 1 +
bom/camel-bom/pom.xml | 5 +++
components/camel-opentracing/pom.xml | 2 +-
.../apache/camel/component/seda/SedaEndpoint.java | 11 +++++-
.../apache/camel/test/junit5/CamelTestSupport.java | 4 +-
.../spring/junit5/CamelAnnotationsHandler.java | 2 +-
.../spring/CamelSpringProvidesBreakpointTest.java | 2 +-
.../camel/test/spring/CamelAnnotationsHandler.java | 2 +-
.../CamelSpringRunnerProvidesBreakpointTest.java | 2 +-
.../apache/camel/test/junit4/CamelTestSupport.java | 4 +-
.../java/org/apache/camel/spi}/ErrorHandler.java | 2 +-
.../org/apache/camel/ExtendedCamelContext.java | 23 +++++-------
.../camel/spi/AnnotationBasedProcessorFactory.java | 5 +++
.../org/apache/camel/spi/DeferServiceFactory.java | 5 +++
.../org/apache/camel/spi/InternalProcessor.java | 43 ++++++++++++++++++++++
.../org/apache/camel/spi/ProcessorFactory.java | 13 +++++--
.../debugger}/BacklogDebugger.java | 3 +-
.../debugger}/BacklogTracer.java | 2 +-
.../DefaultBacklogTracerEventMessage.java | 2 +-
.../debugger}/DefaultDebugger.java | 2 +-
.../interceptor => impl/debugger}/package.html | 2 +-
.../camel/impl/engine/AbstractCamelContext.java | 32 ++++++++++++++--
.../engine}/CamelInternalProcessor.java | 10 ++---
.../impl/engine/DefaultFluentProducerTemplate.java | 23 +++++++++---
.../engine/DefaultInterceptSendToEndpoint.java | 13 ++++++-
.../camel/impl/engine/DefaultProducerCache.java | 19 +++++++---
.../camel/impl/engine/DefaultProducerTemplate.java | 16 +++++++-
.../org/apache/camel/impl/engine/RouteService.java | 2 +-
.../camel/impl/engine/SimpleCamelContext.java | 38 ++++++++++++-------
.../impl/engine/SubscribeMethodProcessor.java | 13 ++++---
.../camel/impl/ExtendedCamelContextConfigurer.java | 10 +++++
.../camel/impl/lw/LightweightCamelContext.java | 18 +++++----
.../impl/lw/LightweightRuntimeCamelContext.java | 18 +++++----
core/camel-core-model/pom.xml | 5 +++
.../pom.xml | 11 ++----
.../org/apache/camel/annotation-processor-factory | 2 +
.../org/apache/camel/defer-service-factory | 2 +
.../services/org/apache/camel/processor-factory | 2 +
.../org/apache/camel/processor/CatchProcessor.java | 0
.../apache/camel/processor/ChoiceProcessor.java | 0
.../processor/ClaimCheckAggregationStrategy.java | 0
.../camel/processor/ClaimCheckProcessor.java | 0
.../org/apache/camel/processor/ContractAdvice.java | 0
.../camel/processor/ConvertBodyProcessor.java | 0
.../DefaultAnnotationBasedProcessorFactory.java | 4 +-
.../processor}/DefaultDeferServiceFactory.java | 7 ++--
.../camel/processor}/DefaultProcessorFactory.java | 38 +++++++++++++++++--
.../camel/processor/DelayProcessorSupport.java | 0
.../java/org/apache/camel/processor/Delayer.java | 0
.../org/apache/camel/processor/DynamicRouter.java | 0
.../java/org/apache/camel/processor/Enricher.java | 0
.../processor/EvaluateExpressionProcessor.java | 0
.../camel/processor/EventNotifierProducer.java | 0
.../camel/processor/ExchangePatternProcessor.java | 0
.../camel/processor/FatalFallbackErrorHandler.java | 5 ++-
.../apache/camel/processor/FilterProcessor.java | 0
.../apache/camel/processor/FinallyProcessor.java | 0
.../processor/InterceptEndpointProcessor.java | 0
.../InterceptSendToEndpointProcessor.java | 9 +++--
.../org/apache/camel/processor/LogProcessor.java | 0
.../org/apache/camel/processor/LoopProcessor.java | 0
.../apache/camel/processor/MulticastProcessor.java | 1 +
.../camel/processor/OnCompletionProcessor.java | 0
.../java/org/apache/camel/processor/Pipeline.java | 0
.../org/apache/camel/processor/PipelineHelper.java | 0
.../org/apache/camel/processor/PollEnricher.java | 0
.../camel/processor/ProcessorExchangePair.java | 0
.../org/apache/camel/processor/RecipientList.java | 0
.../camel/processor/RecipientListProcessor.java | 0
.../camel/processor/RemoveHeaderProcessor.java | 0
.../camel/processor/RemoveHeadersProcessor.java | 0
.../camel/processor/RemovePropertiesProcessor.java | 0
.../camel/processor/RemovePropertyProcessor.java | 0
.../org/apache/camel/processor/Resequencer.java | 0
.../apache/camel/processor/RestBindingAdvice.java | 1 +
.../apache/camel/processor/RollbackProcessor.java | 0
.../org/apache/camel/processor/RoutingSlip.java | 0
.../apache/camel/processor/SamplingThrottler.java | 0
.../apache/camel/processor/ScriptProcessor.java | 0
.../camel/processor/SendDynamicAwareResolver.java | 0
.../camel/processor/SendDynamicProcessor.java | 0
.../org/apache/camel/processor/SendProcessor.java | 0
.../apache/camel/processor/SetBodyProcessor.java | 0
.../apache/camel/processor/SetHeaderProcessor.java | 0
.../camel/processor/SetPropertyProcessor.java | 0
.../processor/SharedCamelInternalProcessor.java | 3 +-
.../org/apache/camel/processor/SortProcessor.java | 0
.../java/org/apache/camel/processor/Splitter.java | 0
.../org/apache/camel/processor/StepProcessor.java | 0
.../org/apache/camel/processor/StopProcessor.java | 0
.../apache/camel/processor/StreamResequencer.java | 0
.../apache/camel/processor/ThreadsProcessor.java | 0
.../java/org/apache/camel/processor/Throttler.java | 0
.../ThrottlerRejectedExecutionException.java | 0
.../camel/processor/ThrowExceptionProcessor.java | 0
.../apache/camel/processor/TransformProcessor.java | 0
.../org/apache/camel/processor/TryProcessor.java | 0
.../apache/camel/processor/UnitOfWorkProducer.java | 1 +
.../apache/camel/processor/WireTapProcessor.java | 0
.../org/apache/camel/processor/WrapProcessor.java | 0
.../aggregate/AbstractListAggregationStrategy.java | 0
.../processor/aggregate/AggregateController.java | 0
.../processor/aggregate/AggregateProcessor.java | 0
.../aggregate/AggregateProcessorStatistics.java | 0
.../aggregate/AggregationStrategyBeanAdapter.java | 0
.../aggregate/AggregationStrategyBeanInfo.java | 0
.../aggregate/AggregationStrategyMethodInfo.java | 0
.../AggregationStrategyParameterInfo.java | 0
.../aggregate/ClosedCorrelationKeyException.java | 0
.../aggregate/DefaultAggregateController.java | 0
.../aggregate/GroupedBodyAggregationStrategy.java | 0
.../GroupedExchangeAggregationStrategy.java | 0
.../GroupedMessageAggregationStrategy.java | 0
.../aggregate/MemoryAggregationRepository.java | 0
.../aggregate/OptimisticLockRetryPolicy.java | 0
.../ShareUnitOfWorkAggregationStrategy.java | 0
.../aggregate/StringAggregationStrategy.java | 0
.../aggregate/UseLatestAggregationStrategy.java | 0
.../aggregate/UseOriginalAggregationStrategy.java | 0
.../apache/camel/processor/aggregate/package.html | 0
.../camel/processor/channel/DefaultChannel.java | 9 +++--
.../processor/errorhandler/DeadLetterChannel.java | 0
.../errorhandler/DefaultErrorHandler.java | 0
.../DefaultExceptionPolicyStrategy.java | 0
.../errorhandler/ErrorHandlerSupport.java | 2 +-
.../processor/errorhandler/ExceptionPolicy.java | 0
.../processor/errorhandler/ExceptionPolicyKey.java | 0
.../errorhandler/ExceptionPolicyStrategy.java | 0
.../errorhandler/RedeliveryErrorHandler.java | 0
.../processor/errorhandler/RedeliveryPolicy.java | 0
.../camel/processor/errorhandler/package.html | 0
.../processor/idempotent/IdempotentConsumer.java | 0
.../idempotent/IdempotentOnCompletion.java | 0
.../processor/idempotent/NoMessageIdException.java | 0
.../apache/camel/processor/idempotent/package.html | 0
.../processor/loadbalancer/DistributionRatio.java | 0
.../loadbalancer/ExceptionFailureStatistics.java | 0
.../loadbalancer/FailOverLoadBalancer.java | 0
.../camel/processor/loadbalancer/LoadBalancer.java | 0
.../loadbalancer/LoadBalancerConsumer.java | 0
.../loadbalancer/LoadBalancerSupport.java | 0
.../processor/loadbalancer/QueueLoadBalancer.java | 0
.../processor/loadbalancer/RandomLoadBalancer.java | 0
.../loadbalancer/RoundRobinLoadBalancer.java | 0
.../processor/loadbalancer/StickyLoadBalancer.java | 0
.../processor/loadbalancer/TopicLoadBalancer.java | 0
.../loadbalancer/WeightedLoadBalancer.java | 0
.../loadbalancer/WeightedRandomLoadBalancer.java | 0
.../WeightedRoundRobinLoadBalancer.java | 0
.../camel/processor/loadbalancer/package.html | 0
.../java/org/apache/camel/processor/package.html | 0
.../resequencer/DefaultExchangeComparator.java | 0
.../camel/processor/resequencer/Element.java | 0
.../processor/resequencer/ElementComparator.java | 0
.../resequencer/ExpressionResultComparator.java | 0
.../resequencer/MessageRejectedException.java | 0
.../processor/resequencer/ResequencerEngine.java | 0
.../camel/processor/resequencer/Sequence.java | 0
.../resequencer/SequenceElementComparator.java | 0
.../processor/resequencer/SequenceSender.java | 0
.../camel/processor/resequencer/Timeout.java | 0
.../processor/resequencer/TimeoutHandler.java | 0
.../camel/processor/resequencer/package.html | 0
.../processor/saga/MandatorySagaProcessor.java | 0
.../camel/processor/saga/NeverSagaProcessor.java | 0
.../processor/saga/NotSupportedSagaProcessor.java | 0
.../processor/saga/RequiredSagaProcessor.java | 0
.../processor/saga/RequiresNewSagaProcessor.java | 0
.../camel/processor/saga/SagaCompletionMode.java | 0
.../apache/camel/processor/saga/SagaProcessor.java | 0
.../camel/processor/saga/SagaProcessorBuilder.java | 0
.../camel/processor/saga/SagaPropagation.java | 0
.../processor/saga/SupportsSagaProcessor.java | 0
.../org/apache/camel/processor/saga/package.html | 0
.../transformer/DataFormatTransformer.java | 0
.../transformer/ProcessorTransformer.java | 0
.../camel/processor/transformer/package.html | 0
.../processor/validator/ProcessorValidator.java | 0
.../apache/camel/processor/validator/package.html | 0
core/camel-core-reifier/pom.xml | 5 +++
.../org/apache/camel/reifier/AggregateReifier.java | 3 +-
.../apache/camel/reifier/OnCompletionReifier.java | 3 +-
.../apache/camel/reifier/ResequenceReifier.java | 3 +-
.../org/apache/camel/reifier/RouteReifier.java | 3 +-
.../org/apache/camel/reifier/WireTapReifier.java | 3 +-
.../reifier/errorhandler/ErrorHandlerReifier.java | 2 +-
.../core/xml/AbstractCamelContextFactoryBean.java | 2 +-
.../processor/CustomProcessorFactoryTest.java | 19 ++--------
.../interceptor/DebugExceptionBreakpointTest.java | 2 +
.../DebugExceptionEventBreakpointTest.java | 2 +
.../interceptor/DebugSingleStepConditionTest.java | 2 +
.../processor/interceptor/DebugSingleStepTest.java | 2 +
.../camel/processor/interceptor/DebugTest.java | 2 +
.../camel/main/DefaultConfigurationConfigurer.java | 2 +-
.../DefaultManagementObjectStrategy.java | 2 +-
.../management/JmxManagementLifecycleStrategy.java | 6 +--
.../management/mbean/ManagedBacklogDebugger.java | 2 +-
.../management/mbean/ManagedBacklogTracer.java | 2 +-
.../apache/camel/support}/BreakpointSupport.java | 2 +-
core/pom.xml | 1 +
.../ROOT/pages/camel-3x-upgrade-guide-3_7.adoc | 26 +++++++++++--
parent/pom.xml | 5 +++
203 files changed, 404 insertions(+), 152 deletions(-)
diff --git a/apache-camel/pom.xml b/apache-camel/pom.xml
index 00a8870..4ecb985 100644
--- a/apache-camel/pom.xml
+++ b/apache-camel/pom.xml
@@ -82,6 +82,10 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
+ <artifactId>camel-core-processor</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
<artifactId>camel-core-reifier</artifactId>
</dependency>
<dependency>
diff --git a/apache-camel/src/main/descriptors/common-bin.xml b/apache-camel/src/main/descriptors/common-bin.xml
index acec19a..404a31d 100644
--- a/apache-camel/src/main/descriptors/common-bin.xml
+++ b/apache-camel/src/main/descriptors/common-bin.xml
@@ -37,6 +37,7 @@
<include>org.apache.camel:camel-core-engine</include>
<include>org.apache.camel:camel-core-model</include>
<include>org.apache.camel:camel-core-reifier</include>
+ <include>org.apache.camel:camel-core-processor</include>
<include>org.apache.camel:camel-core-languages</include>
<include>org.apache.camel:camel-core-xml</include>
<include>org.apache.camel:camel-core-catalog</include>
diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml
index 181d335..6ae6e59 100644
--- a/bom/camel-bom/pom.xml
+++ b/bom/camel-bom/pom.xml
@@ -549,6 +549,11 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
+ <artifactId>camel-core-processor</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
<artifactId>camel-core-reifier</artifactId>
<version>${project.version}</version>
</dependency>
diff --git a/components/camel-opentracing/pom.xml b/components/camel-opentracing/pom.xml
index 031ced8..f04d1f6 100644
--- a/components/camel-opentracing/pom.xml
+++ b/components/camel-opentracing/pom.xml
@@ -48,7 +48,7 @@
<!-- added to bypass LogProcessor -->
<dependency>
<groupId>org.apache.camel</groupId>
- <artifactId>camel-base</artifactId>
+ <artifactId>camel-core-processor</artifactId>
<scope>provided</scope>
</dependency>
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 38ade59..225903f 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
@@ -17,8 +17,10 @@
package org.apache.camel.component.seda;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.CopyOnWriteArraySet;
@@ -254,8 +256,13 @@ public class SedaEndpoint extends DefaultEndpoint implements AsyncEndpoint, Brow
}
// create multicast processor
multicastStarted = false;
- consumerMulticastProcessor
- = getCamelContext().adapt(ExtendedCamelContext.class).createMulticast(processors, multicastExecutor, false);
+
+ Map<String, Object> args = new HashMap<>();
+ args.put("processors", processors);
+ args.put("executor", multicastExecutor);
+ args.put("shutdownExecutorService", false);
+ consumerMulticastProcessor = (AsyncProcessor) getCamelContext().adapt(ExtendedCamelContext.class)
+ .getProcessorFactory().createProcessor(getCamelContext(), "MulticastProcessor", args);
}
}
diff --git a/components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java b/components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java
index 687cffd..16e8026 100644
--- a/components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java
+++ b/components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java
@@ -48,16 +48,16 @@ import org.apache.camel.builder.AdviceWithRouteBuilder;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.impl.debugger.DefaultDebugger;
import org.apache.camel.impl.engine.InterceptSendToMockEndpointStrategy;
import org.apache.camel.model.Model;
import org.apache.camel.model.ModelCamelContext;
import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.processor.interceptor.BreakpointSupport;
-import org.apache.camel.processor.interceptor.DefaultDebugger;
import org.apache.camel.spi.CamelBeanPostProcessor;
import org.apache.camel.spi.Language;
import org.apache.camel.spi.PropertiesComponent;
import org.apache.camel.spi.Registry;
+import org.apache.camel.support.BreakpointSupport;
import org.apache.camel.support.EndpointHelper;
import org.apache.camel.test.CamelRouteCoverageDumper;
import org.apache.camel.util.StopWatch;
diff --git a/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelAnnotationsHandler.java b/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelAnnotationsHandler.java
index e5e16c7..5a0061c 100644
--- a/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelAnnotationsHandler.java
+++ b/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelAnnotationsHandler.java
@@ -30,8 +30,8 @@ import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.api.management.JmxSystemPropertyKeys;
import org.apache.camel.api.management.ManagedCamelContext;
import org.apache.camel.api.management.mbean.ManagedCamelContextMBean;
+import org.apache.camel.impl.debugger.DefaultDebugger;
import org.apache.camel.impl.engine.InterceptSendToMockEndpointStrategy;
-import org.apache.camel.processor.interceptor.DefaultDebugger;
import org.apache.camel.spi.Breakpoint;
import org.apache.camel.spi.Debugger;
import org.apache.camel.spi.EventNotifier;
diff --git a/components/camel-test-spring-junit5/src/test/java/org/apache/camel/test/spring/CamelSpringProvidesBreakpointTest.java b/components/camel-test-spring-junit5/src/test/java/org/apache/camel/test/spring/CamelSpringProvidesBreakpointTest.java
index 3d796d8..a0ff67c 100644
--- a/components/camel-test-spring-junit5/src/test/java/org/apache/camel/test/spring/CamelSpringProvidesBreakpointTest.java
+++ b/components/camel-test-spring-junit5/src/test/java/org/apache/camel/test/spring/CamelSpringProvidesBreakpointTest.java
@@ -19,8 +19,8 @@ package org.apache.camel.test.spring;
import org.apache.camel.Exchange;
import org.apache.camel.NamedNode;
import org.apache.camel.Processor;
-import org.apache.camel.processor.interceptor.BreakpointSupport;
import org.apache.camel.spi.Breakpoint;
+import org.apache.camel.support.BreakpointSupport;
import org.apache.camel.test.spring.junit5.ProvidesBreakpoint;
import org.junit.jupiter.api.Test;
diff --git a/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/CamelAnnotationsHandler.java b/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/CamelAnnotationsHandler.java
index 6c348bb..d0aa07d 100644
--- a/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/CamelAnnotationsHandler.java
+++ b/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/CamelAnnotationsHandler.java
@@ -30,8 +30,8 @@ import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.api.management.JmxSystemPropertyKeys;
import org.apache.camel.api.management.ManagedCamelContext;
import org.apache.camel.api.management.mbean.ManagedCamelContextMBean;
+import org.apache.camel.impl.debugger.DefaultDebugger;
import org.apache.camel.impl.engine.InterceptSendToMockEndpointStrategy;
-import org.apache.camel.processor.interceptor.DefaultDebugger;
import org.apache.camel.spi.Breakpoint;
import org.apache.camel.spi.Debugger;
import org.apache.camel.spi.EventNotifier;
diff --git a/components/camel-test-spring/src/test/java/org/apache/camel/test/spring/CamelSpringRunnerProvidesBreakpointTest.java b/components/camel-test-spring/src/test/java/org/apache/camel/test/spring/CamelSpringRunnerProvidesBreakpointTest.java
index 7fab987..8bc44e2 100644
--- a/components/camel-test-spring/src/test/java/org/apache/camel/test/spring/CamelSpringRunnerProvidesBreakpointTest.java
+++ b/components/camel-test-spring/src/test/java/org/apache/camel/test/spring/CamelSpringRunnerProvidesBreakpointTest.java
@@ -19,8 +19,8 @@ package org.apache.camel.test.spring;
import org.apache.camel.Exchange;
import org.apache.camel.NamedNode;
import org.apache.camel.Processor;
-import org.apache.camel.processor.interceptor.BreakpointSupport;
import org.apache.camel.spi.Breakpoint;
+import org.apache.camel.support.BreakpointSupport;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
diff --git a/components/camel-test/src/main/java/org/apache/camel/test/junit4/CamelTestSupport.java b/components/camel-test/src/main/java/org/apache/camel/test/junit4/CamelTestSupport.java
index 27f3136..896e8bf 100644
--- a/components/camel-test/src/main/java/org/apache/camel/test/junit4/CamelTestSupport.java
+++ b/components/camel-test/src/main/java/org/apache/camel/test/junit4/CamelTestSupport.java
@@ -70,16 +70,16 @@ import org.apache.camel.builder.AdviceWithRouteBuilder;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.impl.debugger.DefaultDebugger;
import org.apache.camel.impl.engine.InterceptSendToMockEndpointStrategy;
import org.apache.camel.model.Model;
import org.apache.camel.model.ModelCamelContext;
import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.processor.interceptor.BreakpointSupport;
-import org.apache.camel.processor.interceptor.DefaultDebugger;
import org.apache.camel.spi.CamelBeanPostProcessor;
import org.apache.camel.spi.Language;
import org.apache.camel.spi.PropertiesComponent;
import org.apache.camel.spi.Registry;
+import org.apache.camel.support.BreakpointSupport;
import org.apache.camel.support.EndpointHelper;
import org.apache.camel.util.IOHelper;
import org.apache.camel.util.StopWatch;
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/ErrorHandler.java b/core/camel-api/src/generated/java/org/apache/camel/spi/ErrorHandler.java
similarity index 96%
rename from core/camel-base/src/main/java/org/apache/camel/processor/ErrorHandler.java
rename to core/camel-api/src/generated/java/org/apache/camel/spi/ErrorHandler.java
index e53c621..656e7db 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/ErrorHandler.java
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/ErrorHandler.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.processor;
+package org.apache.camel.spi;
import org.apache.camel.Processor;
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 c1a7a59..6700d00 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
@@ -16,11 +16,9 @@
*/
package org.apache.camel;
-import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.ExecutorService;
import java.util.concurrent.ScheduledExecutorService;
import org.apache.camel.catalog.RuntimeCamelCatalog;
@@ -216,17 +214,6 @@ public interface ExtendedCamelContext extends CamelContext {
ManagementMBeanAssembler getManagementMBeanAssembler();
/**
- * Creates a new multicast processor which sends an exchange to all the processors.
- *
- * @param processors the list of processors to send to
- * @param executor the executor to use
- * @return a multicasting processor
- */
- AsyncProcessor createMulticast(
- Collection<Processor> processors,
- ExecutorService executor, boolean shutdownExecutorService);
-
- /**
* Gets the default error handler builder which is inherited by the routes
*
* @return the builder
@@ -417,6 +404,11 @@ public interface ExtendedCamelContext extends CamelContext {
DeferServiceFactory getDeferServiceFactory();
/**
+ * Sets a custom {@link DeferServiceFactory} to use.
+ */
+ void setDeferServiceFactory(DeferServiceFactory deferServiceFactory);
+
+ /**
* Gets the {@link UnitOfWorkFactory} to use.
*/
UnitOfWorkFactory getUnitOfWorkFactory();
@@ -432,6 +424,11 @@ public interface ExtendedCamelContext extends CamelContext {
AnnotationBasedProcessorFactory getAnnotationBasedProcessorFactory();
/**
+ * Sets a custom {@link AnnotationBasedProcessorFactory} to use.
+ */
+ void setAnnotationBasedProcessorFactory(AnnotationBasedProcessorFactory annotationBasedProcessorFactory);
+
+ /**
* Gets the {@link BeanProxyFactory} to use.
*/
BeanProxyFactory getBeanProxyFactory();
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/AnnotationBasedProcessorFactory.java b/core/camel-api/src/main/java/org/apache/camel/spi/AnnotationBasedProcessorFactory.java
index c720652..5497830 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/AnnotationBasedProcessorFactory.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/AnnotationBasedProcessorFactory.java
@@ -29,6 +29,11 @@ import org.apache.camel.RoutingSlip;
public interface AnnotationBasedProcessorFactory {
/**
+ * Service factory key.
+ */
+ String FACTORY = "annotation-processor-factory";
+
+ /**
* Creates dynamic router processor from the configured annotation.
*/
AsyncProcessor createDynamicRouter(CamelContext camelContext, DynamicRouter annotation);
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/DeferServiceFactory.java b/core/camel-api/src/main/java/org/apache/camel/spi/DeferServiceFactory.java
index 3599271..9141f08 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/DeferServiceFactory.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/DeferServiceFactory.java
@@ -26,6 +26,11 @@ import org.apache.camel.Producer;
public interface DeferServiceFactory {
/**
+ * Service factory key.
+ */
+ String FACTORY = "defer-service-factory";
+
+ /**
* Creates the {@link Producer} which is deferred started until {@link org.apache.camel.CamelContext} is being
* started.
* <p/>
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/InternalProcessor.java b/core/camel-api/src/main/java/org/apache/camel/spi/InternalProcessor.java
new file mode 100644
index 0000000..188ab95
--- /dev/null
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/InternalProcessor.java
@@ -0,0 +1,43 @@
+package org.apache.camel.spi;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.AsyncProcessor;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+
+/**
+ * An internal {@link Processor} that Camel routing engine used during routing for cross cutting functionality such as:
+ * <ul>
+ * <li>Execute {@link UnitOfWork}</li>
+ * <li>Keeping track which route currently is being routed</li>
+ * <li>Execute {@link RoutePolicy}</li>
+ * <li>Gather JMX performance statics</li>
+ * <li>Tracing</li>
+ * <li>Debugging</li>
+ * <li>Message History</li>
+ * <li>Stream Caching</li>
+ * <li>{@link Transformer}</li>
+ * </ul>
+ * ... and more.
+ * <p/>
+ *
+ * This is intended for internal use only - do not use this.
+ */
+public interface InternalProcessor extends Processor {
+
+ @Override
+ default void process(Exchange exchange) throws Exception {
+ // not in use
+ }
+
+ /**
+ * Asynchronous API
+ */
+ boolean process(Exchange exchange, AsyncCallback originalCallback, AsyncProcessor processor, Processor resultProcessor);
+
+ /**
+ * Synchronous API
+ */
+ void process(Exchange exchange, AsyncProcessor processor, Processor resultProcessor);
+
+}
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/ProcessorFactory.java b/core/camel-api/src/main/java/org/apache/camel/spi/ProcessorFactory.java
index 6dd831d..4830369 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/ProcessorFactory.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/ProcessorFactory.java
@@ -31,13 +31,18 @@ import org.apache.camel.Route;
* change options. Its also possible to add new steps in the route by adding outputs to
* {@link org.apache.camel.model.ProcessorDefinition definition}s.
* <p/>
- * <b>Important:</b> By returning <tt>null</tt> from the create methods you fallback to let the default implementation
- * in Camel create the {@link Processor}. You want to do this if you <i>only</i> want to manipulate the
- * {@link org.apache.camel.model.ProcessorDefinition definition}s.
+ * <b>Important:</b> A custom ProcessorFactory should extend the default implementation
+ * <tt>org.apache.camel.processor.DefaultProcessorFactory</tt> and in the overridden methods, super should be called to
+ * let the default implementation create the processor when custom processors is not created.
*/
public interface ProcessorFactory {
/**
+ * Service factory key.
+ */
+ String FACTORY = "processor-factory";
+
+ /**
* Creates the child processor.
* <p/>
* The child processor is an output from the given definition, for example the sub route in a splitter EIP.
@@ -64,7 +69,7 @@ public interface ProcessorFactory {
/**
* Creates a processor by the name of the definition. This should only be used in some special situations where the
- * processor is used internally in some features such as camel-cloud.
+ * processor is used internally by Camel itself and some component such as camel-cloud, camel-seda.
*
* @param camelContext the camel context
* @param definitionName the name of the definition that represents the processor
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/interceptor/BacklogDebugger.java b/core/camel-base/src/main/java/org/apache/camel/impl/debugger/BacklogDebugger.java
similarity index 99%
rename from core/camel-base/src/main/java/org/apache/camel/processor/interceptor/BacklogDebugger.java
rename to core/camel-base/src/main/java/org/apache/camel/impl/debugger/BacklogDebugger.java
index 0fbb3da..1ec0404 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/interceptor/BacklogDebugger.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/debugger/BacklogDebugger.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.processor.interceptor;
+package org.apache.camel.impl.debugger;
import java.util.LinkedHashSet;
import java.util.Set;
@@ -39,6 +39,7 @@ import org.apache.camel.spi.CamelEvent.ExchangeEvent;
import org.apache.camel.spi.CamelLogger;
import org.apache.camel.spi.Condition;
import org.apache.camel.spi.Debugger;
+import org.apache.camel.support.BreakpointSupport;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.MessageHelper;
import org.apache.camel.support.service.ServiceHelper;
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java b/core/camel-base/src/main/java/org/apache/camel/impl/debugger/BacklogTracer.java
similarity index 99%
rename from core/camel-base/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
rename to core/camel-base/src/main/java/org/apache/camel/impl/debugger/BacklogTracer.java
index 6c1c6f5..c9bf714 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/debugger/BacklogTracer.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.processor.interceptor;
+package org.apache.camel.impl.debugger;
import java.util.ArrayList;
import java.util.List;
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/interceptor/DefaultBacklogTracerEventMessage.java b/core/camel-base/src/main/java/org/apache/camel/impl/debugger/DefaultBacklogTracerEventMessage.java
similarity index 98%
rename from core/camel-base/src/main/java/org/apache/camel/processor/interceptor/DefaultBacklogTracerEventMessage.java
rename to core/camel-base/src/main/java/org/apache/camel/impl/debugger/DefaultBacklogTracerEventMessage.java
index 1da6660..6cf5419 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/interceptor/DefaultBacklogTracerEventMessage.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/debugger/DefaultBacklogTracerEventMessage.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.processor.interceptor;
+package org.apache.camel.impl.debugger;
import java.text.SimpleDateFormat;
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/interceptor/DefaultDebugger.java b/core/camel-base/src/main/java/org/apache/camel/impl/debugger/DefaultDebugger.java
similarity index 99%
rename from core/camel-base/src/main/java/org/apache/camel/processor/interceptor/DefaultDebugger.java
rename to core/camel-base/src/main/java/org/apache/camel/impl/debugger/DefaultDebugger.java
index 29ea5fd..a65c288 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/interceptor/DefaultDebugger.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/debugger/DefaultDebugger.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.processor.interceptor;
+package org.apache.camel.impl.debugger;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/interceptor/package.html b/core/camel-base/src/main/java/org/apache/camel/impl/debugger/package.html
similarity index 96%
rename from core/camel-base/src/main/java/org/apache/camel/processor/interceptor/package.html
rename to core/camel-base/src/main/java/org/apache/camel/impl/debugger/package.html
index dea66da..5907fd0 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/interceptor/package.html
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/debugger/package.html
@@ -21,7 +21,7 @@
</head>
<body>
-Helper classes for interceptors.
+Helper classes for debugger.
</body>
</html>
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
index 39f8131..dcf5a1d 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
@@ -199,9 +199,8 @@ public abstract class AbstractCamelContext extends BaseService
private final Object lock = new Object();
private final RouteController internalRouteController = new InternalRouteController(this);
private final InternalRouteStartupManager internalRouteStartupManager = new InternalRouteStartupManager(this);
- private final DeferServiceFactory deferServiceFactory = new DefaultDeferServiceFactory();
- private final AnnotationBasedProcessorFactory annotationBasedProcessorFactory
- = new DefaultAnnotationBasedProcessorFactory();
+ private DeferServiceFactory deferServiceFactory;
+ private AnnotationBasedProcessorFactory annotationBasedProcessorFactory;
private final List<RouteStartupOrder> routeStartupOrder = new ArrayList<>();
private final StopWatch stopWatch = new StopWatch(false);
private final Map<Class<?>, Object> extensions = new ConcurrentHashMap<>();
@@ -3265,6 +3264,7 @@ public abstract class AbstractCamelContext extends BaseService
// ignore in case camel-bean is not on the classpath
}
getBeanPostProcessor();
+ getProcessorFactory();
}
/**
@@ -4126,14 +4126,36 @@ public abstract class AbstractCamelContext extends BaseService
@Override
public DeferServiceFactory getDeferServiceFactory() {
+ if (deferServiceFactory == null) {
+ synchronized (lock) {
+ if (deferServiceFactory == null) {
+ setDeferServiceFactory(createDeferServiceFactory());
+ }
+ }
+ }
return deferServiceFactory;
}
+ public void setDeferServiceFactory(DeferServiceFactory deferServiceFactory) {
+ this.deferServiceFactory = deferServiceFactory;
+ }
+
@Override
public AnnotationBasedProcessorFactory getAnnotationBasedProcessorFactory() {
+ if (annotationBasedProcessorFactory == null) {
+ synchronized (lock) {
+ if (annotationBasedProcessorFactory == null) {
+ setAnnotationBasedProcessorFactory(createAnnotationBasedProcessorFactory());
+ }
+ }
+ }
return annotationBasedProcessorFactory;
}
+ public void setAnnotationBasedProcessorFactory(AnnotationBasedProcessorFactory annotationBasedProcessorFactory) {
+ this.annotationBasedProcessorFactory = annotationBasedProcessorFactory;
+ }
+
@Override
public BeanProxyFactory getBeanProxyFactory() {
if (beanProxyFactory == null) {
@@ -4241,6 +4263,10 @@ public abstract class AbstractCamelContext extends BaseService
protected abstract BeanProxyFactory createBeanProxyFactory();
+ protected abstract AnnotationBasedProcessorFactory createAnnotationBasedProcessorFactory();
+
+ protected abstract DeferServiceFactory createDeferServiceFactory();
+
protected abstract BeanProcessorFactory createBeanProcessorFactory();
protected abstract BeanIntrospection createBeanIntrospection();
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/CamelInternalProcessor.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/CamelInternalProcessor.java
similarity index 99%
rename from core/camel-base/src/main/java/org/apache/camel/processor/CamelInternalProcessor.java
rename to core/camel-base/src/main/java/org/apache/camel/impl/engine/CamelInternalProcessor.java
index d872bf6..8fbb08f 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/CamelInternalProcessor.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/CamelInternalProcessor.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.processor;
+package org.apache.camel.impl.engine;
import java.util.ArrayList;
import java.util.List;
@@ -36,9 +36,9 @@ import org.apache.camel.Route;
import org.apache.camel.StatefulService;
import org.apache.camel.StreamCache;
import org.apache.camel.StreamCacheException;
-import org.apache.camel.processor.interceptor.BacklogDebugger;
-import org.apache.camel.processor.interceptor.BacklogTracer;
-import org.apache.camel.processor.interceptor.DefaultBacklogTracerEventMessage;
+import org.apache.camel.impl.debugger.BacklogDebugger;
+import org.apache.camel.impl.debugger.BacklogTracer;
+import org.apache.camel.impl.debugger.DefaultBacklogTracerEventMessage;
import org.apache.camel.spi.CamelInternalProcessorAdvice;
import org.apache.camel.spi.Debugger;
import org.apache.camel.spi.InflightRepository;
@@ -520,7 +520,7 @@ public class CamelInternalProcessor extends DelegateAsyncProcessor {
}
/**
- * Advice to execute the {@link org.apache.camel.processor.interceptor.BacklogDebugger} if enabled.
+ * Advice to execute the {@link BacklogDebugger} if enabled.
*/
public static final class BacklogDebuggerAdvice implements CamelInternalProcessorAdvice<StopWatch>, Ordered {
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultFluentProducerTemplate.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultFluentProducerTemplate.java
index 925ac2e..40d4bd1 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultFluentProducerTemplate.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultFluentProducerTemplate.java
@@ -28,11 +28,13 @@ import org.apache.camel.CamelExecutionException;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.ExchangePattern;
+import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.FluentProducerTemplate;
import org.apache.camel.Message;
import org.apache.camel.Processor;
import org.apache.camel.ProducerTemplate;
-import org.apache.camel.processor.ConvertBodyProcessor;
+import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.spi.ProcessorFactory;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.support.service.ServiceHelper;
import org.apache.camel.support.service.ServiceSupport;
@@ -49,7 +51,8 @@ public class DefaultFluentProducerTemplate extends ServiceSupport implements Flu
private Consumer<ProducerTemplate> templateCustomizer;
private final CamelContext context;
- private final ClassValue<ConvertBodyProcessor> resultProcessors;
+ private final ProcessorFactory processorFactory;
+ private final ClassValue<Processor> resultProcessors;
private Endpoint defaultEndpoint;
private int maximumCacheSize;
private boolean eventNotifierEnabled;
@@ -58,19 +61,27 @@ public class DefaultFluentProducerTemplate extends ServiceSupport implements Flu
public DefaultFluentProducerTemplate(CamelContext context) {
this.context = context;
+ this.processorFactory = context.adapt(ExtendedCamelContext.class).getProcessorFactory();
this.eventNotifierEnabled = true;
- this.resultProcessors = new ClassValue<ConvertBodyProcessor>() {
+ this.resultProcessors = new ClassValue<Processor>() {
@Override
- protected ConvertBodyProcessor computeValue(Class<?> type) {
- return new ConvertBodyProcessor(type);
+ protected Processor computeValue(Class<?> type) {
+ Map<String, Object> args = new HashMap<>();
+ args.put("type", type);
+ try {
+ return processorFactory.createProcessor(context, "ConvertBodyProcessor", args);
+ } catch (Exception e) {
+ throw RuntimeCamelException.wrapRuntimeException(e);
+ }
}
};
}
- private DefaultFluentProducerTemplate(CamelContext context, ClassValue<ConvertBodyProcessor> resultProcessors,
+ private DefaultFluentProducerTemplate(CamelContext context, ClassValue<Processor> resultProcessors,
Endpoint defaultEndpoint, int maximumCacheSize, boolean eventNotifierEnabled,
ProducerTemplate template) {
this.context = context;
+ this.processorFactory = context.adapt(ExtendedCamelContext.class).getProcessorFactory();
this.resultProcessors = resultProcessors;
this.defaultEndpoint = defaultEndpoint;
this.maximumCacheSize = maximumCacheSize;
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultInterceptSendToEndpoint.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultInterceptSendToEndpoint.java
index 9cf1640..dc4b09e 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultInterceptSendToEndpoint.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultInterceptSendToEndpoint.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.impl.engine;
+import java.util.HashMap;
import java.util.Map;
import org.apache.camel.AsyncProducer;
@@ -24,6 +25,7 @@ import org.apache.camel.Consumer;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.ExchangePattern;
+import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.PollingConsumer;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
@@ -36,6 +38,7 @@ import org.apache.camel.support.service.ServiceHelper;
*/
public class DefaultInterceptSendToEndpoint implements InterceptSendToEndpoint, ShutdownableService {
+ private final CamelContext camelContext;
private final Endpoint delegate;
private Processor before;
private Processor after;
@@ -48,6 +51,7 @@ public class DefaultInterceptSendToEndpoint implements InterceptSendToEndpoint,
* @param skip <tt>true</tt> to skip sending after the detour to the original endpoint
*/
public DefaultInterceptSendToEndpoint(final Endpoint destination, boolean skip) {
+ this.camelContext = destination.getCamelContext();
this.delegate = destination;
this.skip = skip;
}
@@ -122,7 +126,14 @@ public class DefaultInterceptSendToEndpoint implements InterceptSendToEndpoint,
@Override
public AsyncProducer createAsyncProducer() throws Exception {
AsyncProducer producer = delegate.createAsyncProducer();
- return new InterceptSendToEndpointProcessor(this, delegate, producer, skip);
+
+ Map<String, Object> args = new HashMap<>();
+ args.put("endpoint", this);
+ args.put("delegate", delegate);
+ args.put("producer", producer);
+ args.put("skip", skip);
+ return (AsyncProducer) camelContext.adapt(ExtendedCamelContext.class).getProcessorFactory()
+ .createProcessor(camelContext, "InterceptSendToEndpointProcessor", args);
}
@Override
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultProducerCache.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultProducerCache.java
index 3e2571f..aad974a 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultProducerCache.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultProducerCache.java
@@ -30,10 +30,10 @@ import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.FailedToCreateProducerException;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
+import org.apache.camel.RuntimeCamelException;
import org.apache.camel.StatefulService;
-import org.apache.camel.processor.CamelInternalProcessor;
-import org.apache.camel.processor.SharedCamelInternalProcessor;
import org.apache.camel.spi.EndpointUtilizationStatistics;
+import org.apache.camel.spi.InternalProcessor;
import org.apache.camel.spi.ProducerCache;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.EventHelper;
@@ -54,7 +54,7 @@ public class DefaultProducerCache extends ServiceSupport implements ProducerCach
private final ExtendedCamelContext camelContext;
private final ProducerServicePool producers;
private final Object source;
- private final SharedCamelInternalProcessor internalProcessor;
+ private final InternalProcessor internalProcessor;
private EndpointUtilizationStatistics statistics;
private boolean eventNotifierEnabled = true;
@@ -81,8 +81,17 @@ public class DefaultProducerCache extends ServiceSupport implements ProducerCach
}
// internal processor used for sending
- internalProcessor = new SharedCamelInternalProcessor(
- camelContext, new CamelInternalProcessor.UnitOfWorkProcessorAdvice(null, camelContext));
+ try {
+ internalProcessor = (InternalProcessor) this.camelContext.getProcessorFactory().createProcessor(this.camelContext,
+ "SharedCamelInternalProcessor", null);
+ } catch (Exception e) {
+ throw RuntimeCamelException.wrapRuntimeException(e);
+ }
+ if (internalProcessor == null) {
+ throw new IllegalStateException(
+ "Cannot create SharedCamelInternalProcessor from ProcessorFactory." +
+ "If you have a custom ProcessorFactory then extend DefaultProcessorFactory and let the default able to create SharedCamelInternalProcessor");
+ }
}
protected ProducerServicePool createServicePool(CamelContext camelContext, int cacheSize) {
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultProducerTemplate.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultProducerTemplate.java
index cfee451..0cf510d 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultProducerTemplate.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultProducerTemplate.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.impl.engine;
+import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
@@ -29,11 +30,13 @@ import org.apache.camel.CamelExecutionException;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.ExchangePattern;
+import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.Message;
import org.apache.camel.NoSuchEndpointException;
import org.apache.camel.Processor;
import org.apache.camel.ProducerTemplate;
-import org.apache.camel.processor.ConvertBodyProcessor;
+import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.spi.ProcessorFactory;
import org.apache.camel.spi.ProducerCache;
import org.apache.camel.spi.Synchronization;
import org.apache.camel.support.CamelContextHelper;
@@ -49,6 +52,7 @@ import org.apache.camel.util.concurrent.SynchronousExecutorService;
*/
public class DefaultProducerTemplate extends ServiceSupport implements ProducerTemplate {
private final CamelContext camelContext;
+ private final ProcessorFactory processorFactory;
private volatile ProducerCache producerCache;
private volatile ExecutorService executor;
private Endpoint defaultEndpoint;
@@ -58,10 +62,12 @@ public class DefaultProducerTemplate extends ServiceSupport implements ProducerT
public DefaultProducerTemplate(CamelContext camelContext) {
this.camelContext = camelContext;
+ this.processorFactory = camelContext.adapt(ExtendedCamelContext.class).getProcessorFactory();
}
public DefaultProducerTemplate(CamelContext camelContext, ExecutorService executor) {
this.camelContext = camelContext;
+ this.processorFactory = camelContext.adapt(ExtendedCamelContext.class).getProcessorFactory();
this.executor = executor;
}
@@ -554,7 +560,13 @@ public class DefaultProducerTemplate extends ServiceSupport implements ProducerT
}
protected Processor createConvertBodyProcessor(final Class<?> type) {
- return new ConvertBodyProcessor(type);
+ Map<String, Object> args = new HashMap<>();
+ args.put("type", type);
+ try {
+ return processorFactory.createProcessor(camelContext, "ConvertBodyProcessor", args);
+ } catch (Exception e) {
+ throw RuntimeCamelException.wrapRuntimeException(e);
+ }
}
protected Function<Exchange, Exchange> createCompletionFunction(Synchronization onCompletion) {
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/RouteService.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/RouteService.java
index 9beabf3..cb9aab0 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/RouteService.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/RouteService.java
@@ -39,7 +39,7 @@ import org.apache.camel.Route;
import org.apache.camel.RouteAware;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.Service;
-import org.apache.camel.processor.ErrorHandler;
+import org.apache.camel.spi.ErrorHandler;
import org.apache.camel.spi.LifecycleStrategy;
import org.apache.camel.spi.RouteIdAware;
import org.apache.camel.spi.RoutePolicy;
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java
index f7e1f05..f2a9da4 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java
@@ -16,11 +16,8 @@
*/
package org.apache.camel.impl.engine;
-import java.util.Collection;
import java.util.Map;
-import java.util.concurrent.ExecutorService;
-import org.apache.camel.AsyncProcessor;
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.Processor;
@@ -29,7 +26,7 @@ import org.apache.camel.TypeConverter;
import org.apache.camel.catalog.RuntimeCamelCatalog;
import org.apache.camel.health.HealthCheckRegistry;
import org.apache.camel.impl.converter.DefaultTypeConverter;
-import org.apache.camel.processor.MulticastProcessor;
+import org.apache.camel.spi.AnnotationBasedProcessorFactory;
import org.apache.camel.spi.AsyncProcessorAwaitManager;
import org.apache.camel.spi.BeanIntrospection;
import org.apache.camel.spi.BeanProcessorFactory;
@@ -41,6 +38,7 @@ import org.apache.camel.spi.ComponentNameResolver;
import org.apache.camel.spi.ComponentResolver;
import org.apache.camel.spi.ConfigurerResolver;
import org.apache.camel.spi.DataFormatResolver;
+import org.apache.camel.spi.DeferServiceFactory;
import org.apache.camel.spi.EndpointRegistry;
import org.apache.camel.spi.ExecutorServiceManager;
import org.apache.camel.spi.FactoryFinder;
@@ -198,7 +196,11 @@ public class SimpleCamelContext extends AbstractCamelContext {
@Override
protected ProcessorFactory createProcessorFactory() {
- return new DefaultProcessorFactory();
+ return new BaseServiceResolver<>(ProcessorFactory.FACTORY, ProcessorFactory.class)
+ .resolve(getCamelContextReference())
+ .orElseThrow(() -> new IllegalArgumentException(
+ "Cannot find ProcessorFactory on classpath. "
+ + "Add camel-core-processor to classpath."));
}
@Override
@@ -301,6 +303,24 @@ public class SimpleCamelContext extends AbstractCamelContext {
}
@Override
+ protected AnnotationBasedProcessorFactory createAnnotationBasedProcessorFactory() {
+ return new BaseServiceResolver<>(AnnotationBasedProcessorFactory.FACTORY, AnnotationBasedProcessorFactory.class)
+ .resolve(getCamelContextReference())
+ .orElseThrow(() -> new IllegalArgumentException(
+ "Cannot find AnnotationBasedProcessorFactory on classpath. "
+ + "Add camel-core-processor to classpath."));
+ }
+
+ @Override
+ protected DeferServiceFactory createDeferServiceFactory() {
+ return new BaseServiceResolver<>(DeferServiceFactory.FACTORY, DeferServiceFactory.class)
+ .resolve(getCamelContextReference())
+ .orElseThrow(() -> new IllegalArgumentException(
+ "Cannot find DeferServiceFactory on classpath. "
+ + "Add camel-core-processor to classpath."));
+ }
+
+ @Override
protected BeanProcessorFactory createBeanProcessorFactory() {
return new BaseServiceResolver<>(BeanProcessorFactory.FACTORY, BeanProcessorFactory.class)
.resolve(getCamelContextReference())
@@ -403,14 +423,6 @@ public class SimpleCamelContext extends AbstractCamelContext {
}
@Override
- public AsyncProcessor createMulticast(
- Collection<Processor> processors, ExecutorService executor, boolean shutdownExecutorService) {
- return new MulticastProcessor(
- getCamelContextReference(), null, processors, null, true, executor, shutdownExecutorService, false, false, 0,
- null, false, false);
- }
-
- @Override
protected ValidatorRegistry<ValidatorKey> createValidatorRegistry() {
return new DefaultValidatorRegistry(getCamelContextReference());
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/SubscribeMethodProcessor.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/SubscribeMethodProcessor.java
index c8d8492..8f3161e 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/SubscribeMethodProcessor.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/SubscribeMethodProcessor.java
@@ -18,6 +18,7 @@ package org.apache.camel.impl.engine;
import java.lang.reflect.Method;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -30,7 +31,6 @@ import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.Navigate;
import org.apache.camel.Predicate;
import org.apache.camel.Processor;
-import org.apache.camel.processor.CamelInternalProcessor;
import org.apache.camel.spi.Language;
import org.apache.camel.support.AsyncProcessorSupport;
import org.apache.camel.support.builder.PredicateBuilder;
@@ -58,17 +58,20 @@ public final class SubscribeMethodProcessor extends AsyncProcessorSupport implem
public void addMethod(final Object pojo, final Method method, final Endpoint endpoint, String predicate) throws Exception {
Processor answer = endpoint.getCamelContext().adapt(ExtendedCamelContext.class)
.getBeanProcessorFactory().createBeanProcessor(endpoint.getCamelContext(), pojo, method);
- // must ensure the consumer is being executed in an unit of work so synchronization callbacks etc is invoked
- CamelInternalProcessor internal = new CamelInternalProcessor(endpoint.getCamelContext(), answer);
- internal.addAdvice(new CamelInternalProcessor.UnitOfWorkProcessorAdvice(null, endpoint.getCamelContext()));
+ // must ensure the consumer is being executed in an unit of work so synchronization callbacks etc is invoked
+ Map<String, Object> args = new HashMap<>();
+ args.put("processor", answer);
+ args.put("route", null);
+ answer = endpoint.getCamelContext().adapt(ExtendedCamelContext.class).getProcessorFactory()
+ .createProcessor(endpoint.getCamelContext(), "UnitOfWorkProcessorAdvice", args);
Predicate p;
if (ObjectHelper.isEmpty(predicate)) {
p = PredicateBuilder.constant(true);
} else {
p = simple.createPredicate(predicate);
}
- methods.put(internal, p);
+ methods.put((AsyncProcessor) answer, p);
}
@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 9464b40..490fe14 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
@@ -19,6 +19,7 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
static {
Map<String, Object> map = new CaseInsensitiveMap();
map.put("AllowUseOriginalMessage", java.lang.Boolean.class);
+ map.put("AnnotationBasedProcessorFactory", org.apache.camel.spi.AnnotationBasedProcessorFactory.class);
map.put("ApplicationContextClassLoader", java.lang.ClassLoader.class);
map.put("AsyncProcessorAwaitManager", org.apache.camel.spi.AsyncProcessorAwaitManager.class);
map.put("AutoStartup", java.lang.Boolean.class);
@@ -32,6 +33,7 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
map.put("DataFormatResolver", org.apache.camel.spi.DataFormatResolver.class);
map.put("Debugger", org.apache.camel.spi.Debugger.class);
map.put("Debugging", java.lang.Boolean.class);
+ map.put("DeferServiceFactory", org.apache.camel.spi.DeferServiceFactory.class);
map.put("Delayer", java.lang.Long.class);
map.put("ErrorHandlerFactory", org.apache.camel.ErrorHandlerFactory.class);
map.put("EventNotificationApplicable", boolean.class);
@@ -97,6 +99,8 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
switch (ignoreCase ? name.toLowerCase() : name) {
case "allowuseoriginalmessage":
case "AllowUseOriginalMessage": target.setAllowUseOriginalMessage(property(camelContext, java.lang.Boolean.class, value)); return true;
+ case "annotationbasedprocessorfactory":
+ case "AnnotationBasedProcessorFactory": target.setAnnotationBasedProcessorFactory(property(camelContext, org.apache.camel.spi.AnnotationBasedProcessorFactory.class, value)); return true;
case "applicationcontextclassloader":
case "ApplicationContextClassLoader": target.setApplicationContextClassLoader(property(camelContext, java.lang.ClassLoader.class, value)); return true;
case "asyncprocessorawaitmanager":
@@ -123,6 +127,8 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "Debugger": target.setDebugger(property(camelContext, org.apache.camel.spi.Debugger.class, value)); return true;
case "debugging":
case "Debugging": target.setDebugging(property(camelContext, java.lang.Boolean.class, value)); return true;
+ case "deferservicefactory":
+ case "DeferServiceFactory": target.setDeferServiceFactory(property(camelContext, org.apache.camel.spi.DeferServiceFactory.class, value)); return true;
case "delayer":
case "Delayer": target.setDelayer(property(camelContext, java.lang.Long.class, value)); return true;
case "errorhandlerfactory":
@@ -250,6 +256,8 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
switch (ignoreCase ? name.toLowerCase() : name) {
case "allowuseoriginalmessage":
case "AllowUseOriginalMessage": return target.isAllowUseOriginalMessage();
+ case "annotationbasedprocessorfactory":
+ case "AnnotationBasedProcessorFactory": return target.getAnnotationBasedProcessorFactory();
case "applicationcontextclassloader":
case "ApplicationContextClassLoader": return target.getApplicationContextClassLoader();
case "asyncprocessorawaitmanager":
@@ -276,6 +284,8 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "Debugger": return target.getDebugger();
case "debugging":
case "Debugging": return target.isDebugging();
+ case "deferservicefactory":
+ case "DeferServiceFactory": return target.getDeferServiceFactory();
case "delayer":
case "Delayer": return target.getDelayer();
case "errorhandlerfactory":
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContext.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContext.java
index bbb1d35..cb01e8c 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContext.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContext.java
@@ -22,11 +22,9 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.ExecutorService;
import java.util.concurrent.ScheduledExecutorService;
import java.util.function.Function;
-import org.apache.camel.AsyncProcessor;
import org.apache.camel.CamelContext;
import org.apache.camel.CatalogCamelContext;
import org.apache.camel.Component;
@@ -1130,12 +1128,6 @@ public class LightweightCamelContext implements ExtendedCamelContext, CatalogCam
}
@Override
- public AsyncProcessor createMulticast(
- Collection<Processor> processors, ExecutorService executor, boolean shutdownExecutorService) {
- return getExtendedCamelContext().createMulticast(processors, executor, shutdownExecutorService);
- }
-
- @Override
public ErrorHandlerFactory getErrorHandlerFactory() {
return getExtendedCamelContext().getErrorHandlerFactory();
}
@@ -1281,6 +1273,11 @@ public class LightweightCamelContext implements ExtendedCamelContext, CatalogCam
}
@Override
+ public void setDeferServiceFactory(DeferServiceFactory deferServiceFactory) {
+ getExtendedCamelContext().setDeferServiceFactory(deferServiceFactory);
+ }
+
+ @Override
public UnitOfWorkFactory getUnitOfWorkFactory() {
return getExtendedCamelContext().getUnitOfWorkFactory();
}
@@ -1296,6 +1293,11 @@ public class LightweightCamelContext implements ExtendedCamelContext, CatalogCam
}
@Override
+ public void setAnnotationBasedProcessorFactory(AnnotationBasedProcessorFactory annotationBasedProcessorFactory) {
+ getExtendedCamelContext().setAnnotationBasedProcessorFactory(annotationBasedProcessorFactory);
+ }
+
+ @Override
public BeanProxyFactory getBeanProxyFactory() {
return getExtendedCamelContext().getBeanProxyFactory();
}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java
index 811d895..6c11515 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java
@@ -25,12 +25,10 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.ExecutorService;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
-import org.apache.camel.AsyncProcessor;
import org.apache.camel.CamelContext;
import org.apache.camel.CamelContextAware;
import org.apache.camel.CatalogCamelContext;
@@ -1312,12 +1310,6 @@ public class LightweightRuntimeCamelContext implements ExtendedCamelContext, Cat
}
@Override
- public AsyncProcessor createMulticast(
- Collection<Processor> processors, ExecutorService executor, boolean shutdownExecutorService) {
- throw new UnsupportedOperationException();
- }
-
- @Override
public ErrorHandlerFactory getErrorHandlerFactory() {
throw new UnsupportedOperationException();
}
@@ -1407,6 +1399,11 @@ public class LightweightRuntimeCamelContext implements ExtendedCamelContext, Cat
}
@Override
+ public void setDeferServiceFactory(DeferServiceFactory deferServiceFactory) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
public UnitOfWorkFactory getUnitOfWorkFactory() {
return unitOfWorkFactory;
}
@@ -1422,6 +1419,11 @@ public class LightweightRuntimeCamelContext implements ExtendedCamelContext, Cat
}
@Override
+ public void setAnnotationBasedProcessorFactory(AnnotationBasedProcessorFactory annotationBasedProcessorFactory) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
public BeanProxyFactory getBeanProxyFactory() {
throw new UnsupportedOperationException();
}
diff --git a/core/camel-core-model/pom.xml b/core/camel-core-model/pom.xml
index 5fcfdcb..cf5c4f1 100644
--- a/core/camel-core-model/pom.xml
+++ b/core/camel-core-model/pom.xml
@@ -45,12 +45,17 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-api</artifactId>
</dependency>
+ <!-- TODO: Remove this dependency -->
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-base</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
+ <artifactId>camel-core-processor</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
<artifactId>camel-support</artifactId>
</dependency>
<dependency>
diff --git a/core/camel-core-reifier/pom.xml b/core/camel-core-processor/pom.xml
similarity index 90%
copy from core/camel-core-reifier/pom.xml
copy to core/camel-core-processor/pom.xml
index 248178f..f982de3 100644
--- a/core/camel-core-reifier/pom.xml
+++ b/core/camel-core-processor/pom.xml
@@ -28,11 +28,11 @@
<relativePath>..</relativePath>
</parent>
- <artifactId>camel-core-reifier</artifactId>
+ <artifactId>camel-core-processor</artifactId>
<packaging>jar</packaging>
- <name>Camel :: Core Reifier</name>
- <description>Camel model to processor reifiers</description>
+ <name>Camel :: Core Processor</name>
+ <description>Camel core processors</description>
<properties>
<firstVersion>3.7.0</firstVersion>
@@ -46,6 +46,7 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-api</artifactId>
</dependency>
+ <!-- TODO: Remove this dependency -->
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-base</artifactId>
@@ -56,10 +57,6 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
- <artifactId>camel-core-model</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
<artifactId>camel-util</artifactId>
</dependency>
diff --git a/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/annotation-processor-factory b/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/annotation-processor-factory
new file mode 100644
index 0000000..896b4b0
--- /dev/null
+++ b/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/annotation-processor-factory
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.processor.DefaultAnnotationBasedProcessorFactory
diff --git a/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/defer-service-factory b/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/defer-service-factory
new file mode 100644
index 0000000..71db7e9
--- /dev/null
+++ b/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/defer-service-factory
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.processor.DefaultDeferServiceFactory
diff --git a/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/processor-factory b/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/processor-factory
new file mode 100644
index 0000000..66e956f
--- /dev/null
+++ b/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/processor-factory
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.processor.DefaultProcessorFactory
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/CatchProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/CatchProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/CatchProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/CatchProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/ChoiceProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ChoiceProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/ChoiceProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/ChoiceProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/ClaimCheckAggregationStrategy.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ClaimCheckAggregationStrategy.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/ClaimCheckAggregationStrategy.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/ClaimCheckAggregationStrategy.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/ClaimCheckProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ClaimCheckProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/ClaimCheckProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/ClaimCheckProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/ContractAdvice.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ContractAdvice.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/ContractAdvice.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/ContractAdvice.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/ConvertBodyProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ConvertBodyProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/ConvertBodyProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/ConvertBodyProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultAnnotationBasedProcessorFactory.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/DefaultAnnotationBasedProcessorFactory.java
similarity index 96%
rename from core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultAnnotationBasedProcessorFactory.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/DefaultAnnotationBasedProcessorFactory.java
index ddcaf93..29b8cb1 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultAnnotationBasedProcessorFactory.java
+++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/DefaultAnnotationBasedProcessorFactory.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.impl.engine;
+package org.apache.camel.processor;
import java.util.concurrent.ExecutorService;
@@ -26,9 +26,11 @@ import org.apache.camel.Processor;
import org.apache.camel.RecipientList;
import org.apache.camel.RoutingSlip;
import org.apache.camel.spi.AnnotationBasedProcessorFactory;
+import org.apache.camel.spi.annotations.JdkService;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.util.ObjectHelper;
+@JdkService(AnnotationBasedProcessorFactory.FACTORY)
public final class DefaultAnnotationBasedProcessorFactory implements AnnotationBasedProcessorFactory {
@Override
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultDeferServiceFactory.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/DefaultDeferServiceFactory.java
similarity index 87%
rename from core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultDeferServiceFactory.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/DefaultDeferServiceFactory.java
index 1f28555..6f573c0 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultDeferServiceFactory.java
+++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/DefaultDeferServiceFactory.java
@@ -14,14 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.impl.engine;
+package org.apache.camel.processor;
import org.apache.camel.Endpoint;
import org.apache.camel.Producer;
-import org.apache.camel.processor.EventNotifierProducer;
-import org.apache.camel.processor.UnitOfWorkProducer;
+import org.apache.camel.impl.engine.DeferProducer;
import org.apache.camel.spi.DeferServiceFactory;
+import org.apache.camel.spi.annotations.JdkService;
+@JdkService(DefaultDeferServiceFactory.FACTORY)
public final class DefaultDeferServiceFactory implements DeferServiceFactory {
@Override
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultProcessorFactory.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/DefaultProcessorFactory.java
similarity index 66%
rename from core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultProcessorFactory.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/DefaultProcessorFactory.java
index b08ebb5..cb4b71e 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultProcessorFactory.java
+++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/DefaultProcessorFactory.java
@@ -14,11 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.impl.engine;
+package org.apache.camel.processor;
+import java.util.Collection;
import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import org.apache.camel.AsyncProducer;
import org.apache.camel.CamelContext;
+import org.apache.camel.Endpoint;
import org.apache.camel.ExchangePattern;
import org.apache.camel.Expression;
import org.apache.camel.ExtendedCamelContext;
@@ -27,10 +31,11 @@ import org.apache.camel.NoFactoryAvailableException;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
import org.apache.camel.Route;
-import org.apache.camel.processor.SendDynamicProcessor;
-import org.apache.camel.processor.UnitOfWorkProducer;
+import org.apache.camel.impl.engine.CamelInternalProcessor;
import org.apache.camel.spi.FactoryFinder;
+import org.apache.camel.spi.InterceptSendToEndpoint;
import org.apache.camel.spi.ProcessorFactory;
+import org.apache.camel.spi.annotations.JdkService;
/**
* Default {@link ProcessorFactory} that supports using 3rd party Camel components to implement the EIP
@@ -44,6 +49,7 @@ import org.apache.camel.spi.ProcessorFactory;
* The Hystrix EIP is such an example where the circuit breaker EIP (CircuitBreakerDefinition) is implemented in the
* <tt>camel-hystrix</tt> component.
*/
+@JdkService(ProcessorFactory.FACTORY)
public class DefaultProcessorFactory implements ProcessorFactory {
public static final String RESOURCE_PATH = "META-INF/services/org/apache/camel/model/";
@@ -82,6 +88,7 @@ public class DefaultProcessorFactory implements ProcessorFactory {
}
@Override
+ @SuppressWarnings("unchecked")
public Processor createProcessor(CamelContext camelContext, String definitionName, Map<String, Object> args)
throws Exception {
if ("SendDynamicProcessor".equals(definitionName)) {
@@ -94,9 +101,34 @@ public class DefaultProcessorFactory implements ProcessorFactory {
processor.setPattern(exchangePattern);
}
return processor;
+ } else if ("MulticastProcessor".equals(definitionName)) {
+ Collection<Processor> processors = (Collection<Processor>) args.get("processors");
+ ExecutorService executor = (ExecutorService) args.get("executor");
+ boolean shutdownExecutorService = (boolean) args.get("shutdownExecutorService");
+ return new MulticastProcessor(
+ camelContext, null, processors, null, true, executor, shutdownExecutorService, false, false, 0,
+ null, false, false);
+ } else if ("ConvertBodyProcessor".equals(definitionName)) {
+ Class<?> type = (Class<?>) args.get("type");
+ return new ConvertBodyProcessor(type);
+ } else if ("UnitOfWorkProcessorAdvice".equals(definitionName)) {
+ Processor processor = (Processor) args.get("processor");
+ Route route = (Route) args.get("route");
+ CamelInternalProcessor internal = new CamelInternalProcessor(camelContext, processor);
+ internal.addAdvice(new CamelInternalProcessor.UnitOfWorkProcessorAdvice(route, camelContext));
+ return internal;
} else if ("UnitOfWorkProducer".equals(definitionName)) {
Producer producer = (Producer) args.get("producer");
return new UnitOfWorkProducer(producer);
+ } else if ("InterceptSendToEndpointProcessor".equals(definitionName)) {
+ InterceptSendToEndpoint endpoint = (InterceptSendToEndpoint) args.get("endpoint");
+ Endpoint delegate = (Endpoint) args.get("delegate");
+ AsyncProducer producer = (AsyncProducer) args.get("producer");
+ boolean skip = (boolean) args.get("skip");
+ return new InterceptSendToEndpointProcessor(endpoint, delegate, producer, skip);
+ } else if ("SharedCamelInternalProcessor".equals(definitionName)) {
+ return new SharedCamelInternalProcessor(
+ camelContext, new CamelInternalProcessor.UnitOfWorkProcessorAdvice(null, camelContext));
}
return null;
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/Delayer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Delayer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/Delayer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/Delayer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/DynamicRouter.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/DynamicRouter.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/DynamicRouter.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/DynamicRouter.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/Enricher.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Enricher.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/Enricher.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/Enricher.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/EvaluateExpressionProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/EvaluateExpressionProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/EvaluateExpressionProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/EvaluateExpressionProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/EventNotifierProducer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/EventNotifierProducer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/EventNotifierProducer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/EventNotifierProducer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/FatalFallbackErrorHandler.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/FatalFallbackErrorHandler.java
similarity index 97%
rename from core/camel-base/src/main/java/org/apache/camel/processor/FatalFallbackErrorHandler.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/FatalFallbackErrorHandler.java
index 6055508..3e2f165 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/FatalFallbackErrorHandler.java
+++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/FatalFallbackErrorHandler.java
@@ -23,6 +23,7 @@ import org.apache.camel.AsyncCallback;
import org.apache.camel.Exchange;
import org.apache.camel.ExtendedExchange;
import org.apache.camel.Processor;
+import org.apache.camel.spi.ErrorHandler;
import org.apache.camel.support.processor.DelegateAsyncProcessor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -30,8 +31,8 @@ import org.slf4j.LoggerFactory;
import static org.apache.camel.support.builder.ExpressionBuilder.routeIdExpression;
/**
- * An {@link org.apache.camel.processor.ErrorHandler} used as a safe fallback when processing by other error handlers
- * such as the {@link org.apache.camel.model.OnExceptionDefinition}.
+ * An {@link ErrorHandler} used as a safe fallback when processing by other error handlers such as the
+ * {@link org.apache.camel.model.OnExceptionDefinition}.
* <p/>
* This error handler is used as a fail-safe to ensure that error handling does not run in endless recursive looping
* which potentially can happen if a new exception is thrown while error handling a previous exception which then cause
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/FilterProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/FilterProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/FilterProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/FilterProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/FinallyProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/FinallyProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/FinallyProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/FinallyProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/InterceptEndpointProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/InterceptEndpointProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/InterceptEndpointProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/InterceptEndpointProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/InterceptSendToEndpointProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/InterceptSendToEndpointProcessor.java
similarity index 94%
rename from core/camel-base/src/main/java/org/apache/camel/impl/engine/InterceptSendToEndpointProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/InterceptSendToEndpointProcessor.java
index 0d8821e..ac5a335 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/InterceptSendToEndpointProcessor.java
+++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/InterceptSendToEndpointProcessor.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.impl.engine;
+package org.apache.camel.processor;
import java.util.Arrays;
@@ -23,7 +23,8 @@ import org.apache.camel.AsyncProcessor;
import org.apache.camel.AsyncProducer;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
-import org.apache.camel.processor.Pipeline;
+import org.apache.camel.impl.engine.DefaultInterceptSendToEndpoint;
+import org.apache.camel.spi.InterceptSendToEndpoint;
import org.apache.camel.support.AsyncProcessorConverterHelper;
import org.apache.camel.support.AsyncProcessorSupport;
import org.apache.camel.support.DefaultAsyncProducer;
@@ -41,12 +42,12 @@ public class InterceptSendToEndpointProcessor extends DefaultAsyncProducer {
private static final Logger LOG = LoggerFactory.getLogger(InterceptSendToEndpointProcessor.class);
- private final DefaultInterceptSendToEndpoint endpoint;
+ private final InterceptSendToEndpoint endpoint;
private final Endpoint delegate;
private final AsyncProducer producer;
private final boolean skip;
- public InterceptSendToEndpointProcessor(DefaultInterceptSendToEndpoint endpoint, Endpoint delegate, AsyncProducer producer,
+ public InterceptSendToEndpointProcessor(InterceptSendToEndpoint endpoint, Endpoint delegate, AsyncProducer producer,
boolean skip) throws Exception {
super(delegate);
this.endpoint = endpoint;
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/LogProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/LogProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/LogProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/LogProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/LoopProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/LoopProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/LoopProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/LoopProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/MulticastProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/MulticastProcessor.java
similarity index 99%
rename from core/camel-base/src/main/java/org/apache/camel/processor/MulticastProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/MulticastProcessor.java
index 0aa69ae..33abd8e 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/MulticastProcessor.java
+++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/MulticastProcessor.java
@@ -51,6 +51,7 @@ import org.apache.camel.Route;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.StreamCache;
import org.apache.camel.Traceable;
+import org.apache.camel.impl.engine.CamelInternalProcessor;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.ReactiveExecutor;
import org.apache.camel.spi.RouteIdAware;
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/OnCompletionProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/OnCompletionProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/OnCompletionProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/OnCompletionProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/Pipeline.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/Pipeline.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/PipelineHelper.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/PipelineHelper.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/PipelineHelper.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/PipelineHelper.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/PollEnricher.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/PollEnricher.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/PollEnricher.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/PollEnricher.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/ProcessorExchangePair.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ProcessorExchangePair.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/ProcessorExchangePair.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/ProcessorExchangePair.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/RecipientList.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RecipientList.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/RecipientList.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/RecipientList.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/RecipientListProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RecipientListProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/RecipientListProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/RecipientListProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/RemoveHeaderProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveHeaderProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/RemoveHeaderProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveHeaderProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/RemoveHeadersProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveHeadersProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/RemoveHeadersProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveHeadersProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/RemovePropertiesProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemovePropertiesProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/RemovePropertiesProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/RemovePropertiesProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/RemovePropertyProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemovePropertyProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/RemovePropertyProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/RemovePropertyProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/Resequencer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Resequencer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/Resequencer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/Resequencer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/RestBindingAdvice.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RestBindingAdvice.java
similarity index 99%
rename from core/camel-base/src/main/java/org/apache/camel/processor/RestBindingAdvice.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/RestBindingAdvice.java
index 442ccc5..e463385 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/RestBindingAdvice.java
+++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RestBindingAdvice.java
@@ -27,6 +27,7 @@ import org.apache.camel.CamelContextAware;
import org.apache.camel.CamelExchangeException;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
+import org.apache.camel.impl.engine.CamelInternalProcessor;
import org.apache.camel.spi.CamelInternalProcessorAdvice;
import org.apache.camel.spi.DataFormat;
import org.apache.camel.spi.DataType;
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/RollbackProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RollbackProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/RollbackProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/RollbackProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/RoutingSlip.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RoutingSlip.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/RoutingSlip.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/RoutingSlip.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/SamplingThrottler.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SamplingThrottler.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/SamplingThrottler.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/SamplingThrottler.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/ScriptProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ScriptProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/ScriptProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/ScriptProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/SendDynamicAwareResolver.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendDynamicAwareResolver.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/SendDynamicAwareResolver.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/SendDynamicAwareResolver.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/SendDynamicProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendDynamicProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/SendDynamicProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/SendDynamicProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/SendProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/SendProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/SetBodyProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetBodyProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/SetBodyProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/SetBodyProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/SetHeaderProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetHeaderProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/SetHeaderProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/SetHeaderProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/SetPropertyProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetPropertyProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/SetPropertyProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/SetPropertyProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/SharedCamelInternalProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SharedCamelInternalProcessor.java
similarity index 99%
rename from core/camel-base/src/main/java/org/apache/camel/processor/SharedCamelInternalProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/SharedCamelInternalProcessor.java
index a2c7438..bf3a84c 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/SharedCamelInternalProcessor.java
+++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SharedCamelInternalProcessor.java
@@ -31,6 +31,7 @@ import org.apache.camel.Processor;
import org.apache.camel.Service;
import org.apache.camel.spi.AsyncProcessorAwaitManager;
import org.apache.camel.spi.CamelInternalProcessorAdvice;
+import org.apache.camel.spi.InternalProcessor;
import org.apache.camel.spi.ReactiveExecutor;
import org.apache.camel.spi.RoutePolicy;
import org.apache.camel.spi.ShutdownStrategy;
@@ -69,7 +70,7 @@ import org.slf4j.LoggerFactory;
* <p/>
* The added advices can implement {@link Ordered} to control in which order the advices are executed.
*/
-public class SharedCamelInternalProcessor {
+public class SharedCamelInternalProcessor implements InternalProcessor {
private static final Logger LOG = LoggerFactory.getLogger(SharedCamelInternalProcessor.class);
private static final Object[] EMPTY_STATES = new Object[0];
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/SortProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SortProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/SortProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/SortProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/Splitter.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Splitter.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/Splitter.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/Splitter.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/StepProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/StepProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/StepProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/StepProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/StopProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/StopProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/StopProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/StopProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/StreamResequencer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamResequencer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/StreamResequencer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamResequencer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/ThreadsProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThreadsProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/ThreadsProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/ThreadsProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/Throttler.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Throttler.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/Throttler.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/Throttler.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/ThrottlerRejectedExecutionException.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThrottlerRejectedExecutionException.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/ThrottlerRejectedExecutionException.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/ThrottlerRejectedExecutionException.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/TransformProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/TransformProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/TransformProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/TransformProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/TryProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/TryProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/TryProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/TryProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/UnitOfWorkProducer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/UnitOfWorkProducer.java
similarity index 97%
rename from core/camel-base/src/main/java/org/apache/camel/processor/UnitOfWorkProducer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/UnitOfWorkProducer.java
index 989b05d..d01c9c9 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/UnitOfWorkProducer.java
+++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/UnitOfWorkProducer.java
@@ -21,6 +21,7 @@ import org.apache.camel.AsyncProcessor;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.Producer;
+import org.apache.camel.impl.engine.CamelInternalProcessor;
import org.apache.camel.support.DefaultAsyncProducer;
import org.apache.camel.support.service.ServiceHelper;
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/WireTapProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/WireTapProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/WireTapProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/WireTapProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/WrapProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/WrapProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/WrapProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/WrapProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/AbstractListAggregationStrategy.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AbstractListAggregationStrategy.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/AbstractListAggregationStrategy.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AbstractListAggregationStrategy.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/AggregateController.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateController.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/AggregateController.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateController.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessorStatistics.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessorStatistics.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessorStatistics.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessorStatistics.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/AggregationStrategyBeanAdapter.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregationStrategyBeanAdapter.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/AggregationStrategyBeanAdapter.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregationStrategyBeanAdapter.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/AggregationStrategyBeanInfo.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregationStrategyBeanInfo.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/AggregationStrategyBeanInfo.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregationStrategyBeanInfo.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/AggregationStrategyMethodInfo.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregationStrategyMethodInfo.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/AggregationStrategyMethodInfo.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregationStrategyMethodInfo.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/AggregationStrategyParameterInfo.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregationStrategyParameterInfo.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/AggregationStrategyParameterInfo.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregationStrategyParameterInfo.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/ClosedCorrelationKeyException.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/ClosedCorrelationKeyException.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/ClosedCorrelationKeyException.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/ClosedCorrelationKeyException.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/DefaultAggregateController.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/DefaultAggregateController.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/DefaultAggregateController.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/DefaultAggregateController.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/GroupedBodyAggregationStrategy.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/GroupedBodyAggregationStrategy.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/GroupedBodyAggregationStrategy.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/GroupedBodyAggregationStrategy.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/GroupedExchangeAggregationStrategy.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/GroupedExchangeAggregationStrategy.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/GroupedExchangeAggregationStrategy.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/GroupedExchangeAggregationStrategy.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/GroupedMessageAggregationStrategy.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/GroupedMessageAggregationStrategy.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/GroupedMessageAggregationStrategy.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/GroupedMessageAggregationStrategy.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/MemoryAggregationRepository.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/MemoryAggregationRepository.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/MemoryAggregationRepository.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/MemoryAggregationRepository.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/OptimisticLockRetryPolicy.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/OptimisticLockRetryPolicy.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/OptimisticLockRetryPolicy.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/OptimisticLockRetryPolicy.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/ShareUnitOfWorkAggregationStrategy.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/ShareUnitOfWorkAggregationStrategy.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/ShareUnitOfWorkAggregationStrategy.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/ShareUnitOfWorkAggregationStrategy.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/StringAggregationStrategy.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/StringAggregationStrategy.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/StringAggregationStrategy.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/StringAggregationStrategy.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/UseLatestAggregationStrategy.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/UseLatestAggregationStrategy.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/UseLatestAggregationStrategy.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/UseLatestAggregationStrategy.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/UseOriginalAggregationStrategy.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/UseOriginalAggregationStrategy.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/UseOriginalAggregationStrategy.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/UseOriginalAggregationStrategy.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/package.html b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/package.html
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/aggregate/package.html
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/package.html
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/channel/DefaultChannel.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/channel/DefaultChannel.java
similarity index 98%
rename from core/camel-base/src/main/java/org/apache/camel/processor/channel/DefaultChannel.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/channel/DefaultChannel.java
index 5dd2f80..8692457 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/channel/DefaultChannel.java
+++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/channel/DefaultChannel.java
@@ -30,12 +30,13 @@ import org.apache.camel.NamedNode;
import org.apache.camel.NamedRoute;
import org.apache.camel.Processor;
import org.apache.camel.Route;
-import org.apache.camel.processor.CamelInternalProcessor;
+import org.apache.camel.impl.debugger.BacklogDebugger;
+import org.apache.camel.impl.debugger.BacklogTracer;
+import org.apache.camel.impl.engine.CamelInternalProcessor;
import org.apache.camel.processor.WrapProcessor;
import org.apache.camel.processor.errorhandler.RedeliveryErrorHandler;
-import org.apache.camel.processor.interceptor.BacklogDebugger;
-import org.apache.camel.processor.interceptor.BacklogTracer;
import org.apache.camel.spi.Debugger;
+import org.apache.camel.spi.ErrorHandler;
import org.apache.camel.spi.InterceptStrategy;
import org.apache.camel.spi.ManagementInterceptStrategy;
import org.apache.camel.spi.MessageHistoryFactory;
@@ -105,7 +106,7 @@ public class DefaultChannel extends CamelInternalProcessor implements Channel {
}
/**
- * Sets the {@link org.apache.camel.processor.ErrorHandler} this Channel uses.
+ * Sets the {@link ErrorHandler} this Channel uses.
*
* @param errorHandler the error handler
*/
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/DeadLetterChannel.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/DeadLetterChannel.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/DeadLetterChannel.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/DeadLetterChannel.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/DefaultErrorHandler.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/DefaultErrorHandler.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/DefaultErrorHandler.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/DefaultErrorHandler.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/DefaultExceptionPolicyStrategy.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/DefaultExceptionPolicyStrategy.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/DefaultExceptionPolicyStrategy.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/DefaultExceptionPolicyStrategy.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/ErrorHandlerSupport.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/ErrorHandlerSupport.java
similarity index 98%
rename from core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/ErrorHandlerSupport.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/ErrorHandlerSupport.java
index 864b6c5..172cc44 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/ErrorHandlerSupport.java
+++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/ErrorHandlerSupport.java
@@ -21,7 +21,7 @@ import java.util.Map;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
-import org.apache.camel.processor.ErrorHandler;
+import org.apache.camel.spi.ErrorHandler;
import org.apache.camel.support.ChildServiceSupport;
/**
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/ExceptionPolicy.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/ExceptionPolicy.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/ExceptionPolicy.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/ExceptionPolicy.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/ExceptionPolicyKey.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/ExceptionPolicyKey.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/ExceptionPolicyKey.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/ExceptionPolicyKey.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/ExceptionPolicyStrategy.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/ExceptionPolicyStrategy.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/ExceptionPolicyStrategy.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/ExceptionPolicyStrategy.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/RedeliveryErrorHandler.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/RedeliveryErrorHandler.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/RedeliveryErrorHandler.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/RedeliveryErrorHandler.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/RedeliveryPolicy.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/RedeliveryPolicy.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/RedeliveryPolicy.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/RedeliveryPolicy.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/package.html b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/package.html
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/errorhandler/package.html
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/package.html
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/idempotent/IdempotentOnCompletion.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/idempotent/IdempotentOnCompletion.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/idempotent/IdempotentOnCompletion.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/idempotent/IdempotentOnCompletion.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/idempotent/NoMessageIdException.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/idempotent/NoMessageIdException.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/idempotent/NoMessageIdException.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/idempotent/NoMessageIdException.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/idempotent/package.html b/core/camel-core-processor/src/main/java/org/apache/camel/processor/idempotent/package.html
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/idempotent/package.html
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/idempotent/package.html
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/DistributionRatio.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/DistributionRatio.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/DistributionRatio.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/DistributionRatio.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/ExceptionFailureStatistics.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/ExceptionFailureStatistics.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/ExceptionFailureStatistics.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/ExceptionFailureStatistics.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/FailOverLoadBalancer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/FailOverLoadBalancer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/FailOverLoadBalancer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/FailOverLoadBalancer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancerConsumer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancerConsumer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancerConsumer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancerConsumer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancerSupport.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancerSupport.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancerSupport.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancerSupport.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/QueueLoadBalancer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/QueueLoadBalancer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/QueueLoadBalancer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/QueueLoadBalancer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/RandomLoadBalancer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/RandomLoadBalancer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/RandomLoadBalancer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/RandomLoadBalancer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/RoundRobinLoadBalancer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/RoundRobinLoadBalancer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/RoundRobinLoadBalancer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/RoundRobinLoadBalancer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/StickyLoadBalancer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/StickyLoadBalancer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/StickyLoadBalancer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/StickyLoadBalancer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/TopicLoadBalancer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/TopicLoadBalancer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/TopicLoadBalancer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/TopicLoadBalancer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/WeightedLoadBalancer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/WeightedLoadBalancer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/WeightedLoadBalancer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/WeightedLoadBalancer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRandomLoadBalancer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRandomLoadBalancer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRandomLoadBalancer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRandomLoadBalancer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRoundRobinLoadBalancer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRoundRobinLoadBalancer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRoundRobinLoadBalancer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRoundRobinLoadBalancer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/package.html b/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/package.html
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/loadbalancer/package.html
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/package.html
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/package.html b/core/camel-core-processor/src/main/java/org/apache/camel/processor/package.html
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/package.html
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/package.html
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/resequencer/DefaultExchangeComparator.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/DefaultExchangeComparator.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/resequencer/DefaultExchangeComparator.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/DefaultExchangeComparator.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/resequencer/Element.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/Element.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/resequencer/Element.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/Element.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/resequencer/ElementComparator.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/ElementComparator.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/resequencer/ElementComparator.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/ElementComparator.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/resequencer/ExpressionResultComparator.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/ExpressionResultComparator.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/resequencer/ExpressionResultComparator.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/ExpressionResultComparator.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/resequencer/MessageRejectedException.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/MessageRejectedException.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/resequencer/MessageRejectedException.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/MessageRejectedException.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/resequencer/Sequence.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/Sequence.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/resequencer/Sequence.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/Sequence.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/resequencer/SequenceElementComparator.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/SequenceElementComparator.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/resequencer/SequenceElementComparator.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/SequenceElementComparator.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/resequencer/SequenceSender.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/SequenceSender.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/resequencer/SequenceSender.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/SequenceSender.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/resequencer/Timeout.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/Timeout.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/resequencer/Timeout.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/Timeout.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/resequencer/TimeoutHandler.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/TimeoutHandler.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/resequencer/TimeoutHandler.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/TimeoutHandler.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/resequencer/package.html b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/package.html
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/resequencer/package.html
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/package.html
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/saga/MandatorySagaProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/MandatorySagaProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/saga/MandatorySagaProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/MandatorySagaProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/saga/NeverSagaProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/NeverSagaProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/saga/NeverSagaProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/NeverSagaProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/saga/NotSupportedSagaProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/NotSupportedSagaProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/saga/NotSupportedSagaProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/NotSupportedSagaProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/saga/RequiredSagaProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/RequiredSagaProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/saga/RequiredSagaProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/RequiredSagaProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/saga/RequiresNewSagaProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/RequiresNewSagaProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/saga/RequiresNewSagaProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/RequiresNewSagaProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/saga/SagaCompletionMode.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/SagaCompletionMode.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/saga/SagaCompletionMode.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/SagaCompletionMode.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/saga/SagaProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/SagaProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/saga/SagaProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/SagaProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/saga/SagaProcessorBuilder.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/SagaProcessorBuilder.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/saga/SagaProcessorBuilder.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/SagaProcessorBuilder.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/saga/SagaPropagation.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/SagaPropagation.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/saga/SagaPropagation.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/SagaPropagation.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/saga/SupportsSagaProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/SupportsSagaProcessor.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/saga/SupportsSagaProcessor.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/SupportsSagaProcessor.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/saga/package.html b/core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/package.html
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/saga/package.html
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/package.html
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/transformer/DataFormatTransformer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/transformer/DataFormatTransformer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/transformer/DataFormatTransformer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/transformer/DataFormatTransformer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/transformer/ProcessorTransformer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/transformer/ProcessorTransformer.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/transformer/ProcessorTransformer.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/transformer/ProcessorTransformer.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/transformer/package.html b/core/camel-core-processor/src/main/java/org/apache/camel/processor/transformer/package.html
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/transformer/package.html
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/transformer/package.html
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/validator/ProcessorValidator.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/validator/ProcessorValidator.java
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/validator/ProcessorValidator.java
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/validator/ProcessorValidator.java
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/validator/package.html b/core/camel-core-processor/src/main/java/org/apache/camel/processor/validator/package.html
similarity index 100%
rename from core/camel-base/src/main/java/org/apache/camel/processor/validator/package.html
rename to core/camel-core-processor/src/main/java/org/apache/camel/processor/validator/package.html
diff --git a/core/camel-core-reifier/pom.xml b/core/camel-core-reifier/pom.xml
index 248178f..8d99a4f 100644
--- a/core/camel-core-reifier/pom.xml
+++ b/core/camel-core-reifier/pom.xml
@@ -46,6 +46,7 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-api</artifactId>
</dependency>
+ <!-- TODO: Remove this dependency -->
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-base</artifactId>
@@ -60,6 +61,10 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
+ <artifactId>camel-core-processor</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
<artifactId>camel-util</artifactId>
</dependency>
diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/AggregateReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/AggregateReifier.java
index 82f61c4..3d7f7e7 100644
--- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/AggregateReifier.java
+++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/AggregateReifier.java
@@ -25,10 +25,10 @@ import org.apache.camel.Expression;
import org.apache.camel.Predicate;
import org.apache.camel.Processor;
import org.apache.camel.Route;
+import org.apache.camel.impl.engine.CamelInternalProcessor;
import org.apache.camel.model.AggregateDefinition;
import org.apache.camel.model.OptimisticLockRetryPolicyDefinition;
import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.processor.CamelInternalProcessor;
import org.apache.camel.processor.aggregate.AggregateController;
import org.apache.camel.processor.aggregate.AggregateProcessor;
import org.apache.camel.processor.aggregate.AggregationStrategyBeanAdapter;
@@ -50,6 +50,7 @@ public class AggregateReifier extends ProcessorReifier<AggregateDefinition> {
protected AggregateProcessor createAggregator() throws Exception {
Processor childProcessor = this.createChildProcessor(true);
+ // TODO: Make this via SPI or some facade
// wrap the aggregate route in a unit of work processor
CamelInternalProcessor internal = new CamelInternalProcessor(camelContext, childProcessor);
internal.addAdvice(new CamelInternalProcessor.UnitOfWorkProcessorAdvice(route, camelContext));
diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/OnCompletionReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/OnCompletionReifier.java
index d8a0e8f..7866a00 100644
--- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/OnCompletionReifier.java
+++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/OnCompletionReifier.java
@@ -21,10 +21,10 @@ import java.util.concurrent.ExecutorService;
import org.apache.camel.Predicate;
import org.apache.camel.Processor;
import org.apache.camel.Route;
+import org.apache.camel.impl.engine.CamelInternalProcessor;
import org.apache.camel.model.OnCompletionDefinition;
import org.apache.camel.model.OnCompletionMode;
import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.processor.CamelInternalProcessor;
import org.apache.camel.processor.OnCompletionProcessor;
public class OnCompletionReifier extends ProcessorReifier<OnCompletionDefinition> {
@@ -51,6 +51,7 @@ public class OnCompletionReifier extends ProcessorReifier<OnCompletionDefinition
Processor childProcessor = this.createChildProcessor(true);
+ // TODO: Make this via SPI or some facade
// wrap the on completion route in a unit of work processor
CamelInternalProcessor internal = new CamelInternalProcessor(camelContext, childProcessor);
internal.addAdvice(new CamelInternalProcessor.UnitOfWorkProcessorAdvice(route, camelContext));
diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ResequenceReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ResequenceReifier.java
index 5e60c4e..d7b15de 100644
--- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ResequenceReifier.java
+++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ResequenceReifier.java
@@ -19,12 +19,12 @@ package org.apache.camel.reifier;
import org.apache.camel.Expression;
import org.apache.camel.Processor;
import org.apache.camel.Route;
+import org.apache.camel.impl.engine.CamelInternalProcessor;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.ResequenceDefinition;
import org.apache.camel.model.config.BatchResequencerConfig;
import org.apache.camel.model.config.ResequencerConfig;
import org.apache.camel.model.config.StreamResequencerConfig;
-import org.apache.camel.processor.CamelInternalProcessor;
import org.apache.camel.processor.Resequencer;
import org.apache.camel.processor.StreamResequencer;
import org.apache.camel.processor.resequencer.DefaultExchangeComparator;
@@ -72,6 +72,7 @@ public class ResequenceReifier extends ProcessorReifier<ResequenceDefinition> {
Processor processor = this.createChildProcessor(true);
Expression expression = createExpression(definition.getExpression());
+ // TODO: Make this via SPI or some facade
// and wrap in unit of work
CamelInternalProcessor internal = new CamelInternalProcessor(camelContext, processor);
internal.addAdvice(new CamelInternalProcessor.UnitOfWorkProcessorAdvice(route, camelContext));
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 95a4071..6a9c25c 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
@@ -32,10 +32,10 @@ import org.apache.camel.Route;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.ShutdownRoute;
import org.apache.camel.ShutdownRunningTask;
+import org.apache.camel.impl.engine.CamelInternalProcessor;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.PropertyDefinition;
import org.apache.camel.model.RouteDefinition;
-import org.apache.camel.processor.CamelInternalProcessor;
import org.apache.camel.processor.ContractAdvice;
import org.apache.camel.processor.Pipeline;
import org.apache.camel.reifier.rest.RestBindingReifier;
@@ -236,6 +236,7 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> {
// handles preparing the response from the exchange in regard to IN vs OUT messages etc
Processor target = new Pipeline(camelContext, eventDrivenProcessors);
+ // TODO: Make this via SPI or some facade
// and wrap it in a unit of work so the UoW is on the top, so the entire route will be in the same UoW
CamelInternalProcessor internal = new CamelInternalProcessor(camelContext, target);
internal.addAdvice(new CamelInternalProcessor.UnitOfWorkProcessorAdvice(route, camelContext));
diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/WireTapReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/WireTapReifier.java
index 6cb3e7c..c14b092 100644
--- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/WireTapReifier.java
+++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/WireTapReifier.java
@@ -22,10 +22,10 @@ import org.apache.camel.ExchangePattern;
import org.apache.camel.Expression;
import org.apache.camel.Processor;
import org.apache.camel.Route;
+import org.apache.camel.impl.engine.CamelInternalProcessor;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.SetHeaderDefinition;
import org.apache.camel.model.WireTapDefinition;
-import org.apache.camel.processor.CamelInternalProcessor;
import org.apache.camel.processor.SendDynamicProcessor;
import org.apache.camel.processor.WireTapProcessor;
@@ -50,6 +50,7 @@ public class WireTapReifier extends ToDynamicReifier<WireTapDefinition<?>> {
// create error handler we need to use for processing the wire tapped
Processor target = wrapInErrorHandler(dynamicTo, true);
+ // TODO: Make this via SPI or some facade
// and wrap in unit of work
CamelInternalProcessor internal = new CamelInternalProcessor(camelContext, target);
internal.addAdvice(new CamelInternalProcessor.UnitOfWorkProcessorAdvice(route, camelContext));
diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerReifier.java
index 15dd813..fb0b83b 100644
--- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerReifier.java
+++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerReifier.java
@@ -37,7 +37,6 @@ import org.apache.camel.model.errorhandler.DeadLetterChannelConfiguration;
import org.apache.camel.model.errorhandler.DefaultErrorHandlerConfiguration;
import org.apache.camel.model.errorhandler.ErrorHandlerRefConfiguration;
import org.apache.camel.model.errorhandler.NoErrorHandlerConfiguraiton;
-import org.apache.camel.processor.ErrorHandler;
import org.apache.camel.processor.errorhandler.ErrorHandlerSupport;
import org.apache.camel.processor.errorhandler.ExceptionPolicy;
import org.apache.camel.processor.errorhandler.ExceptionPolicy.RedeliveryOption;
@@ -45,6 +44,7 @@ import org.apache.camel.processor.errorhandler.ExceptionPolicyKey;
import org.apache.camel.processor.errorhandler.RedeliveryErrorHandler;
import org.apache.camel.processor.errorhandler.RedeliveryPolicy;
import org.apache.camel.reifier.AbstractReifier;
+import org.apache.camel.spi.ErrorHandler;
import org.apache.camel.spi.Language;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.util.ObjectHelper;
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 70fb816..39a96ea 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
@@ -50,6 +50,7 @@ import org.apache.camel.component.properties.PropertiesLocation;
import org.apache.camel.component.properties.PropertiesParser;
import org.apache.camel.health.HealthCheckRegistry;
import org.apache.camel.health.HealthCheckRepository;
+import org.apache.camel.impl.debugger.BacklogTracer;
import org.apache.camel.impl.engine.DefaultManagementStrategy;
import org.apache.camel.impl.engine.TransformerKey;
import org.apache.camel.impl.engine.ValidatorKey;
@@ -87,7 +88,6 @@ import org.apache.camel.model.transformer.TransformerDefinition;
import org.apache.camel.model.transformer.TransformersDefinition;
import org.apache.camel.model.validator.ValidatorDefinition;
import org.apache.camel.model.validator.ValidatorsDefinition;
-import org.apache.camel.processor.interceptor.BacklogTracer;
import org.apache.camel.reifier.transformer.TransformerReifier;
import org.apache.camel.reifier.validator.ValidatorReifier;
import org.apache.camel.spi.AsyncProcessorAwaitManager;
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 2e5984d..b3abc05 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
@@ -16,8 +16,6 @@
*/
package org.apache.camel.processor;
-import java.util.Map;
-
import org.apache.camel.CamelContext;
import org.apache.camel.ContextTestSupport;
import org.apache.camel.ExtendedCamelContext;
@@ -80,12 +78,7 @@ public class CustomProcessorFactoryTest extends ContextTestSupport {
// END SNIPPET: e2
// START SNIPPET: e3
- public static class MyFactory implements ProcessorFactory {
-
- @Override
- public Processor createChildProcessor(Route route, NamedNode definition, boolean mandatory) throws Exception {
- return null;
- }
+ public static class MyFactory extends DefaultProcessorFactory implements ProcessorFactory {
@Override
public Processor createProcessor(Route route, NamedNode definition) throws Exception {
@@ -100,16 +93,10 @@ public class CustomProcessorFactoryTest extends ContextTestSupport {
set.setExpression(new ConstantExpression("body was altered"));
}
- // return null to let the default implementation create the
+ // let the default implementation create the
// processor, we just wanted to alter the definition
// before the processor was created
- return null;
- }
-
- @Override
- public Processor createProcessor(CamelContext camelContext, String definitionName, Map<String, Object> args)
- throws Exception {
- return null;
+ return super.createProcessor(route, definition);
}
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugExceptionBreakpointTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugExceptionBreakpointTest.java
index 3eb8687..5947a08 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugExceptionBreakpointTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugExceptionBreakpointTest.java
@@ -24,8 +24,10 @@ import org.apache.camel.Exchange;
import org.apache.camel.NamedNode;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.impl.debugger.DefaultDebugger;
import org.apache.camel.spi.Breakpoint;
import org.apache.camel.spi.Condition;
+import org.apache.camel.support.BreakpointSupport;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugExceptionEventBreakpointTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugExceptionEventBreakpointTest.java
index 85c661e..ac519c7 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugExceptionEventBreakpointTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugExceptionEventBreakpointTest.java
@@ -23,10 +23,12 @@ import org.apache.camel.ContextTestSupport;
import org.apache.camel.Exchange;
import org.apache.camel.NamedNode;
import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.impl.debugger.DefaultDebugger;
import org.apache.camel.spi.Breakpoint;
import org.apache.camel.spi.CamelEvent.ExchangeEvent;
import org.apache.camel.spi.CamelEvent.Type;
import org.apache.camel.spi.Condition;
+import org.apache.camel.support.BreakpointSupport;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugSingleStepConditionTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugSingleStepConditionTest.java
index 86dff36..986c9fe 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugSingleStepConditionTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugSingleStepConditionTest.java
@@ -24,8 +24,10 @@ import org.apache.camel.Exchange;
import org.apache.camel.NamedNode;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.impl.debugger.DefaultDebugger;
import org.apache.camel.spi.Breakpoint;
import org.apache.camel.spi.Condition;
+import org.apache.camel.support.BreakpointSupport;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugSingleStepTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugSingleStepTest.java
index 2de6271..26f0971 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugSingleStepTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugSingleStepTest.java
@@ -24,7 +24,9 @@ import org.apache.camel.Exchange;
import org.apache.camel.NamedNode;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.impl.debugger.DefaultDebugger;
import org.apache.camel.spi.Breakpoint;
+import org.apache.camel.support.BreakpointSupport;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugTest.java
index bb974e1..5b38485 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/interceptor/DebugTest.java
@@ -24,11 +24,13 @@ import org.apache.camel.Exchange;
import org.apache.camel.NamedNode;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.impl.debugger.DefaultDebugger;
import org.apache.camel.model.ToDefinition;
import org.apache.camel.spi.Breakpoint;
import org.apache.camel.spi.CamelEvent.ExchangeEvent;
import org.apache.camel.spi.CamelEvent.Type;
import org.apache.camel.spi.Condition;
+import org.apache.camel.support.BreakpointSupport;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
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 28e32ff..3a1af5e 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
@@ -30,10 +30,10 @@ import org.apache.camel.cloud.ServiceRegistry;
import org.apache.camel.cluster.CamelClusterService;
import org.apache.camel.health.HealthCheckRegistry;
import org.apache.camel.health.HealthCheckRepository;
+import org.apache.camel.impl.debugger.BacklogTracer;
import org.apache.camel.model.Model;
import org.apache.camel.model.ModelCamelContext;
import org.apache.camel.model.ModelLifecycleStrategy;
-import org.apache.camel.processor.interceptor.BacklogTracer;
import org.apache.camel.spi.AsyncProcessorAwaitManager;
import org.apache.camel.spi.ClassResolver;
import org.apache.camel.spi.Debugger;
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java b/core/camel-management/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java
index d9c0f42..5e943dd 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java
@@ -131,7 +131,6 @@ import org.apache.camel.processor.ConvertBodyProcessor;
import org.apache.camel.processor.Delayer;
import org.apache.camel.processor.DynamicRouter;
import org.apache.camel.processor.Enricher;
-import org.apache.camel.processor.ErrorHandler;
import org.apache.camel.processor.ExchangePatternProcessor;
import org.apache.camel.processor.FilterProcessor;
import org.apache.camel.processor.LogProcessor;
@@ -174,6 +173,7 @@ import org.apache.camel.processor.loadbalancer.TopicLoadBalancer;
import org.apache.camel.processor.loadbalancer.WeightedLoadBalancer;
import org.apache.camel.spi.BrowsableEndpoint;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.spi.ErrorHandler;
import org.apache.camel.spi.EventNotifier;
import org.apache.camel.spi.ManagementObjectStrategy;
import org.apache.camel.spi.RouteController;
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/JmxManagementLifecycleStrategy.java b/core/camel-management/src/main/java/org/apache/camel/management/JmxManagementLifecycleStrategy.java
index f446b48..91a488a 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/JmxManagementLifecycleStrategy.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/JmxManagementLifecycleStrategy.java
@@ -51,6 +51,9 @@ import org.apache.camel.TimerListener;
import org.apache.camel.VetoCamelContextStartException;
import org.apache.camel.cluster.CamelClusterService;
import org.apache.camel.health.HealthCheckRegistry;
+import org.apache.camel.impl.debugger.BacklogDebugger;
+import org.apache.camel.impl.debugger.BacklogTracer;
+import org.apache.camel.impl.engine.CamelInternalProcessor;
import org.apache.camel.management.mbean.ManagedAsyncProcessorAwaitManager;
import org.apache.camel.management.mbean.ManagedBacklogDebugger;
import org.apache.camel.management.mbean.ManagedBacklogTracer;
@@ -79,9 +82,6 @@ import org.apache.camel.model.PolicyDefinition;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.ProcessorDefinitionHelper;
import org.apache.camel.model.RouteDefinition;
-import org.apache.camel.processor.CamelInternalProcessor;
-import org.apache.camel.processor.interceptor.BacklogDebugger;
-import org.apache.camel.processor.interceptor.BacklogTracer;
import org.apache.camel.spi.AsyncProcessorAwaitManager;
import org.apache.camel.spi.BeanIntrospection;
import org.apache.camel.spi.ConsumerCache;
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedBacklogDebugger.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedBacklogDebugger.java
index 86f5a15..cb3ac35 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedBacklogDebugger.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedBacklogDebugger.java
@@ -23,7 +23,7 @@ import org.apache.camel.NoTypeConversionAvailableException;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.api.management.ManagedResource;
import org.apache.camel.api.management.mbean.ManagedBacklogDebuggerMBean;
-import org.apache.camel.processor.interceptor.BacklogDebugger;
+import org.apache.camel.impl.debugger.BacklogDebugger;
import org.apache.camel.spi.Language;
import org.apache.camel.spi.ManagementStrategy;
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedBacklogTracer.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedBacklogTracer.java
index 3dceacd..1eb09de 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedBacklogTracer.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedBacklogTracer.java
@@ -22,7 +22,7 @@ import org.apache.camel.CamelContext;
import org.apache.camel.api.management.ManagedResource;
import org.apache.camel.api.management.mbean.BacklogTracerEventMessage;
import org.apache.camel.api.management.mbean.ManagedBacklogTracerMBean;
-import org.apache.camel.processor.interceptor.BacklogTracer;
+import org.apache.camel.impl.debugger.BacklogTracer;
import org.apache.camel.spi.ManagementStrategy;
@ManagedResource(description = "Managed BacklogTracer")
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/interceptor/BreakpointSupport.java b/core/camel-support/src/main/java/org/apache/camel/support/BreakpointSupport.java
similarity index 97%
rename from core/camel-base/src/main/java/org/apache/camel/processor/interceptor/BreakpointSupport.java
rename to core/camel-support/src/main/java/org/apache/camel/support/BreakpointSupport.java
index d429853..35af480 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/interceptor/BreakpointSupport.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/BreakpointSupport.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.processor.interceptor;
+package org.apache.camel.support;
import org.apache.camel.Exchange;
import org.apache.camel.NamedNode;
diff --git a/core/pom.xml b/core/pom.xml
index ef70a56..0808439 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -47,6 +47,7 @@
<module>camel-core-engine</module>
<module>camel-core-languages</module>
<module>camel-core-model</module>
+ <module>camel-core-processor</module>
<module>camel-core-reifier</module>
<module>camel-xml-io</module>
<module>camel-xml-jaxb</module>
diff --git a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_7.adoc b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_7.adoc
index efc127a..bb3a924 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_7.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_7.adoc
@@ -6,14 +6,20 @@ from both 3.0 to 3.1 and 3.1 to 3.2.
== Upgrading Camel 3.6 to 3.7
-=== AdviceWith
+=== Modularized core
-Advice routes moved the `adviceWith` method from `org.apache.camel.reifier.RouteReifier` to `org.apache.camel.builder.AdviceWith`.
-Also `adviceWith` methods on `org.apache.camel.builder.AdviceWithRouteBuilder` is deprecated in favour
-of using methods on `org.apache.camel.builder.AdviceWith`.
+The core has been further modularized and is now split up into three new core modules
+
+- camel-core-model
+- camel-core-reifier
+- camel-core-processor
+
+This separates the route model from the runtime processors via the reifiers, by having the classes in their own modules.
=== API changes
+The class `BreakpointSupport` has moved from `org/apache/camel/processor/interceptor/BreakpointSupport` to `org.apache.camel.support.BreakpointSupport`.
+
These internal classes has been moved to locations that better suit where other similar processors are located.
The class `org.apache.camel.impl.validator.ProcessorValidator` moved to `org.apache.camel.processor.validator.ProcessorValidator`.
@@ -25,6 +31,18 @@ The class `org.apache.camel.impl.transformer.TransformerKey` moved to `org.apach
And the class `org.apache.camel.impl.DefaultExecutorServiceManager` is moved from `camel-core-engine` JAR to
`org.apache.camel.impl.engine.DefaultExecutorServiceManager` in the `camel-base` JAR.
+=== ProcessorFactory
+
+If a custom `org.apache.camel.spi.ProcessorFactory` is in use, then the factory should extend the default implementation
+`org.apache.camel.processor.DefaultProcessorFactory` and in the overridden methods, super should be called to let
+the default implementation create the processor when custom processors is not created.
+
+=== AdviceWith
+
+Advice routes moved the `adviceWith` method from `org.apache.camel.reifier.RouteReifier` to `org.apache.camel.builder.AdviceWith`.
+Also `adviceWith` methods on `org.apache.camel.builder.AdviceWithRouteBuilder` is deprecated in favour
+of using methods on `org.apache.camel.builder.AdviceWith`.
+
=== toD EIP
Support for using multiple languages in the toD EIP has been removed as it was a rare feature in use, and is causing some
diff --git a/parent/pom.xml b/parent/pom.xml
index 127cb32..1b4a32a 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -685,6 +685,11 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
+ <artifactId>camel-core-processor</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
<artifactId>camel-core-reifier</artifactId>
<version>${project.version}</version>
</dependency>