Author: bago
Date: Tue Aug  9 16:00:40 2005
New Revision: 231133

URL: http://svn.apache.org/viewcvs?rev=231133&view=rev
Log:
Don't keep all mailboxes in-memory forever (JAMES-138).
Changed the HashMap in ReferenceMap.
Also cleaned imports, unused variables, unnecessary classcasts, unused fields 
in the 2 involved files.

Modified:
    james/server/trunk/src/java/org/apache/james/James.java
    james/server/trunk/src/java/org/apache/james/core/AvalonMailStore.java

Modified: james/server/trunk/src/java/org/apache/james/James.java
URL: 
http://svn.apache.org/viewcvs/james/server/trunk/src/java/org/apache/james/James.java?rev=231133&r1=231132&r2=231133&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/James.java (original)
+++ james/server/trunk/src/java/org/apache/james/James.java Tue Aug  9 16:00:40 
2005
@@ -31,14 +31,13 @@
 import org.apache.avalon.framework.service.ServiceException;
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.avalon.framework.service.Serviceable;
+import org.apache.commons.collections.ReferenceMap;
 
 import org.apache.james.context.AvalonContextUtilities;
 import org.apache.james.core.MailHeaders;
 import org.apache.james.core.MailImpl;
 import org.apache.james.services.*;
 import org.apache.james.userrepository.DefaultJamesUser;
-import org.apache.mailet.RFC2822Headers;
-import org.apache.mailet.dates.RFC822DateFormat;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.MailetContext;
@@ -46,11 +45,8 @@
 import javax.mail.Address;
 import javax.mail.MessagingException;
 import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMultipart;
 import java.io.ByteArrayInputStream;
-import java.io.IOException;
 import java.io.InputStream;
 import java.io.SequenceInputStream;
 import java.net.InetAddress;
@@ -114,11 +110,6 @@
     private SpoolRepository spool;
 
     /**
-     * The repository that stores the user inboxes.
-     */
-    private MailRepository localInbox;
-
-    /**
      * The root URL used to get mailboxes from the repository
      */
     private String inboxRootURL;
@@ -179,11 +170,6 @@
     protected Context           myContext;
 
     /**
-     * An RFC822 date formatter used to format dates in mail headers
-     */
-    private RFC822DateFormat rfc822DateFormat = new RFC822DateFormat();
-
-    /**
      * @see 
org.apache.avalon.framework.context.Contextualizable#contextualize(Context)
      */
     public void contextualize(final Context context) {
@@ -195,7 +181,7 @@
      */
     public void service(ServiceManager comp) {
         compMgr = new DefaultServiceManager(comp);
-        mailboxes = new HashMap(31);
+        mailboxes = new ReferenceMap();
     }
 
     /**
@@ -328,7 +314,7 @@
 
         //Get localusers
         try {
-            localusers = (UsersRepository) 
usersStore.getRepository("LocalUsers");
+            localusers = usersStore.getRepository("LocalUsers");
         } catch (Exception e) {
             getLogger().error("Cannot open private UserRepository");
             throw e;
@@ -339,8 +325,10 @@
 
         Configuration inboxConf = conf.getChild("inboxRepository");
         Configuration inboxRepConf = inboxConf.getChild("repository");
+        // we could delete this block. I didn't remove this because I'm not 
sure
+        // wether we need the "check" of the inbox repository here, or not.
         try {
-            localInbox = (MailRepository) mailstore.select(inboxRepConf);
+            mailstore.select(inboxRepConf);
         } catch (Exception e) {
             getLogger().error("Cannot open private MailRepository");
             throw e;
@@ -490,7 +478,7 @@
      * @return the POP3 inbox for the user
      */
     public synchronized MailRepository getUserInbox(String userName) {
-        MailRepository userInbox = (MailRepository) null;
+        MailRepository userInbox = null;
 
         userInbox = (MailRepository) mailboxes.get(userName);
 

Modified: james/server/trunk/src/java/org/apache/james/core/AvalonMailStore.java
URL: 
http://svn.apache.org/viewcvs/james/server/trunk/src/java/org/apache/james/core/AvalonMailStore.java?rev=231133&r1=231132&r2=231133&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/core/AvalonMailStore.java 
(original)
+++ james/server/trunk/src/java/org/apache/james/core/AvalonMailStore.java Tue 
Aug  9 16:00:40 2005
@@ -31,11 +31,13 @@
 import org.apache.avalon.framework.context.Contextualizable;
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
 import org.apache.avalon.framework.logger.LogEnabled;
+import org.apache.commons.collections.ReferenceMap;
 import org.apache.james.services.MailRepository;
 import org.apache.james.services.MailStore;
 import org.apache.james.services.SpoolRepository;
 
 import java.util.HashMap;
+import java.util.Map;
 
 /**
  * Provides a registry of mail repositories. A mail repository is uniquely
@@ -54,13 +56,13 @@
     private static long id;
 
     // map of [destinationURL + type]->Repository
-    private HashMap repositories;
+    private Map repositories;
 
     // map of [protocol(destinationURL) + type ]->classname of repository;
-    private HashMap classes;
+    private Map classes;
 
     // map of [protocol(destinationURL) + type ]->default config for 
repository.
-    private HashMap defaultConfigs;
+    private Map defaultConfigs;
 
     /**
      * The Avalon context used by the instance
@@ -113,14 +115,14 @@
         throws Exception {
 
         getLogger().info("JamesMailStore init...");
-        repositories = new HashMap();
+        repositories = new ReferenceMap();
         classes = new HashMap();
         defaultConfigs = new HashMap();
         Configuration[] registeredClasses
             = configuration.getChild("repositories").getChildren("repository");
         for ( int i = 0; i < registeredClasses.length; i++ )
         {
-            registerRepository((Configuration) registeredClasses[i]);
+            registerRepository(registeredClasses[i]);
         }
 
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to