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 2015/09/22 10:27:57 UTC

[6/8] camel git commit: CAMEL-9150: Seda suspend/resume should not trigger start/stop logic. Requires a little api change.

CAMEL-9150: Seda suspend/resume should not trigger start/stop logic. Requires a little api change.


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

Branch: refs/heads/master
Commit: d3c654f6816459f76ea572e57cb9d2c05015ed3f
Parents: e75d37b
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Sep 22 10:17:33 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Sep 22 10:17:33 2015 +0200

----------------------------------------------------------------------
 .../src/main/java/org/apache/camel/spi/ShutdownPrepared.java  | 7 +++++--
 .../apache/camel/component/disruptor/DisruptorConsumer.java   | 3 +--
 .../org/apache/camel/component/kestrel/KestrelConsumer.java   | 2 +-
 .../component/routebox/direct/RouteboxDirectConsumer.java     | 2 +-
 .../camel/component/routebox/seda/RouteboxSedaConsumer.java   | 7 +++++--
 5 files changed, 13 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/d3c654f6/camel-core/src/main/java/org/apache/camel/spi/ShutdownPrepared.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ShutdownPrepared.java b/camel-core/src/main/java/org/apache/camel/spi/ShutdownPrepared.java
index b6f1dd9..c65e925 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/ShutdownPrepared.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/ShutdownPrepared.java
@@ -30,15 +30,18 @@ package org.apache.camel.spi;
 public interface ShutdownPrepared {
 
     /**
-     * Prepares for shutdown.
+     * Prepares for stop/shutdown.
      * <p/>
      * The {@link ShutdownStrategy} supports preparing for shutdown using two steps.
      * First a regular preparation, where the given forced parameter will be <tt>false</tt>.
      * And if the shutdown times out, then the {@link ShutdownStrategy} performs a more aggressive
      * shutdown, calling this method a second time with <tt>true</tt> for the given forced parameter.
-     * <p/>
      * For example by graceful stopping any threads or the likes.
      * <p/>
+     * In addition a service can also be suspended (not stopped), and when this happens the parameter
+     * <tt>suspendOnly</tt> has the value <tt>true</tt>. This can be used to prepare the service
+     * for suspension, such as marking a worker thread to skip action.
+     * <p/>
      * For forced shutdown, then the service is expected to aggressively shutdown any child services, such
      * as thread pools etc. This is the last chance it has to perform such duties.
      * 

http://git-wip-us.apache.org/repos/asf/camel/blob/d3c654f6/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 a59f077..3806d50 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
@@ -14,7 +14,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.camel.component.disruptor;
 
 import java.util.HashSet;
@@ -114,7 +113,7 @@ public class DisruptorConsumer extends ServiceSupport implements Consumer, Suspe
     }
 
     @Override
-    public void prepareShutdown(final boolean forced) {
+    public void prepareShutdown(boolean suspendOnly, boolean forced) {
         // nothing
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/d3c654f6/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelConsumer.java b/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelConsumer.java
index 71ed5b1..dd592d3 100644
--- a/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelConsumer.java
+++ b/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelConsumer.java
@@ -106,7 +106,7 @@ public class KestrelConsumer extends DefaultConsumer implements ShutdownAware {
     }
 
     @Override
-    public void prepareShutdown(boolean forced) {
+    public void prepareShutdown(boolean suspendOnly, boolean forced) {
         // Signal to our threads that shutdown is happening
         shutdownPending = true;
 

http://git-wip-us.apache.org/repos/asf/camel/blob/d3c654f6/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 bee0980..5d557d4 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
@@ -96,7 +96,7 @@ public class RouteboxDirectConsumer extends RouteboxServiceSupport implements Ro
     }
 
     @Override
-    public void prepareShutdown(boolean forced) {
+    public void prepareShutdown(boolean suspendOnly, boolean forced) {
         // noop
     }
     

http://git-wip-us.apache.org/repos/asf/camel/blob/d3c654f6/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/seda/RouteboxSedaConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/seda/RouteboxSedaConsumer.java b/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/seda/RouteboxSedaConsumer.java
index 32dc64f..0bb9ca3 100644
--- a/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/seda/RouteboxSedaConsumer.java
+++ b/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/seda/RouteboxSedaConsumer.java
@@ -118,12 +118,15 @@ public class RouteboxSedaConsumer extends RouteboxServiceSupport implements Rout
     }
 
     public int getPendingExchangesSize() {
-        // TODO: Get size of queue
+        BlockingQueue<Exchange> queue = ((RouteboxSedaEndpoint)getRouteboxEndpoint()).getQueue();
+        if (queue != null) {
+            return queue.size();
+        }
         return 0;
     }
 
     @Override
-    public void prepareShutdown(boolean forced) {
+    public void prepareShutdown(boolean suspendOnly, boolean forced) {
     }
     
     public void setProcessor(AsyncProcessor processor) {