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 68161be CAMEL-15753: camel-core - Modularize and move ConvertBodyProcessor to support as it has a supporting role 68161be is described below commit 68161be9829f3eb277e5b6fcf51af298d678b045 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Mon Oct 26 10:28:42 2020 +0100 CAMEL-15753: camel-core - Modularize and move ConvertBodyProcessor to support as it has a supporting role --- .../impl/engine/DefaultFluentProducerTemplate.java | 8 ++---- .../camel/impl/engine/DefaultProducerTemplate.java | 29 ++++++---------------- .../camel/processor/DefaultProcessorFactory.java | 3 --- .../apache/camel/reifier/ConvertBodyReifier.java | 2 +- .../apache/camel/processor/NavigateRouteTest.java | 1 + .../DefaultManagementObjectStrategy.java | 2 +- .../camel/management/mbean/ManagedConvertBody.java | 2 +- .../support}/processor/ConvertBodyProcessor.java | 2 +- .../ROOT/pages/camel-3x-upgrade-guide-3_7.adoc | 3 +++ 9 files changed, 18 insertions(+), 34 deletions(-) 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 501a69a..4fb43f7 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 @@ -33,9 +33,9 @@ import org.apache.camel.FluentProducerTemplate; import org.apache.camel.Message; import org.apache.camel.Processor; import org.apache.camel.ProducerTemplate; -import org.apache.camel.RuntimeCamelException; import org.apache.camel.spi.ProcessorFactory; import org.apache.camel.support.ExchangeHelper; +import org.apache.camel.support.processor.ConvertBodyProcessor; import org.apache.camel.support.service.ServiceHelper; import org.apache.camel.support.service.ServiceSupport; import org.apache.camel.util.ObjectHelper; @@ -66,11 +66,7 @@ public class DefaultFluentProducerTemplate extends ServiceSupport implements Flu this.resultProcessors = new ClassValue<Processor>() { @Override protected Processor computeValue(Class<?> type) { - try { - return processorFactory.createProcessor(context, "ConvertBodyProcessor", new Object[] { type }); - } catch (Exception e) { - throw RuntimeCamelException.wrapRuntimeException(e); - } + return new ConvertBodyProcessor(type); } }; } 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 fd015f9..bc07e00 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 @@ -29,17 +29,15 @@ 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.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; import org.apache.camel.support.ExchangeHelper; +import org.apache.camel.support.processor.ConvertBodyProcessor; import org.apache.camel.support.service.ServiceHelper; import org.apache.camel.support.service.ServiceSupport; import org.apache.camel.util.ObjectHelper; @@ -51,7 +49,6 @@ 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; @@ -61,12 +58,10 @@ 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; } @@ -405,7 +400,7 @@ public class DefaultProducerTemplate extends ServiceSupport implements ProducerT @Override public <T> T requestBody(Endpoint endpoint, Object body, Class<T> type) { Exchange exchange - = send(endpoint, ExchangePattern.InOut, createSetBodyProcessor(body), createConvertBodyProcessor(type)); + = send(endpoint, ExchangePattern.InOut, createSetBodyProcessor(body), new ConvertBodyProcessor(type)); Object answer = extractResultBody(exchange); return camelContext.getTypeConverter().convertTo(type, answer); } @@ -414,7 +409,7 @@ public class DefaultProducerTemplate extends ServiceSupport implements ProducerT public <T> T requestBody(String endpointUri, Object body, Class<T> type) { Endpoint endpoint = resolveMandatoryEndpoint(endpointUri); Exchange exchange - = send(endpoint, ExchangePattern.InOut, createSetBodyProcessor(body), createConvertBodyProcessor(type)); + = send(endpoint, ExchangePattern.InOut, createSetBodyProcessor(body), new ConvertBodyProcessor(type)); Object answer = extractResultBody(exchange); return camelContext.getTypeConverter().convertTo(type, answer); } @@ -422,7 +417,7 @@ public class DefaultProducerTemplate extends ServiceSupport implements ProducerT @Override public <T> T requestBodyAndHeader(Endpoint endpoint, Object body, String header, Object headerValue, Class<T> type) { Exchange exchange = send(endpoint, ExchangePattern.InOut, createBodyAndHeaderProcessor(body, header, headerValue), - createConvertBodyProcessor(type)); + new ConvertBodyProcessor(type)); Object answer = extractResultBody(exchange); return camelContext.getTypeConverter().convertTo(type, answer); } @@ -431,7 +426,7 @@ public class DefaultProducerTemplate extends ServiceSupport implements ProducerT public <T> T requestBodyAndHeader(String endpointUri, Object body, String header, Object headerValue, Class<T> type) { Endpoint endpoint = resolveMandatoryEndpoint(endpointUri); Exchange exchange = send(endpoint, ExchangePattern.InOut, createBodyAndHeaderProcessor(body, header, headerValue), - createConvertBodyProcessor(type)); + new ConvertBodyProcessor(type)); Object answer = extractResultBody(exchange); return camelContext.getTypeConverter().convertTo(type, answer); } @@ -440,7 +435,7 @@ public class DefaultProducerTemplate extends ServiceSupport implements ProducerT public <T> T requestBodyAndHeaders(String endpointUri, Object body, Map<String, Object> headers, Class<T> type) { Endpoint endpoint = resolveMandatoryEndpoint(endpointUri); Exchange exchange - = send(endpoint, ExchangePattern.InOut, createBodyAndHeaders(body, headers), createConvertBodyProcessor(type)); + = send(endpoint, ExchangePattern.InOut, createBodyAndHeaders(body, headers), new ConvertBodyProcessor(type)); Object answer = extractResultBody(exchange); return camelContext.getTypeConverter().convertTo(type, answer); } @@ -448,7 +443,7 @@ public class DefaultProducerTemplate extends ServiceSupport implements ProducerT @Override public <T> T requestBodyAndHeaders(Endpoint endpoint, Object body, Map<String, Object> headers, Class<T> type) { Exchange exchange - = send(endpoint, ExchangePattern.InOut, createBodyAndHeaders(body, headers), createConvertBodyProcessor(type)); + = send(endpoint, ExchangePattern.InOut, createBodyAndHeaders(body, headers), new ConvertBodyProcessor(type)); Object answer = extractResultBody(exchange); return camelContext.getTypeConverter().convertTo(type, answer); } @@ -558,14 +553,6 @@ public class DefaultProducerTemplate extends ServiceSupport implements ProducerT }; } - protected Processor createConvertBodyProcessor(final Class<?> type) { - try { - return processorFactory.createProcessor(camelContext, "ConvertBodyProcessor", new Object[] { type }); - } catch (Exception e) { - throw RuntimeCamelException.wrapRuntimeException(e); - } - } - protected Function<Exchange, Exchange> createCompletionFunction(Synchronization onCompletion) { return answer -> { // invoke callback before returning answer @@ -715,7 +702,7 @@ public class DefaultProducerTemplate extends ServiceSupport implements ProducerT } protected <T> CompletableFuture<T> asyncRequestBody(final Endpoint endpoint, Processor processor, final Class<T> type) { - return asyncRequestBody(endpoint, processor, createConvertBodyProcessor(type)) + return asyncRequestBody(endpoint, processor, new ConvertBodyProcessor(type)) .thenApply(answer -> camelContext.getTypeConverter().convertTo(type, answer)); } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/DefaultProcessorFactory.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/DefaultProcessorFactory.java index e4d7f31..f333d1a 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/DefaultProcessorFactory.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/DefaultProcessorFactory.java @@ -102,9 +102,6 @@ public class DefaultProcessorFactory implements ProcessorFactory { 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[0]; - return new ConvertBodyProcessor(type); } return null; diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ConvertBodyReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ConvertBodyReifier.java index 0c109eb..78fa218 100644 --- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ConvertBodyReifier.java +++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ConvertBodyReifier.java @@ -23,7 +23,7 @@ import org.apache.camel.Processor; import org.apache.camel.Route; import org.apache.camel.model.ConvertBodyDefinition; import org.apache.camel.model.ProcessorDefinition; -import org.apache.camel.processor.ConvertBodyProcessor; +import org.apache.camel.support.processor.ConvertBodyProcessor; public class ConvertBodyReifier extends ProcessorReifier<ConvertBodyDefinition> { diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/NavigateRouteTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/NavigateRouteTest.java index 6a41a74..9adc263 100644 --- a/core/camel-core/src/test/java/org/apache/camel/processor/NavigateRouteTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/processor/NavigateRouteTest.java @@ -24,6 +24,7 @@ import org.apache.camel.Navigate; import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; +import org.apache.camel.support.processor.ConvertBodyProcessor; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; 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 5e943dd..8565de8 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 @@ -127,7 +127,6 @@ import org.apache.camel.model.ValidateDefinition; import org.apache.camel.model.loadbalancer.CustomLoadBalancerDefinition; import org.apache.camel.processor.ChoiceProcessor; import org.apache.camel.processor.ClaimCheckProcessor; -import org.apache.camel.processor.ConvertBodyProcessor; import org.apache.camel.processor.Delayer; import org.apache.camel.processor.DynamicRouter; import org.apache.camel.processor.Enricher; @@ -179,6 +178,7 @@ import org.apache.camel.spi.ManagementObjectStrategy; import org.apache.camel.spi.RouteController; import org.apache.camel.spi.SupervisingRouteController; import org.apache.camel.support.ScheduledPollConsumer; +import org.apache.camel.support.processor.ConvertBodyProcessor; import org.apache.camel.support.processor.MarshalProcessor; import org.apache.camel.support.processor.PredicateValidatingProcessor; import org.apache.camel.support.processor.ThroughputLogger; diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedConvertBody.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedConvertBody.java index d7703ad..00a5488 100644 --- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedConvertBody.java +++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedConvertBody.java @@ -20,7 +20,7 @@ import org.apache.camel.CamelContext; import org.apache.camel.api.management.ManagedResource; import org.apache.camel.api.management.mbean.ManagedConvertBodyMBean; import org.apache.camel.model.ProcessorDefinition; -import org.apache.camel.processor.ConvertBodyProcessor; +import org.apache.camel.support.processor.ConvertBodyProcessor; @ManagedResource(description = "Managed ConvertBody") public class ManagedConvertBody extends ManagedProcessor implements ManagedConvertBodyMBean { diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ConvertBodyProcessor.java b/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertBodyProcessor.java similarity index 99% rename from core/camel-core-processor/src/main/java/org/apache/camel/processor/ConvertBodyProcessor.java rename to core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertBodyProcessor.java index d1b0e7b..e856723 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ConvertBodyProcessor.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertBodyProcessor.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.support.processor; import java.util.concurrent.CompletableFuture; 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 9e071d5..36810ed 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 @@ -31,6 +31,9 @@ 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. +The class `org.apache.camel.processor.ConvertBodyProcessor` is moved +to `org.apache.camel.support.ConvertBodyProcessor` in the `camel-support` JAR. + === ProcessorFactory If a custom `org.apache.camel.spi.ProcessorFactory` is in use, then the factory should extend the default implementation