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/26 09:49:01 UTC

[camel] branch master updated: CAMEL-15753: camel-core - Modularize and move ConvertBodyProcessor to support as it has a supporting role

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 <cl...@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