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 3cae97c  CAMEL-16286: camel-core - Calling doBuild on child services
3cae97c is described below

commit 3cae97c1ef2dc1ce2f18be3a85884736f1a2c1bc
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Tue Mar 2 13:53:59 2021 +0100

    CAMEL-16286: camel-core - Calling doBuild on child services
---
 .../camel/support/service/ServiceHelper.java       | 29 ++++++++++++++++++++++
 .../camel/impl/engine/DefaultConsumerTemplate.java |  7 +++++-
 .../camel/impl/engine/DefaultProducerTemplate.java |  9 +++++--
 .../component/properties/PropertiesComponent.java  |  5 ++++
 .../impl/cloud/DefaultServiceCallProcessor.java    | 17 ++++++++-----
 .../impl/cloud/DefaultServiceLoadBalancer.java     |  6 ++---
 .../camel/processor/EventNotifierProducer.java     | 10 ++++++++
 .../InterceptSendToEndpointProcessor.java          | 14 +++++++++--
 .../camel/processor/OnCompletionProcessor.java     | 10 ++++++++
 .../java/org/apache/camel/processor/Pipeline.java  | 10 ++++++++
 .../camel/processor/RecipientListProcessor.java    | 16 +++++++++---
 .../org/apache/camel/processor/Resequencer.java    | 10 ++++++++
 .../apache/camel/processor/StreamResequencer.java  | 10 ++++++++
 .../apache/camel/processor/UnitOfWorkProducer.java | 10 ++++++++
 .../apache/camel/processor/WireTapProcessor.java   | 10 ++++++++
 .../org/apache/camel/processor/WrapProcessor.java  | 14 ++++++++++-
 .../ShareUnitOfWorkAggregationStrategy.java        | 10 ++++++++
 .../processor/errorhandler/NoErrorHandler.java     |  5 ++++
 .../transformer/ProcessorTransformer.java          | 10 ++++++++
 .../processor/validator/ProcessorValidator.java    | 10 ++++++++
 .../org/apache/camel/converter/ConverterTest.java  | 16 ------------
 .../java/org/apache/camel/converter/JaxpTest.java  |  1 -
 .../apache/camel/converter/StringSourceTest.java   |  1 -
 .../support/AsyncProcessorConverterHelper.java     | 10 ++++++++
 .../support/DefaultScheduledPollConsumer.java      | 14 ++++++++++-
 .../camel/support/EventDrivenPollingConsumer.java  | 17 +++++++++++++
 .../apache/camel/support/LazyStartProducer.java    |  5 ++++
 .../camel/support/ProcessorPollingConsumer.java    | 10 ++++++++
 .../camel/support/cache/DefaultConsumerCache.java  |  5 ++++
 .../camel/support/cache/DefaultProducerCache.java  |  4 +++
 .../support/processor/DelegateAsyncProcessor.java  | 10 ++++++++
 .../camel/support/processor/DelegateProcessor.java | 10 ++++++++
 .../support/processor/DelegateSyncProcessor.java   | 10 ++++++++
 33 files changed, 297 insertions(+), 38 deletions(-)

diff --git 
a/core/camel-api/src/main/java/org/apache/camel/support/service/ServiceHelper.java
 
