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 2016/02/08 17:45:29 UTC

[1/5] camel git commit: CAMEL-9577: Only support suspension if a component has custom logic

Repository: camel
Updated Branches:
  refs/heads/master 8e479dfa7 -> c4f97a1cc


CAMEL-9577: Only support suspension if a component has custom logic


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/25350175
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/25350175
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/25350175

Branch: refs/heads/master
Commit: 25350175b61d49ebaf05e6d139a72d213d284bfd
Parents: bfcbb3f
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Feb 8 16:44:54 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Feb 8 17:45:20 2016 +0100

----------------------------------------------------------------------
 .../component/disruptor/DisruptorConsumer.java  |  4 +--
 .../apache/camel/http/common/HttpConsumer.java  | 12 ++++++---
 .../apache/camel/component/jcr/JcrConsumer.java | 16 +-----------
 .../apache/camel/component/jms/JmsConsumer.java |  4 +--
 .../component/mllp/MllpTcpServerConsumer.java   | 21 ---------------
 ...lientModeTCPNettyServerBootstrapFactory.java |  3 ++-
 .../camel/component/netty/NettyConsumer.java    |  3 ++-
 .../SingleTCPNettyServerBootstrapFactory.java   |  3 ++-
 .../SingleUDPNettyServerBootstrapFactory.java   | 11 +-------
 .../camel/component/netty4/NettyConsumer.java   |  3 ++-
 .../camel/component/quartz/QuartzConsumer.java  | 11 --------
 .../camel/component/quartz2/QuartzConsumer.java | 11 --------
 .../component/rabbitmq/RabbitMQConsumer.java    | 27 ++++++++++----------
 .../routebox/direct/RouteboxDirectConsumer.java |  4 +--
 14 files changed, 38 insertions(+), 95 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/25350175/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorConsumer.java b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorConsumer.java
index 3806d50..d4f0415 100644
--- a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorConsumer.java
+++ b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorConsumer.java
@@ -25,7 +25,7 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.ShutdownRunningTask;
-import org.apache.camel.SuspendableService;
+import org.apache.camel.Suspendable;
 import org.apache.camel.spi.ExceptionHandler;
 import org.apache.camel.spi.ShutdownAware;
 import org.apache.camel.spi.Synchronization;
@@ -39,7 +39,7 @@ import org.slf4j.LoggerFactory;
 /**
  * A Consumer for the Disruptor component.
  */
