Author: norman
Date: Sun Feb 21 20:50:07 2010
New Revision: 912398
URL: http://svn.apache.org/viewvc?rev=912398&view=rev
Log:
correct handling of ghost mails (JAMES-971)
Modified:
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolComponent.java
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolConsumer.java
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolEndPoint.java
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolProducer.java
Modified:
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolComponent.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolComponent.java?rev=912398&r1=912397&r2=912398&view=diff
==============================================================================
---
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolComponent.java
(original)
+++
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolComponent.java
Sun Feb 21 20:50:07 2010
@@ -26,14 +26,17 @@
import org.apache.camel.Endpoint;
import org.apache.camel.impl.DefaultComponent;
+import org.apache.commons.logging.Log;
+import org.apache.james.lifecycle.LogEnabled;
import org.apache.james.services.SpoolManager;
import org.apache.james.services.SpoolRepository;
import org.apache.mailet.MailetConfig;
import org.apache.mailet.MatcherConfig;
-public class SpoolComponent extends DefaultComponent implements SpoolManager {
+public class SpoolComponent extends DefaultComponent implements SpoolManager,
LogEnabled {
private SpoolRepository spool;
+ private Log log;
@Resource(name="spoolrepository")
public void setSpoolRepository(SpoolRepository spool) {
@@ -43,7 +46,7 @@
@Override
protected Endpoint createEndpoint(String uri, String remaining,
Map<String, Object> parameters) throws Exception {
- return new SpoolEndPoint(uri,this, spool);
+ return new SpoolEndPoint(uri,this, spool, log);
}
public List<MailetConfig> getMailetConfigs(String processorName) {
@@ -60,4 +63,12 @@
// TODO Auto-generated method stub
return null;
}
+
+ /*
+ * (non-Javadoc)
+ * @see
org.apache.james.lifecycle.LogEnabled#setLog(org.apache.commons.logging.Log)
+ */
+ public void setLog(Log log) {
+ this.log = log;
+ }
}
Modified:
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolConsumer.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolConsumer.java?rev=912398&r1=912397&r2=912398&view=diff
==============================================================================
---
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolConsumer.java
(original)
+++
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolConsumer.java
Sun Feb 21 20:50:07 2010
@@ -20,11 +20,10 @@
package org.apache.james.transport.camel;
import org.apache.camel.Exchange;
-import org.apache.camel.ExchangePattern;
import org.apache.camel.Processor;
import org.apache.camel.impl.DefaultConsumer;
import org.apache.camel.impl.DefaultEndpoint;
-import org.apache.james.lifecycle.LifecycleUtil;
+import org.apache.commons.logging.Log;
import org.apache.james.services.SpoolRepository;
import org.apache.mailet.Mail;
@@ -33,11 +32,13 @@
private SpoolRepository spool;
private Processor processor;
+ private Log log;
- public SpoolConsumer(DefaultEndpoint endpoint, Processor processor,
SpoolRepository spool) {
+ public SpoolConsumer(DefaultEndpoint endpoint, Processor processor,
SpoolRepository spool, Log log) {
super(endpoint, processor);
this.spool = spool;
this.processor = processor;
+ this.log = log;
}
@@ -46,26 +47,6 @@
Mail mail;
try {
mail = spool.accept();
-
- // Only remove an email from the spool is processing is
- // complete, or if it has no recipients
- if ((Mail.GHOST.equals(mail.getState())) ||
- (mail.getRecipients() == null) ||
- (mail.getRecipients().size() == 0)) {
- spool.remove(mail.getName());
- //if (logger.isDebugEnabled()) {
- StringBuffer debugBuffer =
- new StringBuffer(64)
- .append("==== Removed from spool mail ")
- .append(mail.getName())
- .append("====");
- // logger.debug(debugBuffer.toString());
- // }
- System.out.println(debugBuffer.toString());
- LifecycleUtil.dispose(mail);
-
- }
-
ex.setIn(new MailMessage(mail));
processor.process(ex);
} catch (Exception e) {
Modified:
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolEndPoint.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolEndPoint.java?rev=912398&r1=912397&r2=912398&view=diff
==============================================================================
---
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolEndPoint.java
(original)
+++
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolEndPoint.java
Sun Feb 21 20:50:07 2010
@@ -23,16 +23,19 @@
import org.apache.camel.Processor;
import org.apache.camel.Producer;
import org.apache.camel.impl.DefaultEndpoint;
+import org.apache.commons.logging.Log;
import org.apache.james.services.SpoolRepository;
public class SpoolEndPoint extends DefaultEndpoint{
private SpoolRepository spool;
+ private Log log;
- public SpoolEndPoint(String endpointUri, SpoolComponent component,
SpoolRepository spool) {
+ public SpoolEndPoint(String endpointUri, SpoolComponent component,
SpoolRepository spool, Log log) {
super(endpointUri, component);
this.spool = spool;
+ this.log = log;
}
@@ -41,7 +44,7 @@
* @see org.apache.camel.Endpoint#createProducer()
*/
public Producer createProducer() throws Exception {
- return new SpoolProducer(this,spool);
+ return new SpoolProducer(this,spool,log);
}
/*
@@ -58,8 +61,7 @@
* @see
org.apache.camel.Endpoint#createConsumer(org.apache.camel.Processor)
*/
public Consumer createConsumer(Processor processor) throws Exception {
- SpoolConsumer consumer = new SpoolConsumer(this,processor,spool);
- //configureConsumer(consumer);
+ SpoolConsumer consumer = new SpoolConsumer(this,processor,spool,log);
return consumer;
}
Modified:
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolProducer.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolProducer.java?rev=912398&r1=912397&r2=912398&view=diff
==============================================================================
---
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolProducer.java
(original)
+++
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolProducer.java
Sun Feb 21 20:50:07 2010
@@ -22,33 +22,50 @@
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.impl.DefaultProducer;
-import org.apache.camel.util.ExchangeHelper;
+import org.apache.commons.logging.Log;
+import org.apache.james.lifecycle.LifecycleUtil;
import org.apache.james.services.SpoolRepository;
import org.apache.mailet.Mail;
-public class SpoolProducer extends DefaultProducer{
+public class SpoolProducer extends DefaultProducer {
private SpoolRepository spool;
+ private Log log;
- public SpoolProducer(Endpoint endpoint, SpoolRepository spool) {
+ public SpoolProducer(Endpoint endpoint, SpoolRepository spool, Log log) {
super(endpoint);
this.spool = spool;
+ this.log = log;
}
/*
* (non-Javadoc)
+ *
* @see org.apache.camel.Processor#process(org.apache.camel.Exchange)
*/
public void process(Exchange exchange) throws Exception {
- Exchange newExchange = getEndpoint().createExchange(exchange);
- Mail mail = (Mail) newExchange.getIn().getBody();
- try {
- spool.store(mail);
- } catch (Exception e) {
- e.printStackTrace();
- throw e;
+ // Exchange newExchange = getEndpoint().createExchange(exchange);
+ Mail mail = (Mail) exchange.getIn().getBody();
+
+ // Only remove an email from the spool is processing is
+ // complete, or if it has no recipients
+ if ((Mail.GHOST.equals(mail.getState())) || (mail.getRecipients() ==
null) || (mail.getRecipients().size() == 0)) {
+ spool.remove(mail.getName());
+ if (log.isDebugEnabled()) {
+ StringBuffer debugBuffer = new StringBuffer(64).append("====
Removed from spool mail ").append(mail.getName()).append("====");
+ log.debug(debugBuffer.toString());
+ }
+ LifecycleUtil.dispose(mail);
+
+ } else {
+
+ try {
+ spool.store(mail);
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw e;
+ }
}
- ExchangeHelper.copyResults(exchange, newExchange);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]