b/core/camel-api/src/main/java/org/apache/camel/support/service/ServiceHelper.java
index c8c09e7..04570c9 100644
--- 
a/core/camel-api/src/main/java/org/apache/camel/support/service/ServiceHelper.java
+++ 
b/core/camel-api/src/main/java/org/apache/camel/support/service/ServiceHelper.java
@@ -46,6 +46,35 @@ public final class ServiceHelper {
     }
 
     /**
+     * Builds the given {@code value} if it's a {@link Service} or a 
collection of it.
+     * <p/>
+     * Calling this method has no effect if {@code value} is {@code null}.
+     */
+    public static void buildService(Object value) {
+        if (value instanceof Service) {
+            ((Service) value).build();
+        } else if (value instanceof Iterable) {
+            for (Object o : (Iterable) value) {
+                buildService(o);
+            }
+        }
+    }
+
+    /**
+     * Builds each element of the given {@code services} if {@code services} 
itself is not {@code null}, otherwise this
+     * method would return immediately.
+     *
+     * @see #buildService(Object)
+     */
+    public static void buildService(Object... services) {
+        if (services != null) {
+            for (Object o : services) {
+                buildService(o);
+            }
+        }
+    }
+
+    /**
      * Initializes the given {@code value} if it's a {@link Service} or a 
collection of it.
      * <p/>
      * Calling this method has no effect if {@code value} is {@code null}.
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultConsumerTemplate.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultConsumerTemplate.java
index 289a69f..e0abf0e 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultConsumerTemplate.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultConsumerTemplate.java
@@ -272,10 +272,15 @@ public class DefaultConsumerTemplate extends 
ServiceSupport implements ConsumerT
     }
 
     @Override
-    protected void doInit() throws Exception {
+    protected void doBuild() throws Exception {
         if (consumerCache == null) {
             consumerCache = new DefaultConsumerCache(this, camelContext, 
maximumCacheSize);
         }
+        ServiceHelper.buildService(consumerCache);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
         ServiceHelper.initService(consumerCache);
     }
 
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultProducerTemplate.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultProducerTemplate.java
index 534ea0d..9fbf9d2 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultProducerTemplate.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultProducerTemplate.java
@@ -829,13 +829,18 @@ public class DefaultProducerTemplate extends 
ServiceSupport implements ProducerT
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        producerCache = new DefaultProducerCache(this, camelContext, 
maximumCacheSize);
+        producerCache.setEventNotifierEnabled(isEventNotifierEnabled());
+        ServiceHelper.buildService(producerCache);
+    }
+
+    @Override
     protected void doInit() throws Exception {
         // need to lookup default endpoint as it may have been intercepted
         if (defaultEndpoint != null) {
             defaultEndpoint = 
camelContext.getEndpoint(defaultEndpoint.getEndpointUri());
         }
-        producerCache = new DefaultProducerCache(this, camelContext, 
maximumCacheSize);
-        producerCache.setEventNotifierEnabled(isEventNotifierEnabled());
         ServiceHelper.initService(producerCache);
     }
 
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java
 
b/core/camel-base/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java
index 91d5d44..52c5e29 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java
@@ -607,6 +607,11 @@ public class PropertiesComponent extends ServiceSupport
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(sources);
+    }
+
+    @Override
     protected void doStart() throws Exception {
         ServiceHelper.startService(sources);
     }
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 88dae7a..637d5b3 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
@@ -31,6 +31,7 @@ import org.apache.camel.cloud.ServiceCallConstants;
 import org.apache.camel.cloud.ServiceDefinition;
 import org.apache.camel.cloud.ServiceLoadBalancer;
 import org.apache.camel.spi.Language;
+import org.apache.camel.spi.ProcessorFactory;
 import org.apache.camel.support.AsyncProcessorConverterHelper;
 import org.apache.camel.support.AsyncProcessorSupport;
 import org.apache.camel.support.service.ServiceHelper;
@@ -51,6 +52,7 @@ public class DefaultServiceCallProcessor extends 
AsyncProcessorSupport {
     private final CamelContext camelContext;
     private final ServiceLoadBalancer loadBalancer;
     private final Expression expression;
+    private ProcessorFactory processorFactory;
     private AsyncProcessor processor;
 
     private Expression serviceNameExp;
@@ -127,13 +129,18 @@ public class DefaultServiceCallProcessor extends 
AsyncProcessorSupport {
     // *************************************
 
     @Override
+    protected void doBuild() throws Exception {
+        ObjectHelper.notNull(camelContext, "camel context");
+        processorFactory = 
camelContext.adapt(ExtendedCamelContext.class).getProcessorFactory();
+    }
+
+    @Override
     protected void doInit() throws Exception {
         StringHelper.notEmpty(name, "name", "service name");
-        ObjectHelper.notNull(camelContext, "camel context");
         ObjectHelper.notNull(expression, "expression");
         ObjectHelper.notNull(loadBalancer, "load balancer");
 
-        Processor send = 
camelContext.adapt(ExtendedCamelContext.class).getProcessorFactory().createProcessor(camelContext,
+        Processor send = processorFactory.createProcessor(camelContext,
                 "SendDynamicProcessor", new Object[] { uri, expression, 
exchangePattern });
         processor = AsyncProcessorConverterHelper.convert(send);
 
@@ -148,15 +155,13 @@ public class DefaultServiceCallProcessor extends 
AsyncProcessorSupport {
     @Override
     protected void doStart() throws Exception {
         // Start services if needed
-        ServiceHelper.startService(processor);
-        ServiceHelper.startService(loadBalancer);
+        ServiceHelper.startService(processor, loadBalancer);
     }
 
     @Override
     protected void doStop() throws Exception {
         // Stop services if needed
-        ServiceHelper.stopService(loadBalancer);
-        ServiceHelper.stopService(processor);
+        ServiceHelper.stopService(loadBalancer, processor);
     }
 
     // *************************************
diff --git 
a/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/DefaultServiceLoadBalancer.java
 
b/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/DefaultServiceLoadBalancer.java
index 1a3739a..5af196d 100644
--- 
a/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/DefaultServiceLoadBalancer.java
+++ 
b/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/DefaultServiceLoadBalancer.java
@@ -111,15 +111,13 @@ public class DefaultServiceLoadBalancer
                 serviceFilter.getClass(),
                 serviceChooser.getClass());
 
-        ServiceHelper.startService(serviceChooser);
-        ServiceHelper.startService(serviceDiscovery);
+        ServiceHelper.startService(serviceChooser, serviceDiscovery);
     }
 
     @Override
     protected void doStop() throws Exception {
         // Stop services if needed
-        ServiceHelper.stopService(serviceDiscovery);
-        ServiceHelper.stopService(serviceChooser);
+        ServiceHelper.stopService(serviceDiscovery, serviceChooser);
     }
 
     // *************************************
diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/EventNotifierProducer.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/EventNotifierProducer.java
index 0bb3973..b82a40e 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/EventNotifierProducer.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/EventNotifierProducer.java
@@ -100,6 +100,16 @@ public final class EventNotifierProducer extends 
DefaultAsyncProducer {
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(producer);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        ServiceHelper.initService(producer);
+    }
+
+    @Override
     protected void doStart() throws Exception {
         ServiceHelper.startService(producer);
     }
diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/InterceptSendToEndpointProcessor.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/InterceptSendToEndpointProcessor.java
index 6a8187b..859a48d 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/InterceptSendToEndpointProcessor.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/InterceptSendToEndpointProcessor.java
@@ -139,14 +139,24 @@ public class InterceptSendToEndpointProcessor extends 
DefaultAsyncProducer {
     }
 
     @Override
-    public void start() {
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(producer);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        ServiceHelper.initService(producer);
+    }
+
+    @Override
+    protected void doStart() throws Exception {
         ServiceHelper.startService(endpoint.getBefore(), endpoint.getAfter());
         // here we also need to start the producer
         ServiceHelper.startService(producer);
     }
 
     @Override
-    public void stop() {
+    public void doStop() {
         // do not stop before/after as it should only be stopped when the 
interceptor stops
         // we should stop the producer here
         ServiceHelper.stopService(producer);
diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/OnCompletionProcessor.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/OnCompletionProcessor.java
index 6101e8c..9e9d6ef 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/OnCompletionProcessor.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/OnCompletionProcessor.java
@@ -82,6 +82,16 @@ public class OnCompletionProcessor extends 
AsyncProcessorSupport implements Trac
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(processor);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        ServiceHelper.initService(processor);
+    }
+
+    @Override
     protected void doStart() throws Exception {
         ServiceHelper.startService(processor);
     }
diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java
index 7901bea..3bbbf14 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java
@@ -153,6 +153,16 @@ public class Pipeline extends AsyncProcessorSupport 
implements Navigate<Processo
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(processors);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        ServiceHelper.initService(processors);
+    }
+
+    @Override
     protected void doStart() throws Exception {
         ServiceHelper.startService(processors);
     }
diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RecipientListProcessor.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RecipientListProcessor.java
index 2f457ca..deade49 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RecipientListProcessor.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RecipientListProcessor.java
@@ -39,7 +39,6 @@ import org.apache.camel.support.EndpointHelper;
 import org.apache.camel.support.ExchangeHelper;
 import org.apache.camel.support.MessageHelper;
 import org.apache.camel.support.service.ServiceHelper;
-import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -58,7 +57,7 @@ public class RecipientListProcessor extends 
MulticastProcessor {
     private static final Logger LOG = 
LoggerFactory.getLogger(RecipientListProcessor.class);
     private final Iterator<?> iter;
     private boolean ignoreInvalidEndpoints;
-    private ProducerCache producerCache;
+    private final ProducerCache producerCache;
     private int cacheSize;
 
     /**
@@ -331,9 +330,20 @@ public class RecipientListProcessor extends 
MulticastProcessor {
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        super.doBuild();
+        ServiceHelper.buildService(producerCache);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        super.doInit();
+        ServiceHelper.initService(producerCache);
+    }
+
+    @Override
     protected void doStart() throws Exception {
         super.doStart();
-        ObjectHelper.notNull(producerCache, "producerCache", this);
         ServiceHelper.startService(producerCache);
     }
 
diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Resequencer.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Resequencer.java
index 2dc1eb6..711fd8c 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Resequencer.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Resequencer.java
@@ -325,6 +325,16 @@ public class Resequencer extends AsyncProcessorSupport 
implements Navigate<Proce
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(processor);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        ServiceHelper.initService(processor);
+    }
+
+    @Override
     protected void doStart() throws Exception {
         ServiceHelper.startService(processor);
         sender.start();
diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamResequencer.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamResequencer.java
index a249ccc..2beada7 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamResequencer.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamResequencer.java
@@ -201,6 +201,16 @@ public class StreamResequencer extends 
AsyncProcessorSupport
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(processor);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        ServiceHelper.initService(processor);
+    }
+
+    @Override
     protected void doStart() throws Exception {
         ServiceHelper.startService(processor);
         delivery = new Delivery();
diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/UnitOfWorkProducer.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/UnitOfWorkProducer.java
index 46e01e3..1ed7c53 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/UnitOfWorkProducer.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/UnitOfWorkProducer.java
@@ -57,6 +57,16 @@ public final class UnitOfWorkProducer extends 
DefaultAsyncProducer {
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(processor);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        ServiceHelper.initService(processor);
+    }
+
+    @Override
     protected void doStart() throws Exception {
         super.doStart();
         ServiceHelper.startService(processor);
diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/WireTapProcessor.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/WireTapProcessor.java
index 9ca24e6..7c27bce 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/WireTapProcessor.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/WireTapProcessor.java
@@ -316,6 +316,16 @@ public class WireTapProcessor extends AsyncProcessorSupport
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(processor);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        ServiceHelper.initService(processor);
+    }
+
+    @Override
     protected void doStart() throws Exception {
         ServiceHelper.startService(processor);
     }
diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/WrapProcessor.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/WrapProcessor.java
index 2658162..b823277 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/WrapProcessor.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/WrapProcessor.java
@@ -53,9 +53,21 @@ public class WrapProcessor extends DelegateAsyncProcessor 
implements WrapAwarePr
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        super.doBuild();
+        ServiceHelper.buildService(wrapped);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        super.doInit();
+        ServiceHelper.initService(wrapped);
+    }
+
+    @Override
     protected void doStart() throws Exception {
-        ServiceHelper.startService(wrapped);
         super.doStart();
+        ServiceHelper.startService(wrapped);
     }
 
     @Override
diff --git 
a/core/camel-core-processor/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
index 0c6dffb..1115ab7 100644
--- 
a/core/camel-core-processor/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
@@ -136,6 +136,16 @@ public final class ShareUnitOfWorkAggregationStrategy 
extends ServiceSupport imp
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(strategy);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        ServiceHelper.initService(strategy);
+    }
+
+    @Override
     protected void doStart() throws Exception {
         ServiceHelper.startService(strategy);
     }
diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/NoErrorHandler.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/NoErrorHandler.java
index 57c85ed..3a74e89 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/NoErrorHandler.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/NoErrorHandler.java
@@ -85,6 +85,11 @@ public class NoErrorHandler extends ErrorHandlerSupport 
implements AsyncProcesso
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(output);
+    }
+
+    @Override
     protected void doInit() throws Exception {
         ServiceHelper.initService(output);
     }
diff --git 
a/core/camel-core-processor/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
index 1301ece..3396ec6 100644
--- 
a/core/camel-core-processor/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
@@ -108,6 +108,16 @@ public class ProcessorTransformer extends Transformer {
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(processor);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        ServiceHelper.initService(processor);
+    }
+
+    @Override
     protected void doStart() throws Exception {
         ObjectHelper.notNull(processor, "processor", this);
         ServiceHelper.startService(this.processor);
diff --git 
a/core/camel-core-processor/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
index 3ef00bf..88f52e3 100644
--- 
a/core/camel-core-processor/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
@@ -102,6 +102,16 @@ public class ProcessorValidator extends Validator {
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(processor);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        ServiceHelper.initService(processor);
+    }
+
+    @Override
     protected void doStart() throws Exception {
         ObjectHelper.notNull(processor, "processor", this);
         ServiceHelper.startService(this.processor);
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java 
b/core/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java
index 2ba1c17..cbee540 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.camel.converter;
 
-import java.beans.PropertyEditorManager;
-import java.beans.PropertyEditorSupport;
 import java.io.File;
 import java.io.InputStream;
 import java.net.URL;
@@ -54,22 +52,8 @@ public class ConverterTest extends TestSupport {
     protected TypeConverter converter = new DefaultTypeConverter(
             new DefaultPackageScanClassResolver(), new ReflectionInjector(), 
true);
 
-    public static class IntegerPropertyEditor extends PropertyEditorSupport {
-        @Override
-        public void setAsText(String text) throws IllegalArgumentException {
-            setValue(Integer.valueOf(text));
-        }
-
-        @Override
-        public String getAsText() {
-            Integer value = (Integer) getValue();
-            return value != null ? value.toString() : "";
-        }
-    }
-
     @BeforeEach
     public void setUp() throws Exception {
-        PropertyEditorManager.registerEditor(Integer.class, 
IntegerPropertyEditor.class);
         ServiceHelper.startService(converter);
     }
 
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/converter/JaxpTest.java 
b/core/camel-core/src/test/java/org/apache/camel/converter/JaxpTest.java
index 70cd282..83b85a3 100644
--- a/core/camel-core/src/test/java/org/apache/camel/converter/JaxpTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/converter/JaxpTest.java
@@ -45,7 +45,6 @@ public class JaxpTest {
 
     @BeforeEach
     public void setUp() throws Exception {
-
         ServiceHelper.startService(converter);
     }
 
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/converter/StringSourceTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/converter/StringSourceTest.java
index 37a1d61..bf26186 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/converter/StringSourceTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/converter/StringSourceTest.java
@@ -40,7 +40,6 @@ public class StringSourceTest {
 
     @BeforeEach
     public void setUp() throws Exception {
-
         ServiceHelper.startService(converter);
     }
 
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/AsyncProcessorConverterHelper.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/AsyncProcessorConverterHelper.java
index 03b90fa..299c618 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/AsyncProcessorConverterHelper.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/AsyncProcessorConverterHelper.java
@@ -103,6 +103,16 @@ public final class AsyncProcessorConverterHelper {
         }
 
         @Override
+        public void build() {
+            ServiceHelper.buildService(processor);
+        }
+
+        @Override
+        public void init() {
+            ServiceHelper.initService(processor);
+        }
+
+        @Override
         public void start() {
             ServiceHelper.startService(processor);
         }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/DefaultScheduledPollConsumer.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/DefaultScheduledPollConsumer.java
index 2551bcd..87a9ed1 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/DefaultScheduledPollConsumer.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/DefaultScheduledPollConsumer.java
@@ -92,8 +92,20 @@ public class DefaultScheduledPollConsumer extends 
ScheduledPollConsumer {
     }
 
     @Override
-    protected void doStart() throws Exception {
+    protected void doBuild() throws Exception {
+        super.doBuild();
         pollingConsumer = getEndpoint().createPollingConsumer();
+        ServiceHelper.buildService(pollingConsumer);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        super.doInit();
+        ServiceHelper.initService(pollingConsumer);
+    }
+
+    @Override
+    protected void doStart() throws Exception {
         ServiceHelper.startService(pollingConsumer);
         super.doStart();
     }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/EventDrivenPollingConsumer.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/EventDrivenPollingConsumer.java
index 4e2e845..67dc256 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/EventDrivenPollingConsumer.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/EventDrivenPollingConsumer.java
@@ -229,6 +229,23 @@ public class EventDrivenPollingConsumer extends 
PollingConsumerSupport implement
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        super.doBuild();
+        // lets add ourselves as a consumer
+        consumer = createConsumer();
+        // do not call build if its our-self
+        if (consumer != this) {
+            ServiceHelper.buildService(consumer);
+        }
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        super.doInit();
+        ServiceHelper.initService(consumer);
+    }
+
+    @Override
     protected void doStart() throws Exception {
         // lets add ourselves as a consumer
         consumer = createConsumer();
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/LazyStartProducer.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/LazyStartProducer.java
index bc3af67..0a94030 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/LazyStartProducer.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/LazyStartProducer.java
@@ -67,6 +67,11 @@ public final class LazyStartProducer extends 
DefaultAsyncProducer implements Del
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        // noop as we dont want to start the delegate but its started on the 
first message processed
+    }
+
+    @Override
     protected void doInit() throws Exception {
         // noop as we dont want to start the delegate but its started on the 
first message processed
     }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/ProcessorPollingConsumer.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/ProcessorPollingConsumer.java
index 2b40158..5909d87 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/ProcessorPollingConsumer.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/ProcessorPollingConsumer.java
@@ -43,6 +43,16 @@ public class ProcessorPollingConsumer extends 
PollingConsumerSupport implements
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(processor);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        ServiceHelper.initService(processor);
+    }
+
+    @Override
     protected void doStart() throws Exception {
         ServiceHelper.startService(processor);
     }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/cache/DefaultConsumerCache.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/cache/DefaultConsumerCache.java
index bf427a7..0326c71 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/cache/DefaultConsumerCache.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/cache/DefaultConsumerCache.java
@@ -230,6 +230,11 @@ public class DefaultConsumerCache extends ServiceSupport 
implements ConsumerCach
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(consumers);
+    }
+
+    @Override
     protected void doInit() throws Exception {
         if (extendedStatistics) {
             int max = maxCacheSize == 0 ? 
CamelContextHelper.getMaximumCachePoolSize(camelContext) : maxCacheSize;
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/cache/DefaultProducerCache.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/cache/DefaultProducerCache.java
index cf8a58f..7d6c40c 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/cache/DefaultProducerCache.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/cache/DefaultProducerCache.java
@@ -360,7 +360,11 @@ public class DefaultProducerCache extends ServiceSupport 
implements ProducerCach
             callback.done(true);
             return true;
         }
+    }
 
+    @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(producers);
     }
 
     @Override
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/processor/DelegateAsyncProcessor.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/processor/DelegateAsyncProcessor.java
index 434bae6..bfe494a 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/processor/DelegateAsyncProcessor.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/processor/DelegateAsyncProcessor.java
@@ -75,6 +75,16 @@ public class DelegateAsyncProcessor extends 
AsyncProcessorSupport implements Del
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(processor);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        ServiceHelper.initService(processor);
+    }
+
+    @Override
     protected void doStart() throws Exception {
         ServiceHelper.startService(processor);
     }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/processor/DelegateProcessor.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/processor/DelegateProcessor.java
index c719f87..75afe56 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/processor/DelegateProcessor.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/processor/DelegateProcessor.java
@@ -74,6 +74,16 @@ public class DelegateProcessor extends ServiceSupport
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(processor);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        ServiceHelper.initService(processor);
+    }
+
+    @Override
     protected void doStart() throws Exception {
         ServiceHelper.startService(processor);
     }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/processor/DelegateSyncProcessor.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/processor/DelegateSyncProcessor.java
index 87f3a27..ee64ef1 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/processor/DelegateSyncProcessor.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/processor/DelegateSyncProcessor.java
@@ -102,6 +102,16 @@ public class DelegateSyncProcessor extends ServiceSupport
     }
 
     @Override
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(processor);
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        ServiceHelper.initService(processor);
+    }
+
+    @Override
     protected void doStart() throws Exception {
         ServiceHelper.startService(processor);
     }

Reply via email to