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: [email protected]
For additional commands, e-mail: [email protected]