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

commit bf658773944fb3402320b7355eb189b274e8a0ec
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Mar 3 08:37:21 2021 +0100

    CAMEL-16286: camel-core - Calling doBuild on child services
---
 .../camel/impl/engine/AbstractCamelContext.java    |  4 +--
 .../ManagedNamePatternIncludeHostNameTest.java     |  3 ++-
 .../org/apache/camel/support/DefaultConsumer.java  |  4 +--
 .../camel/support/SynchronousDelegateProducer.java | 31 ++++++++++++++++++----
 4 files changed, 32 insertions(+), 10 deletions(-)

diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
index e8cf42c..eab4f12 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
@@ -668,7 +668,7 @@ public abstract class AbstractCamelContext extends 
BaseService
 
                 if (component != null) {
                     component.setCamelContext(getCamelContextReference());
-                    component.build();
+                    ServiceHelper.buildService(component);
                     postInitComponent(name, component);
                 }
             } catch (Exception e) {
@@ -1737,7 +1737,7 @@ public abstract class AbstractCamelContext extends 
BaseService
                             Service service = (Service) language;
                             // init service first
                             CamelContextAware.trySetCamelContext(service, 
camelContext);
-                            service.init();
+                            ServiceHelper.initService(service);
                             startService(service);
                         } catch (Exception e) {
                             throw 
RuntimeCamelException.wrapRuntimeCamelException(e);
diff --git 
a/core/camel-management/src/test/java/org/apache/camel/management/ManagedNamePatternIncludeHostNameTest.java
 
b/core/camel-management/src/test/java/org/apache/camel/management/ManagedNamePatternIncludeHostNameTest.java
index f9135eb..4236487 100644
--- 
a/core/camel-management/src/test/java/org/apache/camel/management/ManagedNamePatternIncludeHostNameTest.java
+++ 
b/core/camel-management/src/test/java/org/apache/camel/management/ManagedNamePatternIncludeHostNameTest.java
@@ -21,6 +21,7 @@ import javax.management.ObjectName;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.support.service.ServiceHelper;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -30,7 +31,7 @@ public class ManagedNamePatternIncludeHostNameTest extends 
ManagementTestSupport
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
-        context.getManagementStrategy().init();
+        ServiceHelper.initService(context.getManagementStrategy());
         DefaultManagementObjectNameStrategy naming
                 = (DefaultManagementObjectNameStrategy) 
context.getManagementStrategy().getManagementObjectNameStrategy();
         naming.setHostName("localhost");
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/DefaultConsumer.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/DefaultConsumer.java
index 0d89803..67f838d 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/DefaultConsumer.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/DefaultConsumer.java
@@ -172,8 +172,8 @@ public class DefaultConsumer extends ServiceSupport 
implements Consumer, RouteAw
 
     @Override
     protected void doBuild() throws Exception {
-        super.doBuild();
-        exchangeFactory.build();
+        LOG.debug("Build consumer: {}", this);
+        ServiceHelper.buildService(exchangeFactory, processor);
     }
 
     @Override
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/SynchronousDelegateProducer.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/SynchronousDelegateProducer.java
index 73aa082..bcd52d4 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/SynchronousDelegateProducer.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/SynchronousDelegateProducer.java
@@ -20,6 +20,7 @@ import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
 import org.apache.camel.Producer;
 import org.apache.camel.support.service.ServiceHelper;
+import org.apache.camel.support.service.ServiceSupport;
 
 /**
  * To process the delegated producer in synchronous mode.
@@ -29,7 +30,7 @@ import org.apache.camel.support.service.ServiceHelper;
  * This delegate allows the component developers easily to support their 
existing asynchronous producer to behave
  * synchronously by wrapping their producer in this synchronous delegate.
  */
-public class SynchronousDelegateProducer implements Producer {
+public class SynchronousDelegateProducer extends ServiceSupport implements 
Producer {
 
     private final Producer producer;
 
@@ -48,21 +49,41 @@ public class SynchronousDelegateProducer implements 
Producer {
     }
 
     @Override
-    public void init() {
-        producer.init();
+    protected void doBuild() throws Exception {
+        ServiceHelper.buildService(producer);
     }
 
     @Override
-    public void start() {
+    protected void doInit() throws Exception {
+        ServiceHelper.initService(producer);
+    }
+
+    @Override
+    protected void doStart() throws Exception {
         ServiceHelper.startService(producer);
     }
 
     @Override
-    public void stop() {
+    protected void doStop() throws Exception {
         ServiceHelper.stopService(producer);
     }
 
     @Override
+    protected void doSuspend() throws Exception {
+        ServiceHelper.suspendService(producer);
+    }
+
+    @Override
+    protected void doResume() throws Exception {
+        ServiceHelper.resumeService(producer);
+    }
+
+    @Override
+    protected void doShutdown() throws Exception {
+        ServiceHelper.stopAndShutdownService(producer);
+    }
+
+    @Override
     public boolean isSingleton() {
         return producer.isSingleton();
     }

Reply via email to