Author: norman
Date: Wed Nov 3 19:43:58 2010
New Revision: 1030632
URL: http://svn.apache.org/viewvc?rev=1030632&view=rev
Log:
Remove sendMail method from MailServer interface (JAMES-1110)
Modified:
james/server/trunk/core-api/src/main/java/org/apache/james/services/MailServer.java
james/server/trunk/core-function/src/main/java/org/apache/james/JamesMailServer.java
james/server/trunk/core-library/src/test/java/org/apache/james/services/MockMailServer.java
james/server/trunk/fetchmail/pom.xml
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/FetchMail.java
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/ParsedConfiguration.java
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/ProcessorAbstract.java
james/server/trunk/mailetcontainer-library/src/main/java/org/apache/james/mailetcontainer/lib/JamesMailetContext.java
james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/AbstractSMTPServerTest.java
james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
Modified:
james/server/trunk/core-api/src/main/java/org/apache/james/services/MailServer.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core-api/src/main/java/org/apache/james/services/MailServer.java?rev=1030632&r1=1030631&r2=1030632&view=diff
==============================================================================
---
james/server/trunk/core-api/src/main/java/org/apache/james/services/MailServer.java
(original)
+++
james/server/trunk/core-api/src/main/java/org/apache/james/services/MailServer.java
Wed Nov 3 19:43:58 2010
@@ -21,9 +21,7 @@
package org.apache.james.services;
-import javax.mail.MessagingException;
-import org.apache.mailet.Mail;
import org.apache.mailet.MailAddress;
/**
@@ -33,16 +31,6 @@ import org.apache.mailet.MailAddress;
* @version This is $Revision$
*/
public interface MailServer{
-
- /**
- * Pass a Mail to this MailServer for processing
- *
- * @param mail the Mail to be processed
- * @throws MessagingException
- */
- void sendMail(Mail mail)
- throws MessagingException;
-
/**
* Generate a new identifier/name for a mail being processed by this
server.
Modified:
james/server/trunk/core-function/src/main/java/org/apache/james/JamesMailServer.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core-function/src/main/java/org/apache/james/JamesMailServer.java?rev=1030632&r1=1030631&r2=1030632&view=diff
==============================================================================
---
james/server/trunk/core-function/src/main/java/org/apache/james/JamesMailServer.java
(original)
+++
james/server/trunk/core-function/src/main/java/org/apache/james/JamesMailServer.java
Wed Nov 3 19:43:58 2010
@@ -26,7 +26,6 @@ import java.util.Locale;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
-import javax.mail.MessagingException;
import javax.mail.internet.ParseException;
import org.apache.commons.configuration.ConfigurationException;
@@ -35,12 +34,8 @@ import org.apache.commons.logging.Log;
import org.apache.james.dnsservice.api.DNSService;
import org.apache.james.domainlist.api.DomainList;
import org.apache.james.lifecycle.Configurable;
-import org.apache.james.lifecycle.LifecycleUtil;
import org.apache.james.lifecycle.LogEnabled;
-import org.apache.james.queue.api.MailQueue;
-import org.apache.james.queue.api.MailQueueFactory;
import org.apache.james.services.MailServer;
-import org.apache.mailet.Mail;
import org.apache.mailet.MailAddress;
/**
@@ -82,11 +77,7 @@ public class JamesMailServer
private Log logger;
- private DNSService dns;
-
- private MailQueueFactory queueFactory;
-
- private MailQueue queue;
+ private DNSService dns;
private MailAddress postmaster;
@@ -100,11 +91,6 @@ public class JamesMailServer
this.dns = dns;
}
- @Resource(name="mailQueueFactory")
- public void setMailQueueFactory(MailQueueFactory queueFactory) {
- this.queueFactory = queueFactory;
- }
-
/*
* (non-Javadoc)
* @see
org.apache.james.lifecycle.LogEnabled#setLog(org.apache.commons.logging.Log)
@@ -126,8 +112,6 @@ public class JamesMailServer
public void init() throws Exception {
logger.info("JAMES init...");
-
- queue = queueFactory.getQueue("spool");
if (conf.getKeys("usernames").hasNext()) {
throw new ConfigurationException("<usernames> parameter in
James block was removed. Please configure this data in UsersRepository block");
@@ -190,30 +174,6 @@ public class JamesMailServer
/**
- * @see org.apache.james.services.MailServer#sendMail(Mail)
- */
- public void sendMail(Mail mail) throws MessagingException {
- try {
- queue.enQueue(mail);
-
- } catch (Exception e) {
- logger.error("Error storing message: " + e.getMessage(),e);
- LifecycleUtil.dispose(mail);
-
- throw new MessagingException("Exception spooling message: " +
e.getMessage(), e);
-
- }
- if (logger.isDebugEnabled()) {
- StringBuffer logBuffer =
- new StringBuffer(64)
- .append("Mail ")
- .append(mail.getName())
- .append(" pushed in spool");
- logger.debug(logBuffer.toString());
- }
- }
-
- /**
* <p>Note that this method ensures that James cannot be run in a
distributed
* fashion.</p>
* <p>Two instances may return the same ID.
Modified:
james/server/trunk/core-library/src/test/java/org/apache/james/services/MockMailServer.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/test/java/org/apache/james/services/MockMailServer.java?rev=1030632&r1=1030631&r2=1030632&view=diff
==============================================================================
---
james/server/trunk/core-library/src/test/java/org/apache/james/services/MockMailServer.java
(original)
+++
james/server/trunk/core-library/src/test/java/org/apache/james/services/MockMailServer.java
Wed Nov 3 19:43:58 2010
@@ -19,39 +19,17 @@
package org.apache.james.services;
-import java.util.concurrent.LinkedBlockingQueue;
-import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
-import org.apache.james.lifecycle.Disposable;
-import org.apache.james.lifecycle.LifecycleUtil;
-import org.apache.mailet.Mail;
import org.apache.mailet.MailAddress;
import org.apache.mailet.base.test.MailUtil;
-public class MockMailServer implements MailServer, Disposable {
+public class MockMailServer implements MailServer {
- private int m_maxMessageSizeBytes = 0;
-
- private final LinkedBlockingQueue<Mail> mails = new
LinkedBlockingQueue<Mail>();
private boolean virtualHosting;
- private Mail lastMail;
-
-
- public void sendMail(Mail mail) throws MessagingException {
- int bodySize = mail.getMessage().getSize();
- if (m_maxMessageSizeBytes != 0 && m_maxMessageSizeBytes < bodySize)
throw new MessagingException("message size exception");
-
- try {
- this.lastMail = mail;
- mails.put(mail);
- } catch (InterruptedException e) {
- throw new MessagingException("Unable to queue", e);
- }
- }
public synchronized String getId() {
return MailUtil.newId();
@@ -60,29 +38,6 @@ public class MockMailServer implements M
public boolean isLocalServer(String serverName) {
return "localhost".equals(serverName);
}
-
- public Mail getLastMail()
- {
- if (mails.size() == 0) return null;
- return lastMail;
-
- }
-
- public void setMaxMessageSizeBytes(int maxMessageSizeBytes) {
- m_maxMessageSizeBytes = maxMessageSizeBytes;
- }
-
- public void dispose() {
- while(mails.isEmpty() == false) {
- try {
- LifecycleUtil.dispose(mails.take());
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
-
- }
-
public void setVirtualHosting(boolean virtualHosting) {
this.virtualHosting = virtualHosting;
Modified: james/server/trunk/fetchmail/pom.xml
URL:
http://svn.apache.org/viewvc/james/server/trunk/fetchmail/pom.xml?rev=1030632&r1=1030631&r2=1030632&view=diff
==============================================================================
--- james/server/trunk/fetchmail/pom.xml (original)
+++ james/server/trunk/fetchmail/pom.xml Wed Nov 3 19:43:58 2010
@@ -30,6 +30,10 @@
<dependencies>
<dependency>
<groupId>org.apache.james</groupId>
+ <artifactId>james-server-queue-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
<artifactId>james-server-core-api</artifactId>
</dependency>
<dependency>
Modified:
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/FetchMail.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/FetchMail.java?rev=1030632&r1=1030631&r2=1030632&view=diff
==============================================================================
---
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/FetchMail.java
(original)
+++
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/FetchMail.java
Wed Nov 3 19:43:58 2010
@@ -30,7 +30,6 @@ import java.util.List;
import java.util.Map;
import java.util.Properties;
-import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.Session;
@@ -42,6 +41,7 @@ import org.apache.commons.logging.Log;
import org.apache.james.dnsservice.api.DNSService;
import org.apache.james.lifecycle.Configurable;
import org.apache.james.lifecycle.LogEnabled;
+import org.apache.james.queue.api.MailQueue;
import org.apache.james.services.MailServer;
import org.apache.james.user.api.UsersRepository;
@@ -404,6 +404,8 @@ public class FetchMail implements Runnab
private DNSService dnsServer;
private Log logger;
+
+ private MailQueue queue;
/**
* Constructor for POP3mail.
@@ -657,18 +659,15 @@ public class FetchMail implements Runnab
}
- @Resource(name="dnsservice")
public void setDNSService(DNSService dns) {
this.dnsServer = dns;
}
- @Resource(name="mailserver")
public void setMailServer(MailServer mailserver) {
this.fieldServer = mailserver;
}
- @Resource(name="localusersrepository")
public void setUsersRepository(UsersRepository urepos) {
this.fieldLocalUsers = urepos;
}
@@ -992,5 +991,13 @@ public class FetchMail implements Runnab
}
}
}
+
+ public void setMailQueue(MailQueue queue) {
+ this.queue = queue;
+ }
+
+ public MailQueue getMailQueue() {
+ return queue;
+ }
}
Modified:
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java?rev=1030632&r1=1030631&r2=1030632&view=diff
==============================================================================
---
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java
(original)
+++
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java
Wed Nov 3 19:43:58 2010
@@ -38,6 +38,8 @@ import org.apache.commons.logging.Log;
import org.apache.james.dnsservice.api.DNSService;
import org.apache.james.lifecycle.Configurable;
import org.apache.james.lifecycle.LogEnabled;
+import org.apache.james.queue.api.MailQueue;
+import org.apache.james.queue.api.MailQueueFactory;
import org.apache.james.services.MailServer;
import org.apache.james.user.api.UsersRepository;
@@ -78,6 +80,17 @@ public class FetchScheduler implements F
private Log logger;
+
+ private MailQueue queue;
+ private MailQueueFactory queueFactory;
+
+
+
+ @Resource(name="mailQueueFactory")
+ public void setMailQueueFactory(MailQueueFactory queueFactory) {
+ this.queueFactory = queueFactory;
+ }
+
@Resource(name="scheduler")
public void setScheduledExecutorService(ScheduledExecutorService
scheduler) {
this.scheduler = scheduler;
@@ -116,6 +129,7 @@ public class FetchScheduler implements F
enabled = conf.getBoolean("[...@enabled]", false);
if (enabled)
{
+ queue = queueFactory.getQueue(MailQueueFactory.SPOOL);
List<HierarchicalConfiguration> fetchConfs =
conf.configurationsAt("fetch");
for (int i = 0; i < fetchConfs.size(); i++)
@@ -130,7 +144,7 @@ public class FetchScheduler implements F
fetcher.setDNSService(dns);
fetcher.setMailServer(mailserver);
fetcher.setUsersRepository(urepos);
-
+ fetcher.setMailQueue(queue);
fetcher.configure(fetchConf);
// initialize scheduling
Modified:
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java?rev=1030632&r1=1030631&r2=1030632&view=diff
==============================================================================
---
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
(original)
+++
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
Wed Nov 3 19:43:58 2010
@@ -946,8 +946,8 @@ public class MessageProcessor extends Pr
@SuppressWarnings("unchecked")
protected void sendMail(Mail mail) throws MessagingException
{
- // send the mail
- getServer().sendMail(mail);
+ // queue the mail
+ getMailQueue().enQueue(mail);
// Update the flags of the received message
if (!isLeave())
Modified:
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/ParsedConfiguration.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/ParsedConfiguration.java?rev=1030632&r1=1030631&r2=1030632&view=diff
==============================================================================
---
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/ParsedConfiguration.java
(original)
+++
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/ParsedConfiguration.java
Wed Nov 3 19:43:58 2010
@@ -32,6 +32,7 @@ import org.apache.commons.configuration.
import org.apache.commons.configuration.HierarchicalConfiguration;
import org.apache.commons.logging.Log;
import org.apache.james.dnsservice.api.DNSService;
+import org.apache.james.queue.api.MailQueue;
import org.apache.james.services.MailServer;
import org.apache.james.user.api.UsersRepository;
import org.apache.mailet.MailAddress;
@@ -308,6 +309,8 @@ class ParsedConfiguration
*/
private DNSService dnsServer;
+ private MailQueue queue;
+
/**
@@ -1180,5 +1183,13 @@ protected void setDNSServer(DNSService d
fieldRejectRemoteReceivedHeaderInvalid =
rejectRemoteReceivedHeaderInvalid;
}
+
+ public void setMailQueue(MailQueue queue) {
+ this.queue = queue;
+ }
+
+ public MailQueue getMailQueue() {
+ return queue;
+ }
}
Modified:
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/ProcessorAbstract.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/ProcessorAbstract.java?rev=1030632&r1=1030631&r2=1030632&view=diff
==============================================================================
---
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/ProcessorAbstract.java
(original)
+++
james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/ProcessorAbstract.java
Wed Nov 3 19:43:58 2010
@@ -29,6 +29,7 @@ import javax.mail.Session;
import org.apache.commons.logging.Log;
import org.apache.james.dnsservice.api.DNSService;
+import org.apache.james.queue.api.MailQueue;
import org.apache.james.services.MailServer;
import org.apache.james.user.api.UsersRepository;
import org.apache.mailet.MailAddress;
@@ -595,5 +596,8 @@ abstract public class ProcessorAbstract
return getConfiguration().getMaxMessageSizeLimit();
}
+ protected MailQueue getMailQueue() {
+ return getConfiguration().getMailQueue();
+ }
}
Modified:
james/server/trunk/mailetcontainer-library/src/main/java/org/apache/james/mailetcontainer/lib/JamesMailetContext.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/mailetcontainer-library/src/main/java/org/apache/james/mailetcontainer/lib/JamesMailetContext.java?rev=1030632&r1=1030631&r2=1030632&view=diff
==============================================================================
---
james/server/trunk/mailetcontainer-library/src/main/java/org/apache/james/mailetcontainer/lib/JamesMailetContext.java
(original)
+++
james/server/trunk/mailetcontainer-library/src/main/java/org/apache/james/mailetcontainer/lib/JamesMailetContext.java
Wed Nov 3 19:43:58 2010
@@ -43,6 +43,7 @@ import org.apache.james.dnsservice.api.D
import org.apache.james.dnsservice.api.TemporaryResolutionException;
import org.apache.james.lifecycle.LifecycleUtil;
import org.apache.james.lifecycle.LogEnabled;
+import org.apache.james.mailetcontainer.api.MailProcessor;
import org.apache.james.services.MailServer;
import org.apache.james.user.api.UsersRepository;
import org.apache.mailet.HostAddress;
@@ -65,11 +66,19 @@ public class JamesMailetContext implemen
private UsersRepository localusers;
+ private MailProcessor processorList;
+
@Resource(name = "mailserver")
public void setMailServer(MailServer mailServer) {
this.mailServer = mailServer;
}
+ @Resource(name="mailProcessor")
+ public void setMailProcessor(MailProcessor processorList) {
+ this.processorList = processorList;
+ }
+
+
@Resource(name = "dnsservice")
public void setDNSService(DNSService dns) {
this.dns = dns;
@@ -363,11 +372,13 @@ public class JamesMailetContext implemen
}
/*
+ * TODO: Should we use the MailProcessorList or the MailQueue here ?
+ *
* (non-Javadoc)
* @see org.apache.mailet.MailetContext#sendMail(org.apache.mailet.Mail)
*/
public void sendMail(Mail mail) throws MessagingException {
- mailServer.sendMail(mail);
+ processorList.service(mail);
}
/*
Modified:
james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/AbstractSMTPServerTest.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/AbstractSMTPServerTest.java?rev=1030632&r1=1030631&r2=1030632&view=diff
==============================================================================
---
james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/AbstractSMTPServerTest.java
(original)
+++
james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/AbstractSMTPServerTest.java
Wed Nov 3 19:43:58 2010
@@ -181,7 +181,7 @@ public abstract class AbstractSMTPServer
initSMTPServer(testConfiguration);
-
m_mailServer.setMaxMessageSizeBytes(m_testConfiguration.getMaxMessageSize() *
1024);
+
//m_mailServer.setMaxMessageSizeBytes(m_testConfiguration.getMaxMessageSize() *
1024);
}
@@ -308,7 +308,7 @@ public abstract class AbstractSMTPServer
smtpProtocol.connect("127.0.0.1", m_smtpListenerPort);
// no message there, yet
- assertNull("no mail received by mail server",
m_mailServer.getLastMail());
+ assertNull("no mail received by mail server", queue.getLastMail());
smtpProtocol.sendCommand("EHLO " + InetAddress.getLocalHost());
String[] capabilityRes = smtpProtocol.getReplyStrings();
@@ -344,7 +344,7 @@ public abstract class AbstractSMTPServer
smtpProtocol.connect("127.0.0.1", m_smtpListenerPort);
// no message there, yet
- assertNull("no mail received by mail server",
m_mailServer.getLastMail());
+ assertNull("no mail received by mail server", queue.getLastMail());
smtpProtocol.sendCommand("EHLO " + InetAddress.getLocalHost());
String[] capabilityRes = smtpProtocol.getReplyStrings();
Modified:
james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java?rev=1030632&r1=1030631&r2=1030632&view=diff
==============================================================================
---
james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
(original)
+++
james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
Wed Nov 3 19:43:58 2010
@@ -85,13 +85,6 @@ public class ValidRcptHandlerTest extend
- public void sendMail(Mail mail) throws MessagingException {
- // TODO Auto-generated method stub
-
- }
-
-
-
public boolean supportVirtualHosting() {
// TODO Auto-generated method stub
return false;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]