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