Author: rdonkin
Date: Tue May 19 20:26:42 2009
New Revision: 776445
URL: http://svn.apache.org/viewvc?rev=776445&view=rev
Log:
Upgrade to latest version of IMAP
Removed:
james/server/trunk/imapserver-function/src/main/java/org/apache/james/mailboxmanager/torque/DefaultMailboxManagerProvider.java
Modified:
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/DefaultImapFactory.java
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapServer.java
james/server/trunk/imapserver-function/src/main/java/org/apache/james/mailboxmanager/torque/DefaultMailboxManager.java
james/server/trunk/imapserver-function/src/main/java/org/apache/james/mailboxmanager/torque/DefaultUserManager.java
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-api-0.1-SNAPSHOT.jar
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-decode-0.1-SNAPSHOT.jar
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-deployment-0.1-SNAPSHOT.jar
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-jpa-0.1-SNAPSHOT.jar
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-mailbox-0.1-SNAPSHOT.jar
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-message-0.1-SNAPSHOT.jar
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-processor-0.1-SNAPSHOT.jar
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-seda-0.1-SNAPSHOT.jar
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-store-0.1-SNAPSHOT.jar
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-torque-0.1-SNAPSHOT.jar
Modified:
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/DefaultImapFactory.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/DefaultImapFactory.java?rev=776445&r1=776444&r2=776445&view=diff
==============================================================================
---
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/DefaultImapFactory.java
(original)
+++
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/DefaultImapFactory.java
Tue May 19 20:26:42 2009
@@ -25,16 +25,15 @@
import org.apache.avalon.framework.logger.Logger;
import org.apache.james.imap.api.process.ImapProcessor;
import org.apache.james.api.user.UsersRepository;
+import org.apache.james.imap.mailbox.MailboxManager;
import org.apache.james.imap.main.DefaultImapDecoderFactory;
import org.apache.james.imap.main.ImapRequestHandler;
import org.apache.james.imap.decode.ImapDecoder;
import org.apache.james.imap.encode.ImapEncoder;
import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
import org.apache.james.imap.processor.main.DefaultImapProcessorFactory;
-import org.apache.james.mailboxmanager.torque.DefaultMailboxManagerProvider;
import org.apache.james.mailboxmanager.torque.DefaultMailboxManager;
import org.apache.james.mailboxmanager.torque.DefaultUserManager;
-import org.apache.james.imap.mailbox.MailboxManagerProvider;
import org.apache.james.services.FileSystem;
import org.apache.james.user.impl.file.FileUserMetaDataRepository;
@@ -43,7 +42,6 @@
private final ImapEncoder encoder;
private final ImapDecoder decoder;
private final ImapProcessor processor;
- private final MailboxManagerProvider mailbox;
private final DefaultMailboxManager mailboxManager;
public DefaultImapFactory(FileSystem fileSystem, UsersRepository users,
Logger logger) {
@@ -52,8 +50,7 @@
encoder = new DefaultImapEncoderFactory().buildImapEncoder();
mailboxManager = new DefaultMailboxManager(new DefaultUserManager(
new FileUserMetaDataRepository("var/users"), users),
fileSystem, logger);
- mailbox = new DefaultMailboxManagerProvider(mailboxManager);
- processor =
DefaultImapProcessorFactory.createDefaultProcessor(mailbox);
+ processor =
DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager);
}
/**
@@ -76,7 +73,7 @@
* This is required until James supports IoC assembly.
* @return the mailbox
*/
- public final MailboxManagerProvider getMailbox() {
- return mailbox;
+ public final MailboxManager getMailbox() {
+ return mailboxManager;
}
}
Modified:
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapServer.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapServer.java?rev=776445&r1=776444&r2=776445&view=diff
==============================================================================
---
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapServer.java
(original)
+++
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapServer.java
Tue May 19 20:26:42 2009
@@ -21,28 +21,23 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
-
import java.util.Date;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
-import org.apache.commons.logging.impl.AvalonLogger;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.commons.logging.impl.AvalonLogger;
import org.apache.james.Constants;
-import org.apache.james.imap.api.ImapConstants;
import org.apache.james.api.user.UsersRepository;
-import org.apache.james.imap.main.ImapRequestHandler;
-import org.apache.james.imapserver.DefaultImapFactory;
-import org.apache.james.imap.mailbox.MailboxSession;
+import org.apache.james.imap.api.ImapConstants;
import org.apache.james.imap.mailbox.Mailbox;
import org.apache.james.imap.mailbox.MailboxManager;
-import org.apache.james.imap.mailbox.MailboxManagerProvider;
+import org.apache.james.imap.mailbox.MailboxSession;
+import org.apache.james.imap.main.ImapRequestHandler;
import org.apache.james.services.FileSystem;
import org.apache.james.socket.AbstractJamesService;
import org.apache.james.socket.ProtocolHandler;
@@ -156,9 +151,11 @@
} else {
urlPath = url.substring(endOfHost, length);
}
+ final MailboxManager mailboxManager =
factory.getMailbox();
+ final MailboxSession session =
mailboxManager.createSystemSession(user, new AvalonLogger(getLogger()));
// This allows Sieve scripts to use a standard
delimiter regardless of mailbox implementation
- final String mailbox = urlPath.replace('/',
MailboxManager.HIERARCHY_DELIMITER);
- postToMailbox(user, mail, mailbox);
+ final String mailbox = urlPath.replace('/',
session.getPersonalSpace().getDeliminator());
+ postToMailbox(user, mail, mailbox, session,
mailboxManager);
}
}
} else {
@@ -170,20 +167,17 @@
}
}
- public void postToMailbox(String username, MimeMessage mail, String
destination) throws MessagingException {
- final MailboxManagerProvider mailboxManagerProvider =
factory.getMailbox();
+ public void postToMailbox(String username, MimeMessage mail, String
destination, final MailboxSession session, final MailboxManager mailboxManager)
throws MessagingException {
if (destination == null || "".equals(destination)) {
destination = "INBOX";
}
- final String name =
mailboxManagerProvider.getMailboxManager().resolve(username, destination);
- final MailboxManager mailboxManager =
mailboxManagerProvider.getMailboxManager();
- final MailboxSession session = mailboxManager.createSession(new
AvalonLogger(getLogger()));
+ final String name = mailboxManager.resolve(username, destination);
try
{
- if ("INBOX".equalsIgnoreCase(destination) &&
!(mailboxManager.mailboxExists(name))) {
- mailboxManager.createMailbox(name);
+ if ("INBOX".equalsIgnoreCase(destination) &&
!(mailboxManager.mailboxExists(name, session))) {
+ mailboxManager.createMailbox(name, session);
}
- final Mailbox mailbox = mailboxManager.getMailbox(name);
+ final Mailbox mailbox = mailboxManager.getMailbox(name, session);
if (mailbox == null) {
final String error = "Mailbox for user " + username
@@ -193,7 +187,7 @@
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
mail.writeTo(baos);
- mailbox.appendMessage(baos.toByteArray() , new Date(), session,
true);
+ mailbox.appendMessage(baos.toByteArray() , new Date(), session,
true, null);
}
catch (IOException e)
{
@@ -202,6 +196,7 @@
finally
{
session.close();
+ mailboxManager.logout(session, true);
}
}
}
Modified:
james/server/trunk/imapserver-function/src/main/java/org/apache/james/mailboxmanager/torque/DefaultMailboxManager.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/mailboxmanager/torque/DefaultMailboxManager.java?rev=776445&r1=776444&r2=776445&view=diff
==============================================================================
---
james/server/trunk/imapserver-function/src/main/java/org/apache/james/mailboxmanager/torque/DefaultMailboxManager.java
(original)
+++
james/server/trunk/imapserver-function/src/main/java/org/apache/james/mailboxmanager/torque/DefaultMailboxManager.java
Tue May 19 20:26:42 2009
@@ -32,6 +32,7 @@
import org.apache.commons.configuration.BaseConfiguration;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.logging.impl.AvalonLogger;
+import org.apache.james.imap.api.display.HumanReadableText;
import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.mailboxmanager.torque.om.MailboxRowPeer;
import org.apache.james.mailboxmanager.torque.om.MessageBodyPeer;
@@ -111,7 +112,7 @@
} catch (TorqueException e1) {
}
- throw new MailboxException(e);
+ throw new MailboxException(new
HumanReadableText("org.apache.james.imap.INIT_FAILED", "Initialisation
failed"), e);
}
}
}
Modified:
james/server/trunk/imapserver-function/src/main/java/org/apache/james/mailboxmanager/torque/DefaultUserManager.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/mailboxmanager/torque/DefaultUserManager.java?rev=776445&r1=776444&r2=776445&view=diff
==============================================================================
---
james/server/trunk/imapserver-function/src/main/java/org/apache/james/mailboxmanager/torque/DefaultUserManager.java
(original)
+++
james/server/trunk/imapserver-function/src/main/java/org/apache/james/mailboxmanager/torque/DefaultUserManager.java
Tue May 19 20:26:42 2009
@@ -29,6 +29,7 @@
import org.apache.james.api.user.UserMetaDataRespository;
import org.apache.james.api.user.UserRepositoryException;
import org.apache.james.api.user.UsersRepository;
+import org.apache.james.imap.api.display.HumanReadableText;
import org.apache.james.imap.mailbox.SubscriptionException;
/**
@@ -59,17 +60,18 @@
final UserSubscription subscription = getUserSubscription(user);
subscription.subscribe(mailbox);
} catch (UserRepositoryException e) {
- throw new SubscriptionException(e);
+ throw new
SubscriptionException(HumanReadableText.GENERIC_SUBSCRIPTION_FAILURE, e);
}
}
- public Collection subscriptions(String user) throws SubscriptionException {
+ @SuppressWarnings("unchecked")
+ public Collection<String> subscriptions(String user) throws
SubscriptionException {
try {
final UserSubscription subscription = getUserSubscription(user);
- final Collection results = (Collection)
subscription.subscriptions().clone();
+ final Collection<String> results = (Collection)
subscription.subscriptions().clone();
return results;
} catch (UserRepositoryException e) {
- throw new SubscriptionException(e);
+ throw new
SubscriptionException(HumanReadableText.GENERIC_SUBSCRIPTION_FAILURE, e);
}
}
@@ -78,7 +80,7 @@
final UserSubscription subscription = getUserSubscription(user);
subscription.unsubscribe(mailbox);
} catch (UserRepositoryException e) {
- throw new SubscriptionException(e);
+ throw new
SubscriptionException(HumanReadableText.GENERIC_UNSUBSCRIPTION_FAILURE, e);
}
}
@@ -109,7 +111,7 @@
}
public synchronized void subscribe(String mailbox) throws
UserRepositoryException {
- final HashSet existingSubscriptions = subscriptions();
+ final HashSet<String> existingSubscriptions = subscriptions();
if (!existingSubscriptions.contains(mailbox)) {
final HashSet newSubscriptions;
if (existingSubscriptions == null) {
@@ -129,12 +131,12 @@
}
}
- public HashSet subscriptions() throws UserRepositoryException {
+ public HashSet<String> subscriptions() throws UserRepositoryException {
try {
- final HashSet storedSubscriptions = (HashSet)
repository.getAttribute(user, META_DATA_KEY);
- final HashSet results;
+ final HashSet<String> storedSubscriptions = (HashSet<String>)
repository.getAttribute(user, META_DATA_KEY);
+ final HashSet<String> results;
if (storedSubscriptions == null) {
- results = new HashSet();
+ results = new HashSet<String>();
} else {
results = storedSubscriptions;
}
@@ -142,7 +144,7 @@
} catch (ClassCastException e) {
log.error("ClassCastException during retrieval. Reseting
subscriptions for user " + user);
log.debug("HashSet expected but not retrieved.", e);
- return new HashSet();
+ return new HashSet<String>();
}
}
Modified:
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-api-0.1-SNAPSHOT.jar
URL:
http://svn.apache.org/viewvc/james/server/trunk/stage/org.apache.james/jars/apache-james-imap-api-0.1-SNAPSHOT.jar?rev=776445&r1=776444&r2=776445&view=diff
==============================================================================
Binary files - no diff available.
Modified:
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-decode-0.1-SNAPSHOT.jar
URL:
http://svn.apache.org/viewvc/james/server/trunk/stage/org.apache.james/jars/apache-james-imap-decode-0.1-SNAPSHOT.jar?rev=776445&r1=776444&r2=776445&view=diff
==============================================================================
Binary files - no diff available.
Modified:
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-deployment-0.1-SNAPSHOT.jar
URL:
http://svn.apache.org/viewvc/james/server/trunk/stage/org.apache.james/jars/apache-james-imap-deployment-0.1-SNAPSHOT.jar?rev=776445&r1=776444&r2=776445&view=diff
==============================================================================
Binary files - no diff available.
Modified:
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-jpa-0.1-SNAPSHOT.jar
URL:
http://svn.apache.org/viewvc/james/server/trunk/stage/org.apache.james/jars/apache-james-imap-jpa-0.1-SNAPSHOT.jar?rev=776445&r1=776444&r2=776445&view=diff
==============================================================================
Binary files - no diff available.
Modified:
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-mailbox-0.1-SNAPSHOT.jar
URL:
http://svn.apache.org/viewvc/james/server/trunk/stage/org.apache.james/jars/apache-james-imap-mailbox-0.1-SNAPSHOT.jar?rev=776445&r1=776444&r2=776445&view=diff
==============================================================================
Binary files - no diff available.
Modified:
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-message-0.1-SNAPSHOT.jar
URL:
http://svn.apache.org/viewvc/james/server/trunk/stage/org.apache.james/jars/apache-james-imap-message-0.1-SNAPSHOT.jar?rev=776445&r1=776444&r2=776445&view=diff
==============================================================================
Binary files - no diff available.
Modified:
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-processor-0.1-SNAPSHOT.jar
URL:
http://svn.apache.org/viewvc/james/server/trunk/stage/org.apache.james/jars/apache-james-imap-processor-0.1-SNAPSHOT.jar?rev=776445&r1=776444&r2=776445&view=diff
==============================================================================
Binary files - no diff available.
Modified:
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-seda-0.1-SNAPSHOT.jar
URL:
http://svn.apache.org/viewvc/james/server/trunk/stage/org.apache.james/jars/apache-james-imap-seda-0.1-SNAPSHOT.jar?rev=776445&r1=776444&r2=776445&view=diff
==============================================================================
Binary files - no diff available.
Modified:
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-store-0.1-SNAPSHOT.jar
URL:
http://svn.apache.org/viewvc/james/server/trunk/stage/org.apache.james/jars/apache-james-imap-store-0.1-SNAPSHOT.jar?rev=776445&r1=776444&r2=776445&view=diff
==============================================================================
Binary files - no diff available.
Modified:
james/server/trunk/stage/org.apache.james/jars/apache-james-imap-torque-0.1-SNAPSHOT.jar
URL:
http://svn.apache.org/viewvc/james/server/trunk/stage/org.apache.james/jars/apache-james-imap-torque-0.1-SNAPSHOT.jar?rev=776445&r1=776444&r2=776445&view=diff
==============================================================================
Binary files - no diff available.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]