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]

Reply via email to