You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2010/03/18 20:41:49 UTC
svn commit: r924965 - in
/james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel:
JMSSelectorPollingConsumer.java JMSSelectorPollingEndpoint.java
Author: norman
Date: Thu Mar 18 19:41:49 2010
New Revision: 924965
URL: http://svn.apache.org/viewvc?rev=924965&view=rev
Log:
Replace use of ConsumerTemplate with "normal" consumer to prevent OOM. (JAMES-981)
Modified:
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingConsumer.java
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingEndpoint.java
Modified: james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingConsumer.java
URL: http://svn.apache.org/viewvc/james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingConsumer.java?rev=924965&r1=924964&r2=924965&view=diff
==============================================================================
--- james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingConsumer.java (original)
+++ james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingConsumer.java Thu Mar 18 19:41:49 2010
@@ -19,8 +19,9 @@
package org.apache.james.transport.camel;
-import org.apache.camel.ConsumerTemplate;
+import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
+import org.apache.camel.PollingConsumer;
import org.apache.camel.Processor;
import org.apache.camel.impl.DefaultEndpoint;
import org.apache.camel.impl.ScheduledPollConsumer;
@@ -37,12 +38,12 @@ import org.apache.camel.impl.ScheduledPo
*/
public class JMSSelectorPollingConsumer extends ScheduledPollConsumer{
- private ConsumerTemplate consumerTemplate;
+ private CamelContext context;
private String uri;
- public JMSSelectorPollingConsumer(DefaultEndpoint endpoint, Processor processor, ConsumerTemplate consumerTemplate) {
+ public JMSSelectorPollingConsumer(DefaultEndpoint endpoint, Processor processor, CamelContext context) {
super(endpoint, processor);
- this.consumerTemplate = consumerTemplate;
+ this.context = context;
}
/**
@@ -67,12 +68,15 @@ public class JMSSelectorPollingConsumer
consumerUri.append(" < ");
consumerUri.append(System.currentTimeMillis());
+ PollingConsumer consumer = context.getEndpoint(consumerUri.toString()).createPollingConsumer();
+ consumer.start();
// process every exchange which is ready. If no exchange is left break the loop
while(true) {
- Exchange ex = consumerTemplate.receiveNoWait(consumerUri.toString());
+ Exchange ex = consumer.receiveNoWait();
if (ex != null) {
getProcessor().process(ex);
} else {
+ consumer.stop();
break;
}
Modified: james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingEndpoint.java
URL: http://svn.apache.org/viewvc/james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingEndpoint.java?rev=924965&r1=924964&r2=924965&view=diff
==============================================================================
--- james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingEndpoint.java (original)
+++ james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingEndpoint.java Thu Mar 18 19:41:49 2010
@@ -56,7 +56,7 @@ public class JMSSelectorPollingEndpoint
* @see org.apache.camel.Endpoint#createConsumer(org.apache.camel.Processor)
*/
public Consumer createConsumer(Processor processor) throws Exception {
- JMSSelectorPollingConsumer consumer = new JMSSelectorPollingConsumer(this,processor,getCamelContext().createConsumerTemplate());
+ JMSSelectorPollingConsumer consumer = new JMSSelectorPollingConsumer(this,processor,getCamelContext());
configureConsumer(consumer);
return consumer;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org