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 35fa19f CAMEL-15753: camel-core - Modularize and move internal processors into their own factory 35fa19f is described below commit 35fa19f55a11477852a25151c5a094833585bdfe Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Mon Oct 26 09:55:14 2020 +0100 CAMEL-15753: camel-core - Modularize and move internal processors into their own factory --- .../org/apache/camel/component/seda/SedaEndpoint.java | 9 ++------- .../java/org/apache/camel/spi/ProcessorFactory.java | 6 ++---- .../impl/engine/DefaultFluentProducerTemplate.java | 4 +--- .../camel/impl/engine/DefaultProducerTemplate.java | 5 +---- .../camel/impl/cloud/DefaultServiceCallProcessor.java | 8 +------- .../camel/processor/DefaultProcessorFactory.java | 19 ++++++++----------- .../apache/camel/support/TypedProcessorFactory.java | 7 ++++--- 7 files changed, 19 insertions(+), 39 deletions(-) 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 225903f..dacffa4 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,10 +17,8 @@ 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; @@ -257,12 +255,9 @@ public class SedaEndpoint extends DefaultEndpoint implements AsyncEndpoint, Brow // create multicast processor multicastStarted = 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); + .getProcessorFactory().createProcessor(getCamelContext(), "MulticastProcessor", + new Object[] { processors, multicastExecutor, false }); } } 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 4830369..56355c9 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 @@ -16,8 +16,6 @@ */ package org.apache.camel.spi; -import java.util.Map; - import org.apache.camel.CamelContext; import org.apache.camel.NamedNode; import org.apache.camel.Processor; @@ -73,10 +71,10 @@ public interface ProcessorFactory { * * @param camelContext the camel context * @param definitionName the name of the definition that represents the processor - * @param args arguments for creating the processor (name=vale pairs) + * @param args arguments for creating the processor (optimized to use fixed order of parameters) * @return the created processor, or <tt>null</tt> if this situation is not yet implemented. * @throws Exception can be thrown if error creating the processor */ - Processor createProcessor(CamelContext camelContext, String definitionName, Map<String, Object> args) throws Exception; + Processor createProcessor(CamelContext camelContext, String definitionName, Object[] args) throws Exception; } 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 40d4bd1..501a69a 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 @@ -66,10 +66,8 @@ public class DefaultFluentProducerTemplate extends ServiceSupport implements Flu this.resultProcessors = new ClassValue<Processor>() { @Override protected Processor computeValue(Class<?> type) { - Map<String, Object> args = new HashMap<>(); - args.put("type", type); try { - return processorFactory.createProcessor(context, "ConvertBodyProcessor", args); + return processorFactory.createProcessor(context, "ConvertBodyProcessor", new Object[] { type }); } catch (Exception e) { throw RuntimeCamelException.wrapRuntimeException(e); } 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 0cf510d..fd015f9 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,7 +16,6 @@ */ package org.apache.camel.impl.engine; -import java.util.HashMap; import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutorService; @@ -560,10 +559,8 @@ public class DefaultProducerTemplate extends ServiceSupport implements ProducerT } protected Processor createConvertBodyProcessor(final Class<?> type) { - Map<String, Object> args = new HashMap<>(); - args.put("type", type); try { - return processorFactory.createProcessor(camelContext, "ConvertBodyProcessor", args); + return processorFactory.createProcessor(camelContext, "ConvertBodyProcessor", new Object[] { type }); } catch (Exception e) { throw RuntimeCamelException.wrapRuntimeException(e); } diff --git a/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/DefaultServiceCallProcessor.java b/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/DefaultServiceCallProcessor.java index 0e756db..88dae7a 100644 --- a/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/DefaultServiceCallProcessor.java +++ b/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/DefaultServiceCallProcessor.java @@ -16,7 +16,6 @@ */ package org.apache.camel.impl.cloud; -import java.util.HashMap; import java.util.Map; import org.apache.camel.AsyncCallback; @@ -134,13 +133,8 @@ public class DefaultServiceCallProcessor extends AsyncProcessorSupport { ObjectHelper.notNull(expression, "expression"); ObjectHelper.notNull(loadBalancer, "load balancer"); - Map<String, Object> args = new HashMap<>(); - args.put("uri", uri); - args.put("expression", expression); - args.put("exchangePattern", exchangePattern); - Processor send = camelContext.adapt(ExtendedCamelContext.class).getProcessorFactory().createProcessor(camelContext, - "SendDynamicProcessor", args); + "SendDynamicProcessor", new Object[] { uri, expression, exchangePattern }); processor = AsyncProcessorConverterHelper.convert(send); // optimize and build expressions that are static ahead of time 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 3657868..e4d7f31 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 @@ -17,7 +17,6 @@ package org.apache.camel.processor; import java.util.Collection; -import java.util.Map; import java.util.concurrent.ExecutorService; import org.apache.camel.CamelContext; @@ -82,16 +81,14 @@ public class DefaultProcessorFactory implements ProcessorFactory { return null; } - // TODO: For map args then use Object[] as its faster - @Override @SuppressWarnings("unchecked") - public Processor createProcessor(CamelContext camelContext, String definitionName, Map<String, Object> args) + public Processor createProcessor(CamelContext camelContext, String definitionName, Object[] args) throws Exception { if ("SendDynamicProcessor".equals(definitionName)) { - String uri = (String) args.get("uri"); - Expression expression = (Expression) args.get("expression"); - ExchangePattern exchangePattern = (ExchangePattern) args.get("exchangePattern"); + String uri = (String) args[0]; + Expression expression = (Expression) args[1]; + ExchangePattern exchangePattern = (ExchangePattern) args[2]; SendDynamicProcessor processor = new SendDynamicProcessor(uri, expression); processor.setCamelContext(camelContext); if (exchangePattern != null) { @@ -99,14 +96,14 @@ public class DefaultProcessorFactory implements ProcessorFactory { } 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"); + Collection<Processor> processors = (Collection<Processor>) args[0]; + ExecutorService executor = (ExecutorService) args[1]; + boolean shutdownExecutorService = (boolean) args[2]; 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"); + Class<?> type = (Class<?>) args[0]; return new ConvertBodyProcessor(type); } diff --git a/core/camel-support/src/main/java/org/apache/camel/support/TypedProcessorFactory.java b/core/camel-support/src/main/java/org/apache/camel/support/TypedProcessorFactory.java index 55b4b3b..8fe5bac 100644 --- a/core/camel-support/src/main/java/org/apache/camel/support/TypedProcessorFactory.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/TypedProcessorFactory.java @@ -16,8 +16,6 @@ */ package org.apache.camel.support; -import java.util.Map; - import org.apache.camel.CamelContext; import org.apache.camel.NamedNode; import org.apache.camel.Processor; @@ -50,16 +48,19 @@ public class TypedProcessorFactory<T extends NamedNode> implements ProcessorFact } @Override - public Processor createProcessor(CamelContext camelContext, String definitionName, Map<String, Object> args) + public Processor createProcessor(CamelContext camelContext, String definitionName, Object[] args) throws Exception { + // not in use return null; } protected Processor doCreateChildProcessor(Route route, T definition, boolean mandatory) throws Exception { + // not in use return null; } public Processor doCreateProcessor(Route route, T definition) throws Exception { + // not in use return null; } }