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/12/10 15:46:09 UTC
camel git commit: Allow component developers to set a timeout for
default scheduled poll consumer
Repository: camel
Updated Branches:
refs/heads/master 9013fe82e -> 4e43476ae
Allow component developers to set a timeout for default scheduled poll consumer
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/4e43476a
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/4e43476a
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/4e43476a
Branch: refs/heads/master
Commit: 4e43476ae014ea303405e6ae66120e60c8827331
Parents: 9013fe8
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Dec 10 15:43:19 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Dec 10 15:46:01 2015 +0100
----------------------------------------------------------------------
.../impl/DefaultScheduledPollConsumer.java | 29 +++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/4e43476a/camel-core/src/main/java/org/apache/camel/impl/DefaultScheduledPollConsumer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultScheduledPollConsumer.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultScheduledPollConsumer.java
index e827fdc..847574d 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultScheduledPollConsumer.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultScheduledPollConsumer.java
@@ -32,6 +32,7 @@ import org.apache.camel.util.ServiceHelper;
*/
public class DefaultScheduledPollConsumer extends ScheduledPollConsumer {
private PollingConsumer pollingConsumer;
+ private int timeout;
public DefaultScheduledPollConsumer(DefaultEndpoint defaultEndpoint, Processor processor) {
super(defaultEndpoint, processor);
@@ -45,7 +46,15 @@ public class DefaultScheduledPollConsumer extends ScheduledPollConsumer {
int messagesPolled = 0;
while (isPollAllowed()) {
- Exchange exchange = pollingConsumer.receiveNoWait();
+ Exchange exchange;
+ if (timeout == 0) {
+ exchange = pollingConsumer.receiveNoWait();
+ } else if (timeout < 0) {
+ exchange = pollingConsumer.receive();
+ } else {
+ exchange = pollingConsumer.receive(timeout);
+ }
+
if (exchange == null) {
break;
}
@@ -67,6 +76,24 @@ public class DefaultScheduledPollConsumer extends ScheduledPollConsumer {
return messagesPolled;
}
+ public int getTimeout() {
+ return timeout;
+ }
+
+ /**
+ * Sets a timeout to use with {@link PollingConsumer}.
+ * <br/>
+ * <br/>Use <tt>timeout < 0</tt> for {@link PollingConsumer#receive()}.
+ * <br/>Use <tt>timeout == 0</tt> for {@link PollingConsumer#receiveNoWait()}.
+ * <br/>Use <tt>timeout > 0</tt> for {@link PollingConsumer#receive(long)}}.
+ * <br/> The default timeout value is <tt>0</tt>
+ *
+ * @param timeout the timeout value
+ */
+ public void setTimeout(int timeout) {
+ this.timeout = timeout;
+ }
+
@Override
protected void doStart() throws Exception {
pollingConsumer = getEndpoint().createPollingConsumer();