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:52 UTC
[1/8] camel git commit: CAMEL-9150: Seda suspend/resume should not
trigger start/stop logic
Repository: camel
Updated Branches:
refs/heads/master 59eb278ca -> 969f29034
CAMEL-9150: Seda suspend/resume should not trigger start/stop logic
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/de2aab16
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/de2aab16
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/de2aab16
Branch: refs/heads/master
Commit: de2aab16048ff5ecc98b16f52333d19a0c0b612b
Parents: 59eb278
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Sep 22 09:18:15 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Sep 22 09:18:15 2015 +0200
----------------------------------------------------------------------
.../java/org/apache/camel/component/seda/SedaConsumer.java | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/de2aab16/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 5ddd0b5..14e4372 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
@@ -167,8 +167,8 @@ public class SedaConsumer extends ServiceSupport implements Consumer, Runnable,
continue;
}
- // do not poll if we are suspended
- if (isSuspending() || isSuspended()) {
+ // do not poll if we are suspended or starting again after resuming
+ if (isSuspending() || isSuspended() || isStarting()) {
if (shutdownPending && queue.isEmpty()) {
LOG.trace("Consumer is suspended and shutdown is pending, so this consumer thread is breaking out because the task queue is empty.");
// we want to shutdown so break out if there queue is empty
@@ -312,7 +312,7 @@ public class SedaConsumer extends ServiceSupport implements Consumer, Runnable,
@Override
protected void doResume() throws Exception {
- doStart();
+ endpoint.onStarted(this);
}
protected void doStop() throws Exception {
[5/8] camel git commit: CAMEL-9150: Seda suspend/resume should not
trigger start/stop logic
Posted by da...@apache.org.
CAMEL-9150: Seda suspend/resume should not trigger start/stop logic
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/e75d37b3
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e75d37b3
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e75d37b3
Branch: refs/heads/master
Commit: e75d37b3918eb957924e5122672accc6c01c72fc
Parents: 20ec49a
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Sep 22 09:52:37 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Sep 22 09:52:37 2015 +0200
----------------------------------------------------------------------
.../camel/component/direct/DirectConsumer.java | 2 +-
.../camel/component/seda/SedaConsumer.java | 9 ++++++++-
.../camel/impl/DefaultShutdownStrategy.java | 20 ++++++++++++--------
.../impl/ScheduledBatchPollingConsumer.java | 2 +-
.../camel/processor/RedeliveryErrorHandler.java | 2 +-
.../processor/aggregate/AggregateProcessor.java | 2 +-
.../org/apache/camel/spi/ShutdownPrepared.java | 5 +++--
...ntextSuspendResumeRouteStartupOrderTest.java | 4 ++++
...faultCamelContextSuspendResumeRouteTest.java | 6 ++++++
.../camel/impl/TwoRouteSuspendResumeTest.java | 3 +++
10 files changed, 40 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/e75d37b3/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 83dbbca..a5be34f 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
@@ -82,7 +82,7 @@ public class DirectConsumer extends DefaultConsumer implements ShutdownAware, Su
return 0;
}
- public void prepareShutdown(boolean forced) {
+ public void prepareShutdown(boolean suspendOnly, boolean forced) {
// noop
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/e75d37b3/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 14e4372..c0970fb 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
@@ -109,7 +109,14 @@ public class SedaConsumer extends ServiceSupport implements Consumer, Runnable,
}
@Override
- public void prepareShutdown(boolean forced) {
+ public void prepareShutdown(boolean suspendOnly, boolean forced) {
+ // if we are suspending then we want to keep the thread running but just not route the exchange
+ // this logic is only when we stop or shutdown the consumer
+ if (suspendOnly) {
+ LOG.debug("Skip preparing to shutdown as consumer is being suspended");
+ return;
+ }
+
// signal we want to shutdown
shutdownPending = true;
forceShutdown = forced;
http://git-wip-us.apache.org/repos/asf/camel/blob/e75d37b3/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 4d1395e..0657f15 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
@@ -184,7 +184,11 @@ public class DefaultShutdownStrategy extends ServiceSupport implements ShutdownS
Collections.reverse(routesOrdered);
}
- LOG.info("Starting to graceful shutdown " + routesOrdered.size() + " routes (timeout " + timeout + " " + timeUnit.toString().toLowerCase(Locale.ENGLISH) + ")");
+ if (suspendOnly) {
+ LOG.info("Starting to graceful suspend " + routesOrdered.size() + " routes (timeout " + timeout + " " + timeUnit.toString().toLowerCase(Locale.ENGLISH) + ")");
+ } else {
+ LOG.info("Starting to graceful shutdown " + routesOrdered.size() + " routes (timeout " + timeout + " " + timeUnit.toString().toLowerCase(Locale.ENGLISH) + ")");
+ }
// use another thread to perform the shutdowns so we can support timeout
timeoutOccurred.set(false);
@@ -230,7 +234,7 @@ public class DefaultShutdownStrategy extends ServiceSupport implements ShutdownS
// now the route consumers has been shutdown, then prepare route services for shutdown now (forced)
for (RouteStartupOrder order : routes) {
for (Service service : order.getServices()) {
- prepareShutdown(service, true, true, isSuppressLoggingOnTimeout());
+ prepareShutdown(service, false, true, true, isSuppressLoggingOnTimeout());
}
}
} else {
@@ -430,14 +434,14 @@ public class DefaultShutdownStrategy extends ServiceSupport implements ShutdownS
}
/**
- * Prepares the services for shutdown, by invoking the {@link ShutdownPrepared#prepareShutdown(boolean)} method
+ * Prepares the services for shutdown, by invoking the {@link ShutdownPrepared#prepareShutdown(boolean, boolean)} method
* on the service if it implement this interface.
*
* @param service the service
* @param forced whether to force shutdown
* @param includeChildren whether to prepare the child of the service as well
*/
- private static void prepareShutdown(Service service, boolean forced, boolean includeChildren, boolean suppressLogging) {
+ private static void prepareShutdown(Service service, boolean suspendOnly, boolean forced, boolean includeChildren, boolean suppressLogging) {
Set<Service> list;
if (includeChildren) {
// include error handlers as we want to prepare them for shutdown as well
@@ -451,7 +455,7 @@ public class DefaultShutdownStrategy extends ServiceSupport implements ShutdownS
if (child instanceof ShutdownPrepared) {
try {
LOG.trace("Preparing {} shutdown on {}", forced ? "forced" : "", child);
- ((ShutdownPrepared) child).prepareShutdown(forced);
+ ((ShutdownPrepared) child).prepareShutdown(suspendOnly, forced);
} catch (Exception e) {
if (suppressLogging) {
LOG.trace("Error during prepare shutdown on " + child + ". This exception will be ignored.", e);
@@ -580,7 +584,7 @@ public class DefaultShutdownStrategy extends ServiceSupport implements ShutdownS
if (service instanceof Consumer) {
continue;
}
- prepareShutdown(service, false, true, false);
+ prepareShutdown(service, suspendOnly, false, true, false);
}
}
@@ -643,7 +647,7 @@ public class DefaultShutdownStrategy extends ServiceSupport implements ShutdownS
LOG.trace("Route: {} preparing to shutdown.", deferred.getRoute().getId());
boolean forced = context.getShutdownStrategy().forceShutdown(consumer);
boolean suppress = context.getShutdownStrategy().isSuppressLoggingOnTimeout();
- prepareShutdown(consumer, forced, false, suppress);
+ prepareShutdown(consumer, suspendOnly, forced, false, suppress);
LOG.debug("Route: {} preparing to shutdown complete.", deferred.getRoute().getId());
}
}
@@ -665,7 +669,7 @@ public class DefaultShutdownStrategy extends ServiceSupport implements ShutdownS
for (Service service : order.getServices()) {
boolean forced = context.getShutdownStrategy().forceShutdown(service);
boolean suppress = context.getShutdownStrategy().isSuppressLoggingOnTimeout();
- prepareShutdown(service, forced, true, suppress);
+ prepareShutdown(service, suspendOnly, forced, true, suppress);
}
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/e75d37b3/camel-core/src/main/java/org/apache/camel/impl/ScheduledBatchPollingConsumer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/ScheduledBatchPollingConsumer.java b/camel-core/src/main/java/org/apache/camel/impl/ScheduledBatchPollingConsumer.java
index b16a5c4..a39263c 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/ScheduledBatchPollingConsumer.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/ScheduledBatchPollingConsumer.java
@@ -77,7 +77,7 @@ public abstract class ScheduledBatchPollingConsumer extends ScheduledPollConsume
}
@Override
- public void prepareShutdown(boolean forced) {
+ public void prepareShutdown(boolean suspendOnly, boolean forced) {
// reset task as the state of the task is not to be preserved
// which otherwise may cause isBatchAllowed() to return a wrong answer
this.shutdownRunningTask = null;
http://git-wip-us.apache.org/repos/asf/camel/blob/e75d37b3/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
index d15d2a1..04784eb 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
@@ -323,7 +323,7 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport impleme
}
@Override
- public void prepareShutdown(boolean forced) {
+ public void prepareShutdown(boolean suspendOnly, boolean forced) {
// prepare for shutdown, eg do not allow redelivery if configured
log.trace("Prepare shutdown on error handler {}", this);
preparingShutdown = true;
http://git-wip-us.apache.org/repos/asf/camel/blob/e75d37b3/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java b/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
index 4e3403c..5c400f6 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
@@ -1381,7 +1381,7 @@ public class AggregateProcessor extends ServiceSupport implements AsyncProcessor
}
@Override
- public void prepareShutdown(boolean forced) {
+ public void prepareShutdown(boolean suspendOnly, boolean forced) {
// we are shutting down, so force completion if this option was enabled
// but only do this when forced=false, as that is when we have chance to
// send out new messages to be routed by Camel. When forced=true, then
http://git-wip-us.apache.org/repos/asf/camel/blob/e75d37b3/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 2721d7b..b6f1dd9 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
@@ -42,8 +42,9 @@ public interface ShutdownPrepared {
* 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.
*
- * @param forced <tt>true</tt> is forcing a more aggressive shutdown, <tt>false</tt> is for preparing to shutdown.
+ * @param suspendOnly <tt>true</tt> if the intention is to only suspend the service, and not stop/shutdown the service.
+ * @param forced <tt>true</tt> is forcing a more aggressive shutdown, <tt>false</tt> is for preparing to shutdown.
*/
- void prepareShutdown(boolean forced);
+ void prepareShutdown(boolean suspendOnly, boolean forced);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/e75d37b3/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextSuspendResumeRouteStartupOrderTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextSuspendResumeRouteStartupOrderTest.java b/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextSuspendResumeRouteStartupOrderTest.java
index 9eea103..a8c4c1a 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextSuspendResumeRouteStartupOrderTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextSuspendResumeRouteStartupOrderTest.java
@@ -41,6 +41,10 @@ public class DefaultCamelContextSuspendResumeRouteStartupOrderTest extends Conte
resetMocks();
mock.expectedMessageCount(0);
context.suspend();
+
+ // need to give seda consumer thread time to idle
+ Thread.sleep(500);
+
template.sendBody("seda:foo", "B");
mock.assertIsSatisfied(1000);
http://git-wip-us.apache.org/repos/asf/camel/blob/e75d37b3/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextSuspendResumeRouteTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextSuspendResumeRouteTest.java b/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextSuspendResumeRouteTest.java
index fd4db6d..f7b6643 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextSuspendResumeRouteTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextSuspendResumeRouteTest.java
@@ -40,8 +40,14 @@ public class DefaultCamelContextSuspendResumeRouteTest extends ContextTestSuppor
// now suspend and dont expect a message to be routed
resetMocks();
mock.expectedMessageCount(0);
+
context.suspend();
+
+ // need to give seda consumer thread time to idle
+ Thread.sleep(500);
+
template.sendBody("seda:foo", "B");
+
mock.assertIsSatisfied(1000);
assertTrue(context.isSuspended());
http://git-wip-us.apache.org/repos/asf/camel/blob/e75d37b3/camel-core/src/test/java/org/apache/camel/impl/TwoRouteSuspendResumeTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/impl/TwoRouteSuspendResumeTest.java b/camel-core/src/test/java/org/apache/camel/impl/TwoRouteSuspendResumeTest.java
index 1c36f48..5f9f4ea 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/TwoRouteSuspendResumeTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/TwoRouteSuspendResumeTest.java
@@ -44,6 +44,9 @@ public class TwoRouteSuspendResumeTest extends ContextTestSupport {
context.suspendRoute("foo");
+ // need to give seda consumer thread time to idle
+ Thread.sleep(500);
+
template.sendBody("seda:foo", "B");
template.sendBody("direct:bar", "C");
[3/8] camel git commit: CAMEL-7800: camel-swagger-java - work in
progress
Posted by da...@apache.org.
CAMEL-7800: camel-swagger-java - work in progress
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/c909f163
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/c909f163
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/c909f163
Branch: refs/heads/master
Commit: c909f163b0c73ceabae22d9d66f2279660c969b3
Parents: bd022bc
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Sep 22 09:28:09 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Sep 22 09:28:09 2015 +0200
----------------------------------------------------------------------
.../apache/camel/component/rest/FromRestExplicitComponentTest.java | 1 +
.../apache/camel/component/rest/FromRestIdAndDescriptionTest.java | 1 +
2 files changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/c909f163/camel-core/src/test/java/org/apache/camel/component/rest/FromRestExplicitComponentTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/component/rest/FromRestExplicitComponentTest.java b/camel-core/src/test/java/org/apache/camel/component/rest/FromRestExplicitComponentTest.java
index 9db9cab..74164c5 100644
--- a/camel-core/src/test/java/org/apache/camel/component/rest/FromRestExplicitComponentTest.java
+++ b/camel-core/src/test/java/org/apache/camel/component/rest/FromRestExplicitComponentTest.java
@@ -41,6 +41,7 @@ public class FromRestExplicitComponentTest extends FromRestGetTest {
.defaultValue("b").allowMultiple(true).name("header_letter").required(false).access("acc2")
.endParam()
.responseMessage().code(300).message("test msg").responseModel(Integer.class).endResponseMessage()
+ .responseMessage().code("error").message("does not work").endResponseMessage()
.to("direct:bye")
.post().to("mock:update");
http://git-wip-us.apache.org/repos/asf/camel/blob/c909f163/camel-core/src/test/java/org/apache/camel/component/rest/FromRestIdAndDescriptionTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/component/rest/FromRestIdAndDescriptionTest.java b/camel-core/src/test/java/org/apache/camel/component/rest/FromRestIdAndDescriptionTest.java
index b42d7bf..8f6c69a 100644
--- a/camel-core/src/test/java/org/apache/camel/component/rest/FromRestIdAndDescriptionTest.java
+++ b/camel-core/src/test/java/org/apache/camel/component/rest/FromRestIdAndDescriptionTest.java
@@ -59,6 +59,7 @@ public class FromRestIdAndDescriptionTest extends FromRestGetTest {
.defaultValue("b").allowMultiple(true).name("header_letter").required(false).access("acc2")
.endParam()
.responseMessage().code(300).message("test msg").responseModel(Integer.class).endResponseMessage()
+ .responseMessage().code("error").message("does not work").endResponseMessage()
.to("direct:bye")
.post().description("Updates the bye message").to("mock:update");
[7/8] 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/205f1dc5
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/205f1dc5
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/205f1dc5
Branch: refs/heads/master
Commit: 205f1dc5916e095186ea57fb744a0d0873ae73e0
Parents: d3c654f
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Sep 22 10:26:17 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Sep 22 10:26:17 2015 +0200
----------------------------------------------------------------------
.../processor/validation/DefaultValidationErrorHandlerTest.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/205f1dc5/camel-core/src/test/java/org/apache/camel/processor/validation/DefaultValidationErrorHandlerTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/validation/DefaultValidationErrorHandlerTest.java b/camel-core/src/test/java/org/apache/camel/processor/validation/DefaultValidationErrorHandlerTest.java
index f27a0e2..6bf3310 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/validation/DefaultValidationErrorHandlerTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/validation/DefaultValidationErrorHandlerTest.java
@@ -96,7 +96,7 @@ public class DefaultValidationErrorHandlerTest extends ContextTestSupport {
assertTrue(e.getMessage().contains("errors: ["));
assertTrue(e.getMessage().contains("org.xml.sax.SAXParseException: foo, Line : 3, Column : 5"));
assertTrue(e.getMessage().contains("org.xml.sax.SAXParseException: bar, Line : 9, Column : 12"));
- assertTrue(e.getMessage().contains("Exchange[null]"));
+ assertTrue(e.getMessage().contains("Exchange[]"));
}
}
@@ -123,7 +123,7 @@ public class DefaultValidationErrorHandlerTest extends ContextTestSupport {
assertTrue(e.getMessage().contains("errors: ["));
assertTrue(e.getMessage().contains("org.xml.sax.SAXParseException: foo, Line : 3, Column : 5"));
assertTrue(e.getMessage().contains("org.xml.sax.SAXParseException: bar, Line : 9, Column : 12"));
- assertTrue(e.getMessage().contains("Exchange[null]"));
+ assertTrue(e.getMessage().contains("Exchange[]"));
}
}
[6/8] camel git commit: CAMEL-9150: Seda suspend/resume should not
trigger start/stop logic. Requires a little api change.
Posted by da...@apache.org.
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) {
[8/8] camel git commit: CAMEL-9150: Seda suspend/resume should not
trigger start/stop logic
Posted by da...@apache.org.
CAMEL-9150: Seda suspend/resume should not trigger start/stop logic
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/969f2903
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/969f2903
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/969f2903
Branch: refs/heads/master
Commit: 969f29034d73e0ddee78cc41e9ba75e7f89d19de
Parents: 205f1dc
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Sep 22 10:27:01 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Sep 22 10:27:01 2015 +0200
----------------------------------------------------------------------
.../java/org/apache/camel/impl/RouteSedaSuspendResumeTest.java | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/969f2903/camel-core/src/test/java/org/apache/camel/impl/RouteSedaSuspendResumeTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/impl/RouteSedaSuspendResumeTest.java b/camel-core/src/test/java/org/apache/camel/impl/RouteSedaSuspendResumeTest.java
index cc103ee..94937b4 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/RouteSedaSuspendResumeTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/RouteSedaSuspendResumeTest.java
@@ -48,6 +48,9 @@ public class RouteSedaSuspendResumeTest extends ContextTestSupport {
assertEquals("Suspended", ((StatefulService) route).getStatus().name());
}
+ // need to give seda consumer thread time to idle
+ Thread.sleep(500);
+
template.sendBody("seda:foo", "B");
mock.assertIsSatisfied(1000);
[4/8] 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/20ec49a6
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/20ec49a6
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/20ec49a6
Branch: refs/heads/master
Commit: 20ec49a628a5e1ef0eeef241113b8404afed29fd
Parents: c909f16
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Sep 22 09:47:39 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Sep 22 09:47:39 2015 +0200
----------------------------------------------------------------------
.../src/main/java/org/apache/camel/impl/DefaultExchange.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/20ec49a6/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
index 05ffd76..58aa50b 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
@@ -80,7 +80,7 @@ public final class DefaultExchange implements Exchange {
@Override
public String toString() {
- return String.format("Exchange[%s][%s]", exchangeId, out == null ? in : out);
+ return String.format("Exchange[%s][%s]", exchangeId == null ? "" : exchangeId, out == null ? in : out);
}
public Exchange copy() {
[2/8] camel git commit: CAMEL-9131: Add more labels to Camel
components for options.
Posted by da...@apache.org.
CAMEL-9131: Add more labels to Camel components for options.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/bd022bc5
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/bd022bc5
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/bd022bc5
Branch: refs/heads/master
Commit: bd022bc560686dbeafbbc12155fb77cc9f257d8c
Parents: de2aab1
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Sep 22 09:26:28 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Sep 22 09:26:28 2015 +0200
----------------------------------------------------------------------
.../component/netty/NettyConfiguration.java | 32 +++++++-------
.../NettyServerBootstrapConfiguration.java | 44 ++++++++++----------
2 files changed, 38 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/bd022bc5/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
index 5a148c0..3c0a82f 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
@@ -60,45 +60,45 @@ public class NettyConfiguration extends NettyServerBootstrapConfiguration implem
private List<ChannelHandler> decoders = new ArrayList<ChannelHandler>();
@UriParam
private boolean disconnect;
- @UriParam(label = "producer", defaultValue = "true")
+ @UriParam(label = "producer,advanced", defaultValue = "true")
private boolean lazyChannelCreation = true;
- @UriParam
+ @UriParam(label = "advanced")
private boolean transferExchange;
@UriParam(label = "consumer", defaultValue = "true")
private boolean disconnectOnNoReply = true;
- @UriParam(label = "consumer", defaultValue = "WARN")
+ @UriParam(label = "consumer,advanced", defaultValue = "WARN")
private LoggingLevel noReplyLogLevel = LoggingLevel.WARN;
- @UriParam(label = "consumer", defaultValue = "WARN")
+ @UriParam(label = "consumer,advanced", defaultValue = "WARN")
private LoggingLevel serverExceptionCaughtLogLevel = LoggingLevel.WARN;
- @UriParam(label = "consumer", defaultValue = "DEBUG")
+ @UriParam(label = "consumer,advanced", defaultValue = "DEBUG")
private LoggingLevel serverClosedChannelExceptionCaughtLogLevel = LoggingLevel.DEBUG;
@UriParam(defaultValue = "true")
private boolean allowDefaultCodec = true;
- @UriParam(label = "producer")
+ @UriParam(label = "producer,advanced")
private ClientPipelineFactory clientPipelineFactory;
//CAMEL-8031 Moved this option to NettyComponent
private int maximumPoolSize = 16;
- @UriParam(label = "consumer", defaultValue = "true")
+ @UriParam(label = "consumer,advanced", defaultValue = "true")
private boolean orderedThreadPoolExecutor = true;
- @UriParam(label = "producer", defaultValue = "-1")
+ @UriParam(label = "producer,advanced", defaultValue = "-1")
private int producerPoolMaxActive = -1;
- @UriParam(label = "producer")
+ @UriParam(label = "producer,advanced")
private int producerPoolMinIdle;
- @UriParam(label = "producer", defaultValue = "100")
+ @UriParam(label = "producer,advanced", defaultValue = "100")
private int producerPoolMaxIdle = 100;
- @UriParam(label = "producer", defaultValue = "" + 5 * 60 * 1000L)
+ @UriParam(label = "producer,advanced", defaultValue = "" + 5 * 60 * 1000L)
private long producerPoolMinEvictableIdle = 5 * 60 * 1000L;
- @UriParam(label = "producer", defaultValue = "true")
+ @UriParam(label = "producer,advanced", defaultValue = "true")
private boolean producerPoolEnabled = true;
- @UriParam(label = "producer")
+ @UriParam(label = "producer,advanced")
private boolean udpConnectionlessSending;
@UriParam(label = "consumer")
private boolean clientMode;
- @UriParam(label = "producer")
+ @UriParam(label = "producer,advanced")
private boolean useChannelBuffer;
- @UriParam(label = "consumer", defaultValue = "" + 10 * 1024 * 1024L)
+ @UriParam(label = "consumer,advanced", defaultValue = "" + 10 * 1024 * 1024L)
private long maxChannelMemorySize = 10 * 1024 * 1024L;
- @UriParam(label = "consumer", defaultValue = "" + 200 * 1024 * 1024L)
+ @UriParam(label = "consumer,advanced", defaultValue = "" + 200 * 1024 * 1024L)
private long maxTotalMemorySize = 200 * 1024 * 1024L;
/**
http://git-wip-us.apache.org/repos/asf/camel/blob/bd022bc5/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyServerBootstrapConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyServerBootstrapConfiguration.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyServerBootstrapConfiguration.java
index 9832192..b33d1d5 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyServerBootstrapConfiguration.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyServerBootstrapConfiguration.java
@@ -41,15 +41,15 @@ public class NettyServerBootstrapConfiguration implements Cloneable {
protected int port;
@UriParam(label = "consumer")
protected boolean broadcast;
- @UriParam(defaultValue = "65536")
+ @UriParam(label = "advanced", defaultValue = "65536")
protected long sendBufferSize = 65536;
- @UriParam(defaultValue = "65536")
+ @UriParam(label = "advanced", defaultValue = "65536")
protected long receiveBufferSize = 65536;
- @UriParam
+ @UriParam(label = "advanced")
protected int receiveBufferSizePredictor;
- @UriParam(label = "consumer", defaultValue = "1")
+ @UriParam(label = "consumer,advanced", defaultValue = "1")
protected int bossCount = 1;
- @UriParam(label = "consumer")
+ @UriParam(label = "consumer,advanced")
protected int workerCount;
@UriParam(defaultValue = "true")
protected boolean keepAlive = true;
@@ -59,43 +59,43 @@ public class NettyServerBootstrapConfiguration implements Cloneable {
protected boolean reuseAddress = true;
@UriParam(label = "producer", defaultValue = "10000")
protected long connectTimeout = 10000;
- @UriParam(label = "consumer")
+ @UriParam(label = "consumer,advanced")
protected int backlog;
- @UriParam(label = "consumer")
+ @UriParam(label = "consumer,advanced")
protected ServerPipelineFactory serverPipelineFactory;
- @UriParam(label = "consumer")
+ @UriParam(label = "consumer,advanced")
protected NettyServerBootstrapFactory nettyServerBootstrapFactory;
protected Map<String, Object> options;
// SSL options is also part of the server bootstrap as the server listener on port X is either plain or SSL
- @UriParam
+ @UriParam(label = "security")
protected boolean ssl;
- @UriParam
+ @UriParam(label = "security")
protected boolean sslClientCertHeaders;
- @UriParam
+ @UriParam(label = "security")
protected SslHandler sslHandler;
- @UriParam
+ @UriParam(label = "security")
protected SSLContextParameters sslContextParameters;
- @UriParam(label = "consumer")
+ @UriParam(label = "consumer,security")
protected boolean needClientAuth;
- @UriParam
+ @UriParam(label = "security")
protected File keyStoreFile;
- @UriParam
+ @UriParam(label = "security")
protected File trustStoreFile;
- @UriParam
+ @UriParam(label = "security")
protected String keyStoreResource;
- @UriParam
+ @UriParam(label = "security")
protected String trustStoreResource;
- @UriParam(defaultValue = "JKS")
+ @UriParam(defaultValue = "JKS", label = "security")
protected String keyStoreFormat = "JKS";
- @UriParam(defaultValue = "SunX509")
+ @UriParam(defaultValue = "SunX509", label = "security")
protected String securityProvider = "SunX509";
- @UriParam(defaultValue = DEFAULT_ENABLED_PROTOCOLS)
+ @UriParam(defaultValue = DEFAULT_ENABLED_PROTOCOLS, label = "security")
protected String enabledProtocols = DEFAULT_ENABLED_PROTOCOLS;
- @UriParam
+ @UriParam(label = "security")
protected String passphrase;
protected BossPool bossPool;
protected WorkerPool workerPool;
- @UriParam(label = "consumer")
+ @UriParam(label = "consumer,advanced")
protected String networkInterface;
public String getAddress() {