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 2009/02/28 12:34:33 UTC
svn commit: r748821 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/processor/DelayProcessorSupport.java
test/java/org/apache/camel/processor/DelayerTest.java
test/java/org/apache/camel/processor/DelayerWhileShutdownTest.java
Author: davsclaus
Date: Sat Feb 28 11:34:33 2009
New Revision: 748821
URL: http://svn.apache.org/viewvc?rev=748821&view=rev
Log:
CAMEL-1406: DelayProcessor now properly supports shutting down while sleeping
Added:
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DelayerWhileShutdownTest.java
- copied, changed from r748781, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DelayerTest.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DelayerTest.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java?rev=748821&r1=748820&r2=748821&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java Sat Feb 28 11:34:33 2009
@@ -73,7 +73,8 @@
* @param exchange the exchange being processed
*/
protected void waitUntil(long time, Exchange exchange) throws Exception {
- while (true) {
+ // only run is we are started
+ while (isRunAllowed()) {
long delay = time - currentSystemTime();
if (delay < 0) {
return;
@@ -109,7 +110,7 @@
* case differently
*/
protected void handleSleepInteruptedException(InterruptedException e) {
- LOG.debug("Sleep interupted: " + e, e);
+ LOG.debug("Sleep interrupted, are we stopping? " + (isStopping() || isStopped()));
}
protected long currentSystemTime() {
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DelayerTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DelayerTest.java?rev=748821&r1=748820&r2=748821&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DelayerTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DelayerTest.java Sat Feb 28 11:34:33 2009
@@ -29,8 +29,7 @@
MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
resultEndpoint.expectedMessageCount(0);
- template.sendBodyAndHeader("seda:a", "<hello>world!</hello>", "JMSTimestamp", System
- .currentTimeMillis());
+ template.sendBodyAndHeader("seda:a", "<hello>world!</hello>", "JMSTimestamp", System.currentTimeMillis());
resultEndpoint.assertIsSatisfied();
// now if we wait a bit longer we should receive the message!
@@ -45,12 +44,6 @@
resultEndpoint.assertIsSatisfied();
}
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- }
-
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
public void configure() {
Copied: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DelayerWhileShutdownTest.java (from r748781, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DelayerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DelayerWhileShutdownTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DelayerWhileShutdownTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DelayerTest.java&r1=748781&r2=748821&rev=748821&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DelayerTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DelayerWhileShutdownTest.java Sat Feb 28 11:34:33 2009
@@ -21,46 +21,28 @@
import org.apache.camel.component.mock.MockEndpoint;
/**
+ * Delayer while shutting down so its interrupted and will also stop.
+ *
* @version $Revision$
*/
-public class DelayerTest extends ContextTestSupport {
+public class DelayerWhileShutdownTest extends ContextTestSupport {
public void testSendingMessageGetsDelayed() throws Exception {
- MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
- resultEndpoint.expectedMessageCount(0);
+ MockEndpoint mock = getMockEndpoint("mock:result");
+ mock.expectedBodiesReceived("Short delay");
- template.sendBodyAndHeader("seda:a", "<hello>world!</hello>", "JMSTimestamp", System
- .currentTimeMillis());
- resultEndpoint.assertIsSatisfied();
-
- // now if we wait a bit longer we should receive the message!
- resultEndpoint.expectedMessageCount(1);
- resultEndpoint.assertIsSatisfied();
-
- template.sendBody("seda:b", "<hello>world!</hello>");
- resultEndpoint.assertIsSatisfied();
-
- // now if we wait a bit longer we should receive the message!
- resultEndpoint.expectedMessageCount(1);
- resultEndpoint.assertIsSatisfied();
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
+ template.sendBody("seda:a", "Long delay");
+ template.sendBody("seda:b", "Short delay");
+ assertMockEndpointsSatisfied();
}
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
public void configure() {
- // START SNIPPET: ex
- from("seda:a").delay(header("JMSTimestamp"), 3000).to("mock:result");
- // END SNIPPET: ex
- // START SNIPPET: ex2
- from("seda:b").delay(3000).to("mock:result");
- // END SNIPPET: ex2
+ from("seda:a").delay(5000).to("mock:result");
+ from("seda:b").delay(10).to("mock:result");
}
};
}
-}
+}
\ No newline at end of file