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 2019/05/16 10:09:23 UTC

[camel] branch master updated: CAMEL-13156: camel-webhook - Consumer polish

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 38fc808  CAMEL-13156: camel-webhook - Consumer polish
38fc808 is described below

commit 38fc808ca48ad1eb13a90e9c23aa98ffb66c5d3a
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu May 16 12:08:40 2019 +0200

    CAMEL-13156: camel-webhook - Consumer polish
---
 .../camel/component/webhook/MultiRestConsumer.java | 34 ++++++++++++----------
 1 file changed, 19 insertions(+), 15 deletions(-)

diff --git a/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/MultiRestConsumer.java b/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/MultiRestConsumer.java
index 36443c2..42505c4 100644
--- a/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/MultiRestConsumer.java
+++ b/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/MultiRestConsumer.java
@@ -26,6 +26,8 @@ import org.apache.camel.Endpoint;
 import org.apache.camel.Processor;
 import org.apache.camel.spi.RestConfiguration;
 import org.apache.camel.spi.RestConsumerFactory;
+import org.apache.camel.support.DefaultConsumer;
+import org.apache.camel.support.service.ServiceHelper;
 
 /**
  * MultiRestConsumer allows to bind the webhook to multiple local rest endpoints.
@@ -34,18 +36,13 @@ import org.apache.camel.spi.RestConsumerFactory;
  * E.g. some webhook providers operate over POST but they do require that a specific endpoint replies also to
  * GET requests during handshake.
  */
-public class MultiRestConsumer implements Consumer {
-
-    private Endpoint endpoint;
-
-    private Processor processor;
+public class MultiRestConsumer extends DefaultConsumer {
 
     private List<Consumer> delegateConsumers;
 
     public MultiRestConsumer(CamelContext context, RestConsumerFactory factory, Endpoint endpoint, Processor processor,
                              List<String> methods, String url, String path, RestConfiguration config, ConsumerConfigurer configurer) throws Exception {
-        this.endpoint = endpoint;
-        this.processor = processor;
+        super(endpoint, processor);
         this.delegateConsumers = new ArrayList<>();
         for (String method : methods) {
             Consumer consumer = factory.createConsumer(context, processor, method, path,
@@ -61,26 +58,33 @@ public class MultiRestConsumer implements Consumer {
     }
 
     @Override
-    public Processor getProcessor() {
-        return processor;
+    protected void doInit() {
+        for (Consumer consumer : this.delegateConsumers) {
+            consumer.init();
+        }
     }
 
     @Override
-    public Endpoint getEndpoint() {
-        return endpoint;
+    public void doStart() throws Exception {
+        super.doStart();
+        for (Consumer consumer : this.delegateConsumers) {
+            ServiceHelper.startService(consumer);
+        }
     }
 
     @Override
-    public void start() {
+    public void doStop() throws Exception {
+        super.doStop();
         for (Consumer consumer : this.delegateConsumers) {
-            consumer.start();
+            ServiceHelper.stopService(consumer);
         }
     }
 
     @Override
-    public void stop() {
+    protected void doShutdown() throws Exception {
+        super.doShutdown();
         for (Consumer consumer : this.delegateConsumers) {
-            consumer.stop();
+            ServiceHelper.stopAndShutdownService(consumer);
         }
     }