-public class DisruptorConsumer extends ServiceSupport implements Consumer, SuspendableService, ShutdownAware {
+public class DisruptorConsumer extends ServiceSupport implements Consumer, Suspendable, ShutdownAware {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(DisruptorConsumer.class);
 

http://git-wip-us.apache.org/repos/asf/camel/blob/25350175/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpConsumer.java b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpConsumer.java
index 3a2da8e..87dfd7c 100644
--- a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpConsumer.java
+++ b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpConsumer.java
@@ -17,10 +17,10 @@
 package org.apache.camel.http.common;
 
 import org.apache.camel.Processor;
-import org.apache.camel.SuspendableService;
+import org.apache.camel.Suspendable;
 import org.apache.camel.impl.DefaultConsumer;
 
-public class HttpConsumer extends DefaultConsumer implements SuspendableService {
+public class HttpConsumer extends DefaultConsumer implements Suspendable {
     private volatile boolean suspended;
     private boolean traceEnabled;
 
@@ -58,12 +58,16 @@ public class HttpConsumer extends DefaultConsumer implements SuspendableService
         super.doStop();
     }
 
-    public void suspend() {
+    @Override
+    protected void doSuspend() throws Exception {
         suspended = true;
+        super.doSuspend();
     }
 
-    public void resume() {
+    @Override
+    protected void doResume() throws Exception {
         suspended = false;
+        super.doResume();
     }
 
     public boolean isSuspended() {

http://git-wip-us.apache.org/repos/asf/camel/blob/25350175/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrConsumer.java b/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrConsumer.java
index fe53fff..1cf51e9 100644
--- a/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrConsumer.java
+++ b/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrConsumer.java
@@ -26,7 +26,6 @@ import javax.jcr.Session;
 import javax.jcr.observation.EventListener;
 
 import org.apache.camel.Processor;
-import org.apache.camel.SuspendableService;
 import org.apache.camel.impl.DefaultConsumer;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
@@ -37,7 +36,7 @@ import org.slf4j.LoggerFactory;
  *
  * @version $Id$
  */
-public class JcrConsumer extends DefaultConsumer implements SuspendableService {
+public class JcrConsumer extends DefaultConsumer {
 
     private static final Logger LOG = LoggerFactory.getLogger(JcrConsumer.class);
 
@@ -62,19 +61,6 @@ public class JcrConsumer extends DefaultConsumer implements SuspendableService {
         unregisterListenerAndLogoutSession();
     }
 
-    @Override
-    protected void doSuspend() throws Exception {
-        super.doSuspend();
-        cancelSessionListenerChecker();
-        unregisterListenerAndLogoutSession();
-    }
-
-    @Override
-    protected void doResume() throws Exception {
-        super.doResume();
-        scheduleSessionListenerChecker();
-    }
-
     protected JcrEndpoint getJcrEndpoint() {
         JcrEndpoint endpoint = (JcrEndpoint) getEndpoint();
         return endpoint;

http://git-wip-us.apache.org/repos/asf/camel/blob/25350175/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java
index 5d66555..85adeff 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java
@@ -21,7 +21,7 @@ import javax.jms.Connection;
 
 import org.apache.camel.FailedToCreateConsumerException;
 import org.apache.camel.Processor;
-import org.apache.camel.SuspendableService;
+import org.apache.camel.Suspendable;
 import org.apache.camel.impl.DefaultConsumer;
 import org.springframework.jms.listener.AbstractMessageListenerContainer;
 import org.springframework.jms.support.JmsUtils;
@@ -34,7 +34,7 @@ import org.springframework.jms.support.JmsUtils;
  * @see DefaultJmsMessageListenerContainer
  * @see SimpleJmsMessageListenerContainer
  */
-public class JmsConsumer extends DefaultConsumer implements SuspendableService {
+public class JmsConsumer extends DefaultConsumer implements Suspendable {
     private volatile AbstractMessageListenerContainer listenerContainer;
     private volatile EndpointMessageListener messageListener;
     private volatile boolean initialized;

http://git-wip-us.apache.org/repos/asf/camel/blob/25350175/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpTcpServerConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpTcpServerConsumer.java b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpTcpServerConsumer.java
index e158dc3..afdc343 100644
--- a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpTcpServerConsumer.java
+++ b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpTcpServerConsumer.java
@@ -151,27 +151,6 @@ public class MllpTcpServerConsumer extends DefaultConsumer {
         super.doStop();
     }
 
-    @Override
-    protected void doSuspend() throws Exception {
-        log.debug("doSuspend()");
-
-        super.doSuspend();
-    }
-
-    @Override
-    protected void doResume() throws Exception {
-        log.debug("doResume()");
-
-        super.doSuspend();
-    }
-
-    @Override
-    protected void doShutdown() throws Exception {
-        log.debug("doShutdown()");
-
-        super.doShutdown();
-    }
-
     /**
      * Nested Class to handle the ServerSocket.accept requests
      */

http://git-wip-us.apache.org/repos/asf/camel/blob/25350175/components/camel-netty/src/main/java/org/apache/camel/component/netty/ClientModeTCPNettyServerBootstrapFactory.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/ClientModeTCPNettyServerBootstrapFactory.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/ClientModeTCPNettyServerBootstrapFactory.java
index 0717f4b..7871a86 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/ClientModeTCPNettyServerBootstrapFactory.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/ClientModeTCPNettyServerBootstrapFactory.java
@@ -25,6 +25,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelException;
+import org.apache.camel.Suspendable;
 import org.apache.camel.support.ServiceSupport;
 import org.jboss.netty.bootstrap.ClientBootstrap;
 import org.jboss.netty.channel.Channel;
@@ -42,7 +43,7 @@ import org.slf4j.LoggerFactory;
 /**
  * A {@link org.apache.camel.component.netty.NettyServerBootstrapFactory} which is used by a single consumer (not shared).
  */
-public class ClientModeTCPNettyServerBootstrapFactory extends ServiceSupport implements NettyServerBootstrapFactory {
+public class ClientModeTCPNettyServerBootstrapFactory extends ServiceSupport implements NettyServerBootstrapFactory, Suspendable {
 
     protected static final Logger LOG = LoggerFactory.getLogger(ClientModeTCPNettyServerBootstrapFactory.class);
     private CamelContext camelContext;

http://git-wip-us.apache.org/repos/asf/camel/blob/25350175/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsumer.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsumer.java
index 84924da..c2cdd6f 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsumer.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsumer.java
@@ -18,12 +18,13 @@ package org.apache.camel.component.netty;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Processor;
+import org.apache.camel.Suspendable;
 import org.apache.camel.impl.DefaultConsumer;
 import org.apache.camel.util.ServiceHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class NettyConsumer extends DefaultConsumer {
+public class NettyConsumer extends DefaultConsumer implements Suspendable {
     private static final Logger LOG = LoggerFactory.getLogger(NettyConsumer.class);
     private CamelContext context;
     private NettyConfiguration configuration;

http://git-wip-us.apache.org/repos/asf/camel/blob/25350175/components/camel-netty/src/main/java/org/apache/camel/component/netty/SingleTCPNettyServerBootstrapFactory.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/SingleTCPNettyServerBootstrapFactory.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/SingleTCPNettyServerBootstrapFactory.java
index 3a74b0f..2c71430 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/SingleTCPNettyServerBootstrapFactory.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/SingleTCPNettyServerBootstrapFactory.java
@@ -21,6 +21,7 @@ import java.util.Map;
 import java.util.concurrent.ThreadFactory;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.Suspendable;
 import org.apache.camel.support.ServiceSupport;
 import org.jboss.netty.bootstrap.ServerBootstrap;
 import org.jboss.netty.channel.Channel;
@@ -39,7 +40,7 @@ import org.slf4j.LoggerFactory;
 /**
  * A {@link NettyServerBootstrapFactory} which is used by a single consumer (not shared).
  */
-public class SingleTCPNettyServerBootstrapFactory extends ServiceSupport implements NettyServerBootstrapFactory {
+public class SingleTCPNettyServerBootstrapFactory extends ServiceSupport implements NettyServerBootstrapFactory, Suspendable {
 
     protected static final Logger LOG = LoggerFactory.getLogger(SingleTCPNettyServerBootstrapFactory.class);
     private ChannelGroup allChannels;

http://git-wip-us.apache.org/repos/asf/camel/blob/25350175/components/camel-netty/src/main/java/org/apache/camel/component/netty/SingleUDPNettyServerBootstrapFactory.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/SingleUDPNettyServerBootstrapFactory.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/SingleUDPNettyServerBootstrapFactory.java
index ada56d1..eb5f596 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/SingleUDPNettyServerBootstrapFactory.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/SingleUDPNettyServerBootstrapFactory.java
@@ -23,6 +23,7 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.ThreadFactory;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.Suspendable;
 import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.ObjectHelper;
 import org.jboss.netty.bootstrap.ConnectionlessBootstrap;
@@ -113,16 +114,6 @@ public class SingleUDPNettyServerBootstrapFactory extends ServiceSupport impleme
         stopServerBootstrap();
     }
 
-    @Override
-    protected void doResume() throws Exception {
-        // noop
-    }
-
-    @Override
-    protected void doSuspend() throws Exception {
-        // noop
-    }
-
     protected void startServerBootstrap() throws Exception {
         // create non-shared worker pool
         int count = configuration.getWorkerCount() > 0 ? configuration.getWorkerCount() : NettyHelper.DEFAULT_IO_THREADS;

http://git-wip-us.apache.org/repos/asf/camel/blob/25350175/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConsumer.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConsumer.java
index 574e9dc..dad9d95 100644
--- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConsumer.java
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConsumer.java
@@ -18,12 +18,13 @@ package org.apache.camel.component.netty4;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Processor;
+import org.apache.camel.Suspendable;
 import org.apache.camel.impl.DefaultConsumer;
 import org.apache.camel.util.ServiceHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class NettyConsumer extends DefaultConsumer {
+public class NettyConsumer extends DefaultConsumer implements Suspendable {
     private static final Logger LOG = LoggerFactory.getLogger(NettyConsumer.class);
     private CamelContext context;
     private NettyConfiguration configuration;

http://git-wip-us.apache.org/repos/asf/camel/blob/25350175/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsumer.java b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsumer.java
index fe88eac..4f21133 100644
--- a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsumer.java
+++ b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsumer.java
@@ -40,20 +40,9 @@ public class QuartzConsumer extends DefaultConsumer {
     }
 
     @Override
-    protected void doResume() throws Exception {
-        super.doResume();
-        getEndpoint().consumerStarted(this);
-    }
-
-    @Override
     protected void doStop() throws Exception {
         getEndpoint().consumerStopped(this);
         super.doStop();
     }
 
-    @Override
-    protected void doSuspend() throws Exception {
-        getEndpoint().consumerStopped(this);
-        super.doSuspend();
-    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/25350175/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzConsumer.java b/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzConsumer.java
index af14186..d176ad8 100644
--- a/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzConsumer.java
+++ b/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzConsumer.java
@@ -42,20 +42,9 @@ public class QuartzConsumer extends DefaultConsumer {
     }
 
     @Override
-    protected void doResume() throws Exception {
-        super.doResume();
-        getEndpoint().onConsumerStart(this);
-    }
-
-    @Override
     protected void doStop() throws Exception {
         getEndpoint().onConsumerStop(this);
         super.doStop();
     }
 
-    @Override
-    protected void doSuspend() throws Exception {
-        getEndpoint().onConsumerStop(this);
-        super.doSuspend();
-    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/25350175/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java
index 24b2856..69d3a0b 100644
--- a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java
+++ b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java
@@ -27,9 +27,10 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import com.rabbitmq.client.Connection;
 
 import org.apache.camel.Processor;
+import org.apache.camel.Suspendable;
 import org.apache.camel.impl.DefaultConsumer;
 
-public class RabbitMQConsumer extends DefaultConsumer {
+public class RabbitMQConsumer extends DefaultConsumer implements Suspendable {
     private ExecutorService executor;
     private Connection conn;
     private int closeTimeout = 30 * 1000;
@@ -108,13 +109,6 @@ public class RabbitMQConsumer extends DefaultConsumer {
         this.consumers.add(consumer);
     }
 
-    @Override
-    protected void doStart() throws Exception {
-        executor = endpoint.createExecutor();
-        log.debug("Using executor {}", executor);
-        startConsumers();
-    }
-
     private synchronized void reconnect() {
         if (startConsumerCallable != null) {
             return;
@@ -126,11 +120,6 @@ public class RabbitMQConsumer extends DefaultConsumer {
         executor.submit(startConsumerCallable);
     }
 
-    @Override
-    protected void doResume() throws Exception {
-        reconnect();
-    }
-
     /**
      * If needed, close Connection and Channels
      */
@@ -160,6 +149,18 @@ public class RabbitMQConsumer extends DefaultConsumer {
     }
 
     @Override
+    protected void doResume() throws Exception {
+        reconnect();
+    }
+
+    @Override
+    protected void doStart() throws Exception {
+        executor = endpoint.createExecutor();
+        log.debug("Using executor {}", executor);
+        startConsumers();
+    }
+
+    @Override
     protected void doStop() throws Exception {
         closeConnectionAndChannel();
 

http://git-wip-us.apache.org/repos/asf/camel/blob/25350175/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/direct/RouteboxDirectConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/direct/RouteboxDirectConsumer.java b/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/direct/RouteboxDirectConsumer.java
index 5d557d4..6c40c9c 100644
--- a/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/direct/RouteboxDirectConsumer.java
+++ b/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/direct/RouteboxDirectConsumer.java
@@ -20,13 +20,13 @@ import org.apache.camel.AsyncProcessor;
 import org.apache.camel.Processor;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.ShutdownRunningTask;
-import org.apache.camel.SuspendableService;
+import org.apache.camel.Suspendable;
 import org.apache.camel.component.routebox.RouteboxConsumer;
 import org.apache.camel.component.routebox.RouteboxServiceSupport;
 import org.apache.camel.spi.ShutdownAware;
 import org.apache.camel.util.AsyncProcessorConverterHelper;
 
-public class RouteboxDirectConsumer extends RouteboxServiceSupport implements RouteboxConsumer, ShutdownAware, SuspendableService {
+public class RouteboxDirectConsumer extends RouteboxServiceSupport implements RouteboxConsumer, ShutdownAware, Suspendable {
     protected ProducerTemplate producer;
     private final Processor processor;
     private volatile AsyncProcessor asyncProcessor;


[5/5] camel git commit: Add to javadoc about thread safety in a processor in a route

Posted by da...@apache.org.
Add to javadoc about thread safety in a processor in a route


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/c4f97a1c
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/c4f97a1c
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/c4f97a1c

Branch: refs/heads/master
Commit: c4f97a1cc3c80b9e961e6c98d8b14486b2cc0456
Parents: fdb19bf
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Feb 8 17:09:42 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Feb 8 17:45:21 2016 +0100

----------------------------------------------------------------------
 camel-core/src/main/java/org/apache/camel/Processor.java | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/c4f97a1c/camel-core/src/main/java/org/apache/camel/Processor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/Processor.java b/camel-core/src/main/java/org/apache/camel/Processor.java
index 244b383..9a6be96 100644
--- a/camel-core/src/main/java/org/apache/camel/Processor.java
+++ b/camel-core/src/main/java/org/apache/camel/Processor.java
@@ -21,6 +21,10 @@ package org.apache.camel;
  * <a href="http://camel.apache.org/event-driven-consumer.html"> Event Driven Consumer</a>
  * and <a href="http://camel.apache.org/message-translator.html"> Message Translator</a>
  * patterns and to process message exchanges.
+ * <p/>
+ * Notice if you use a {@link Processor} in a Camel route, then make sure to write the {@link Processor}
+ * in a thread-safe way, as the Camel routes can potentially be executed by concurrent threads, and therefore
+ * multiple threads can call the same {@link Processor} instance.
  * 
  * @version 
  */


[3/5] camel git commit: CAMEL-9577: Only support suspension if a component has custom logic

Posted by da...@apache.org.
CAMEL-9577: Only support suspension if a component has custom logic


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/5973f141
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/5973f141
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/5973f141

Branch: refs/heads/master
Commit: 5973f1416b2233e5f34e357ec15e4d502cafd5b2
Parents: 8e479df
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Feb 8 15:10:58 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Feb 8 17:45:20 2016 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/camel/Suspendable.java | 31 ++++++++++++++++++++
 .../org/apache/camel/SuspendableService.java    |  5 +++-
 .../camel/component/direct/DirectConsumer.java  |  3 +-
 .../component/directvm/DirectVmConsumer.java    |  3 +-
 .../camel/component/seda/SedaConsumer.java      |  4 +--
 .../apache/camel/impl/DefaultCamelContext.java  | 11 +++++--
 .../camel/impl/DefaultShutdownStrategy.java     |  3 +-
 .../camel/impl/EventDrivenConsumerRoute.java    |  3 +-
 .../camel/impl/ScheduledPollConsumer.java       |  3 +-
 .../camel/management/mbean/ManagedService.java  |  5 ++--
 .../org/apache/camel/util/ServiceHelper.java    |  7 +++--
 11 files changed, 62 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/5973f141/camel-core/src/main/java/org/apache/camel/Suspendable.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/Suspendable.java b/camel-core/src/main/java/org/apache/camel/Suspendable.java
new file mode 100644
index 0000000..c1030cd
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/Suspendable.java
@@ -0,0 +1,31 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel;
+
+/**
+ * Marker interface to indicate a custom component has custom implementation for suspending the {@link SuspendableService} service.
+ * <br/>
+ * This is needed to let Camel know if there is special code happening during a suspension.
+ * <p/>
+ * The {@link org.apache.camel.support.ServiceSupport} implementation that most Camel components / endpoints etc use
+ * as base class is a {@link SuspendableService} but the actual implementation may not have special logic for suspend.
+ * Therefore this marker interface is introduced to indicate when the implementation has special code for suspension.
+ *
+ * @see SuspendableService
+ */
+public interface Suspendable {
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/5973f141/camel-core/src/main/java/org/apache/camel/SuspendableService.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/SuspendableService.java b/camel-core/src/main/java/org/apache/camel/SuspendableService.java
index 990910c..79e2cbd 100644
--- a/camel-core/src/main/java/org/apache/camel/SuspendableService.java
+++ b/camel-core/src/main/java/org/apache/camel/SuspendableService.java
@@ -24,8 +24,11 @@ package org.apache.camel;
  * <p/>
  * For example this is use by the JmsConsumer which suspends the Spring JMS listener instead of stopping
  * the consumer totally.
+ * <p/>
+ * <b>Important:</b> The service should also implement the {@link Suspendable} marker interface to indicate
+ * the service supports suspension using custom code logic.
  *
- * @version 
+ * @see Suspendable
  */
 public interface SuspendableService extends Service {
 

http://git-wip-us.apache.org/repos/asf/camel/blob/5973f141/camel-core/src/main/java/org/apache/camel/component/direct/DirectConsumer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/direct/DirectConsumer.java b/camel-core/src/main/java/org/apache/camel/component/direct/DirectConsumer.java
index a5be34f..9b5c8d1 100644
--- a/camel-core/src/main/java/org/apache/camel/component/direct/DirectConsumer.java
+++ b/camel-core/src/main/java/org/apache/camel/component/direct/DirectConsumer.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.direct;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Processor;
 import org.apache.camel.ShutdownRunningTask;
+import org.apache.camel.Suspendable;
 import org.apache.camel.SuspendableService;
 import org.apache.camel.impl.DefaultConsumer;
 import org.apache.camel.spi.ShutdownAware;
@@ -28,7 +29,7 @@ import org.apache.camel.spi.ShutdownAware;
  *
  * @version 
  */
-public class DirectConsumer extends DefaultConsumer implements ShutdownAware, SuspendableService {
+public class DirectConsumer extends DefaultConsumer implements ShutdownAware, Suspendable {
 
     private DirectEndpoint endpoint;
 

http://git-wip-us.apache.org/repos/asf/camel/blob/5973f141/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmConsumer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmConsumer.java b/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmConsumer.java
index 037b7e2..4b18fe3 100644
--- a/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmConsumer.java
+++ b/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmConsumer.java
@@ -17,13 +17,14 @@
 package org.apache.camel.component.directvm;
 
 import org.apache.camel.Processor;
+import org.apache.camel.Suspendable;
 import org.apache.camel.SuspendableService;
 import org.apache.camel.impl.DefaultConsumer;
 
 /**
  * The direct-vm consumer
  */
-public class DirectVmConsumer extends DefaultConsumer implements SuspendableService {
+public class DirectVmConsumer extends DefaultConsumer implements Suspendable {
 
     public DirectVmConsumer(DirectVmEndpoint endpoint, Processor processor) {
         super(endpoint, processor);

http://git-wip-us.apache.org/repos/asf/camel/blob/5973f141/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java b/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java
index c0970fb..ca0ddcb 100644
--- a/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java
+++ b/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java
@@ -30,7 +30,7 @@ import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.ShutdownRunningTask;
-import org.apache.camel.SuspendableService;
+import org.apache.camel.Suspendable;
 import org.apache.camel.processor.MulticastProcessor;
 import org.apache.camel.spi.ExceptionHandler;
 import org.apache.camel.spi.ShutdownAware;
@@ -52,7 +52,7 @@ import org.slf4j.LoggerFactory;
  *
  * @version 
  */
-public class SedaConsumer extends ServiceSupport implements Consumer, Runnable, ShutdownAware, SuspendableService {
+public class SedaConsumer extends ServiceSupport implements Consumer, Runnable, ShutdownAware, Suspendable {
     private static final Logger LOG = LoggerFactory.getLogger(SedaConsumer.class);
 
     private final AtomicInteger taskCount = new AtomicInteger();

http://git-wip-us.apache.org/repos/asf/camel/blob/5973f141/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
index bba3ed1..d0c2c37 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
@@ -72,6 +72,7 @@ import org.apache.camel.ShutdownRoute;
 import org.apache.camel.ShutdownRunningTask;
 import org.apache.camel.StartupListener;
 import org.apache.camel.StatefulService;
+import org.apache.camel.Suspendable;
 import org.apache.camel.SuspendableService;
 import org.apache.camel.TypeConverter;
 import org.apache.camel.VetoCamelContextStartException;
@@ -171,7 +172,7 @@ import org.slf4j.LoggerFactory;
  * @version
  */
 @SuppressWarnings("deprecation")
-public class DefaultCamelContext extends ServiceSupport implements ModelCamelContext, SuspendableService {
+public class DefaultCamelContext extends ServiceSupport implements ModelCamelContext, Suspendable {
     private final Logger log = LoggerFactory.getLogger(getClass());
     private JAXBContext jaxbContext;
     private CamelContextNameStrategy nameStrategy = new DefaultCamelContextNameStrategy();
@@ -1169,7 +1170,9 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
             // must suspend route service as well
             suspendRouteService(routeService);
             // must suspend the route as well
-            ServiceHelper.suspendService(route);
+            if (route instanceof SuspendableService) {
+                ((SuspendableService) route).suspend();
+            }
         }
     }
 
@@ -1190,7 +1193,9 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
             // must suspend route service as well
             suspendRouteService(routeService);
             // must suspend the route as well
-            ServiceHelper.suspendService(route);
+            if (route instanceof SuspendableService) {
+                ((SuspendableService) route).suspend();
+            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/5973f141/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java
index 2eac21e..074837b 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java
@@ -40,6 +40,7 @@ import org.apache.camel.Route;
 import org.apache.camel.Service;
 import org.apache.camel.ShutdownRoute;
 import org.apache.camel.ShutdownRunningTask;
+import org.apache.camel.Suspendable;
 import org.apache.camel.SuspendableService;
 import org.apache.camel.spi.InflightRepository;
 import org.apache.camel.spi.RouteStartupOrder;
@@ -557,7 +558,7 @@ public class DefaultShutdownStrategy extends ServiceSupport implements ShutdownS
                         if (consumer instanceof ShutdownAware) {
                             shutdown = !((ShutdownAware) consumer).deferShutdown(shutdownRunningTask);
                         }
-                        if (shutdown && consumer instanceof SuspendableService) {
+                        if (shutdown && consumer instanceof Suspendable) {
                             // we prefer to suspend over shutdown
                             suspend = true;
                         }

http://git-wip-us.apache.org/repos/asf/camel/blob/5973f141/camel-core/src/main/java/org/apache/camel/impl/EventDrivenConsumerRoute.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/EventDrivenConsumerRoute.java b/camel-core/src/main/java/org/apache/camel/impl/EventDrivenConsumerRoute.java
index 8a6da5d..0e77b17 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/EventDrivenConsumerRoute.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/EventDrivenConsumerRoute.java
@@ -25,6 +25,7 @@ import org.apache.camel.Navigate;
 import org.apache.camel.Processor;
 import org.apache.camel.RouteAware;
 import org.apache.camel.Service;
+import org.apache.camel.Suspendable;
 import org.apache.camel.SuspendableService;
 import org.apache.camel.spi.IdAware;
 import org.apache.camel.spi.RouteContext;
@@ -129,6 +130,6 @@ public class EventDrivenConsumerRoute extends DefaultRoute {
     }
 
     public boolean supportsSuspension() {
-        return consumer instanceof SuspendableService;
+        return consumer instanceof Suspendable && consumer instanceof SuspendableService;
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/5973f141/camel-core/src/main/java/org/apache/camel/impl/ScheduledPollConsumer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/ScheduledPollConsumer.java b/camel-core/src/main/java/org/apache/camel/impl/ScheduledPollConsumer.java
index 5f25a4f..c0fadaa 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/ScheduledPollConsumer.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/ScheduledPollConsumer.java
@@ -27,6 +27,7 @@ import org.apache.camel.FailedToCreateConsumerException;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.PollingConsumerPollingStrategy;
 import org.apache.camel.Processor;
+import org.apache.camel.Suspendable;
 import org.apache.camel.SuspendableService;
 import org.apache.camel.spi.PollingConsumerPollStrategy;
 import org.apache.camel.spi.ScheduledPollConsumerScheduler;
@@ -39,7 +40,7 @@ import org.slf4j.LoggerFactory;
 /**
  * A useful base class for any consumer which is polling based
  */
-public abstract class ScheduledPollConsumer extends DefaultConsumer implements Runnable, SuspendableService, PollingConsumerPollingStrategy {
+public abstract class ScheduledPollConsumer extends DefaultConsumer implements Runnable, Suspendable, PollingConsumerPollingStrategy {
     private static final Logger LOG = LoggerFactory.getLogger(ScheduledPollConsumer.class);
 
     private ScheduledPollConsumerScheduler scheduler;

http://git-wip-us.apache.org/repos/asf/camel/blob/5973f141/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java
index b5dffe0..9fe5df0 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java
@@ -22,6 +22,7 @@ import org.apache.camel.Service;
 import org.apache.camel.ServiceStatus;
 import org.apache.camel.StatefulService;
 import org.apache.camel.StaticService;
+import org.apache.camel.Suspendable;
 import org.apache.camel.SuspendableService;
 import org.apache.camel.api.management.ManagedInstance;
 import org.apache.camel.api.management.ManagedResource;
@@ -111,7 +112,7 @@ public class ManagedService implements ManagedInstance, ManagedServiceMBean {
     }
 
     public boolean isSupportSuspension() {
-        return service instanceof SuspendableService;
+        return service instanceof Suspendable && service instanceof SuspendableService;
     }
 
     public boolean isSuspended() {
@@ -127,7 +128,7 @@ public class ManagedService implements ManagedInstance, ManagedServiceMBean {
         if (!context.getStatus().isStarted()) {
             throw new IllegalArgumentException("CamelContext is not started");
         }
-        if (service instanceof SuspendableService) {
+        if (service instanceof Suspendable && service instanceof SuspendableService) {
             SuspendableService ss = (SuspendableService) service;
             ss.suspend();
         } else {

http://git-wip-us.apache.org/repos/asf/camel/blob/5973f141/camel-core/src/main/java/org/apache/camel/util/ServiceHelper.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/ServiceHelper.java b/camel-core/src/main/java/org/apache/camel/util/ServiceHelper.java
index 90b5ce9..e0b4d77 100644
--- a/camel-core/src/main/java/org/apache/camel/util/ServiceHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/ServiceHelper.java
@@ -28,6 +28,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.Service;
 import org.apache.camel.ShutdownableService;
 import org.apache.camel.StatefulService;
+import org.apache.camel.Suspendable;
 import org.apache.camel.SuspendableService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -361,13 +362,13 @@ public final class ServiceHelper {
     /**
      * Suspends the given {@code service}.
      * <p/>
-     * If {@code service} is a {@link org.apache.camel.SuspendableService} then
+     * If {@code service} is both {@link org.apache.camel.Suspendable} and {@link org.apache.camel.SuspendableService} then
      * it's {@link org.apache.camel.SuspendableService#suspend()} is called but
      * <b>only</b> if {@code service} is <b>not</b> already
      * {@link #isSuspended(Object) suspended}.
      * <p/>
      * If {@code service} is <b>not</b> a
-     * {@link org.apache.camel.SuspendableService} then it's
+     * {@link org.apache.camel.Suspendable} and {@link org.apache.camel.SuspendableService} then it's
      * {@link org.apache.camel.Service#stop()} is called.
      * <p/>
      * Calling this method has no effect if {@code service} is {@code null}.
@@ -380,7 +381,7 @@ public final class ServiceHelper {
      * @see #stopService(Object)
      */
     public static boolean suspendService(Object service) throws Exception {
-        if (service instanceof SuspendableService) {
+        if (service instanceof Suspendable && service instanceof SuspendableService) {
             SuspendableService ss = (SuspendableService) service;
             if (!ss.isSuspended()) {
                 LOG.trace("Suspending service {}", service);


[4/5] camel git commit: CAMEL-9577: Only support suspension if a component has custom logic

Posted by da...@apache.org.
CAMEL-9577: Only support suspension if a component has custom logic


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/fdb19bf1
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/fdb19bf1
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/fdb19bf1

Branch: refs/heads/master
Commit: fdb19bf16b197830aeab07c0f579b800e6de9482
Parents: 2535017
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Feb 8 17:03:58 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Feb 8 17:45:21 2016 +0100

----------------------------------------------------------------------
 .../org/apache/camel/component/netty/NettyConsumer.java |  2 ++
 .../netty/SingleUDPNettyServerBootstrapFactory.java     | 12 +++++++++++-
 .../ClientModeTCPNettyServerBootstrapFactory.java       |  3 ++-
 .../apache/camel/component/netty4/NettyConsumer.java    |  2 ++
 .../netty4/SingleTCPNettyServerBootstrapFactory.java    |  3 ++-
 .../netty4/SingleUDPNettyServerBootstrapFactory.java    |  4 ++--
 6 files changed, 21 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/fdb19bf1/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsumer.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsumer.java
index c2cdd6f..3a0d7b3 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsumer.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsumer.java
@@ -90,11 +90,13 @@ public class NettyConsumer extends DefaultConsumer implements Suspendable {
     @Override
     protected void doSuspend() throws Exception {
         ServiceHelper.suspendService(nettyServerBootstrapFactory);
+        super.doSuspend();
     }
 
     @Override
     protected void doResume() throws Exception {
         ServiceHelper.resumeService(nettyServerBootstrapFactory);
+        super.doResume();
     }
 
     public CamelContext getContext() {

http://git-wip-us.apache.org/repos/asf/camel/blob/fdb19bf1/components/camel-netty/src/main/java/org/apache/camel/component/netty/SingleUDPNettyServerBootstrapFactory.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/SingleUDPNettyServerBootstrapFactory.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/SingleUDPNettyServerBootstrapFactory.java
index eb5f596..7a2567e 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/SingleUDPNettyServerBootstrapFactory.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/SingleUDPNettyServerBootstrapFactory.java
@@ -45,7 +45,7 @@ import org.slf4j.LoggerFactory;
 /**
  * A {@link NettyServerBootstrapFactory} which is used by a single consumer (not shared).
  */
-public class SingleUDPNettyServerBootstrapFactory extends ServiceSupport implements NettyServerBootstrapFactory {
+public class SingleUDPNettyServerBootstrapFactory extends ServiceSupport implements NettyServerBootstrapFactory, Suspendable {
 
     protected static final Logger LOG = LoggerFactory.getLogger(SingleUDPNettyServerBootstrapFactory.class);
     private static final String LOOPBACK_INTERFACE = "lo";
@@ -114,6 +114,16 @@ public class SingleUDPNettyServerBootstrapFactory extends ServiceSupport impleme
         stopServerBootstrap();
     }
 
+    @Override
+    protected void doResume() throws Exception {
+        // noop
+    }
+
+    @Override
+    protected void doSuspend() throws Exception {
+        // noop
+    }
+
     protected void startServerBootstrap() throws Exception {
         // create non-shared worker pool
         int count = configuration.getWorkerCount() > 0 ? configuration.getWorkerCount() : NettyHelper.DEFAULT_IO_THREADS;

http://git-wip-us.apache.org/repos/asf/camel/blob/fdb19bf1/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/ClientModeTCPNettyServerBootstrapFactory.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/ClientModeTCPNettyServerBootstrapFactory.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/ClientModeTCPNettyServerBootstrapFactory.java
index 10abe9b..fc9cb2c 100644
--- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/ClientModeTCPNettyServerBootstrapFactory.java
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/ClientModeTCPNettyServerBootstrapFactory.java
@@ -32,6 +32,7 @@ import io.netty.channel.EventLoopGroup;
 import io.netty.channel.socket.nio.NioSocketChannel;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.Suspendable;
 import org.apache.camel.support.ServiceSupport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -39,7 +40,7 @@ import org.slf4j.LoggerFactory;
 /**
  * A {@link NettyServerBootstrapFactory} which is used by a single consumer (not shared).
  */
-public class ClientModeTCPNettyServerBootstrapFactory extends ServiceSupport implements NettyServerBootstrapFactory {
+public class ClientModeTCPNettyServerBootstrapFactory extends ServiceSupport implements NettyServerBootstrapFactory, Suspendable {
 
     protected static final Logger LOG = LoggerFactory.getLogger(ClientModeTCPNettyServerBootstrapFactory.class);
     

http://git-wip-us.apache.org/repos/asf/camel/blob/fdb19bf1/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConsumer.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConsumer.java
index dad9d95..fbee132 100644
--- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConsumer.java
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConsumer.java
@@ -90,11 +90,13 @@ public class NettyConsumer extends DefaultConsumer implements Suspendable {
     @Override
     protected void doSuspend() throws Exception {
         ServiceHelper.suspendService(nettyServerBootstrapFactory);
+        super.doSuspend();
     }
 
     @Override
     protected void doResume() throws Exception {
         ServiceHelper.resumeService(nettyServerBootstrapFactory);
+        super.doResume();
     }
 
     public CamelContext getContext() {

http://git-wip-us.apache.org/repos/asf/camel/blob/fdb19bf1/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/SingleTCPNettyServerBootstrapFactory.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/SingleTCPNettyServerBootstrapFactory.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/SingleTCPNettyServerBootstrapFactory.java
index 9e10ced..49ddbc8 100644
--- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/SingleTCPNettyServerBootstrapFactory.java
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/SingleTCPNettyServerBootstrapFactory.java
@@ -31,6 +31,7 @@ import io.netty.channel.socket.nio.NioServerSocketChannel;
 import io.netty.util.concurrent.ImmediateEventExecutor;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.Suspendable;
 import org.apache.camel.support.ServiceSupport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -38,7 +39,7 @@ import org.slf4j.LoggerFactory;
 /**
  * A {@link NettyServerBootstrapFactory} which is used by a single consumer (not shared).
  */
-public class SingleTCPNettyServerBootstrapFactory extends ServiceSupport implements NettyServerBootstrapFactory {
+public class SingleTCPNettyServerBootstrapFactory extends ServiceSupport implements NettyServerBootstrapFactory, Suspendable {
 
     protected static final Logger LOG = LoggerFactory.getLogger(SingleTCPNettyServerBootstrapFactory.class);
     private ChannelGroup allChannels;

http://git-wip-us.apache.org/repos/asf/camel/blob/fdb19bf1/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/SingleUDPNettyServerBootstrapFactory.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/SingleUDPNettyServerBootstrapFactory.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/SingleUDPNettyServerBootstrapFactory.java
index e3b262e..5d9d5bd 100644
--- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/SingleUDPNettyServerBootstrapFactory.java
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/SingleUDPNettyServerBootstrapFactory.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.component.netty4;
 
-
 import java.net.InetSocketAddress;
 import java.net.NetworkInterface;
 import java.util.concurrent.ThreadFactory;
@@ -33,6 +32,7 @@ import io.netty.channel.socket.DatagramChannel;
 import io.netty.channel.socket.nio.NioDatagramChannel;
 import io.netty.util.concurrent.ImmediateEventExecutor;
 import org.apache.camel.CamelContext;
+import org.apache.camel.Suspendable;
 import org.apache.camel.component.netty4.util.SubnetUtils;
 import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.ObjectHelper;
@@ -42,7 +42,7 @@ import org.slf4j.LoggerFactory;
 /**
  * A {@link NettyServerBootstrapFactory} which is used by a single consumer (not shared).
  */
-public class SingleUDPNettyServerBootstrapFactory extends ServiceSupport implements NettyServerBootstrapFactory {
+public class SingleUDPNettyServerBootstrapFactory extends ServiceSupport implements NettyServerBootstrapFactory, Suspendable {
 
     protected static final Logger LOG = LoggerFactory.getLogger(SingleUDPNettyServerBootstrapFactory.class);
     private static final String LOOPBACK_INTERFACE = "lo";


[2/5] camel git commit: Polished

Posted by da...@apache.org.
Polished


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/bfcbb3f6
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/bfcbb3f6
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/bfcbb3f6

Branch: refs/heads/master
Commit: bfcbb3f69702e3f9ad48fe9c39bad4dc1bdba3e1
Parents: 5973f14
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Feb 8 16:34:49 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Feb 8 17:45:20 2016 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/camel/model/AggregateDefinition.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/bfcbb3f6/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java b/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
index 5573842..b0e8bd7 100644
--- a/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
@@ -39,6 +39,7 @@ import org.apache.camel.processor.aggregate.AggregateController;
 import org.apache.camel.processor.aggregate.AggregateProcessor;
 import org.apache.camel.processor.aggregate.AggregationStrategy;
 import org.apache.camel.processor.aggregate.AggregationStrategyBeanAdapter;
+import org.apache.camel.processor.aggregate.ClosedCorrelationKeyException;
 import org.apache.camel.processor.aggregate.GroupedExchangeAggregationStrategy;
 import org.apache.camel.processor.aggregate.OptimisticLockRetryPolicy;
 import org.apache.camel.spi.AggregationRepository;
@@ -682,7 +683,7 @@ public class AggregateDefinition extends ProcessorDefinition<AggregateDefinition
 
     /**
      * Closes a correlation key when its complete. Any <i>late</i> received exchanges which has a correlation key
-     * that has been closed, it will be defined and a {@link org.apache.camel.processor.aggregate.ClosedCorrelationKeyException}
+     * that has been closed, it will be defined and a {@link ClosedCorrelationKeyException}
      * is thrown.
      *
      * @param capacity the maximum capacity of the closed correlation key cache.