You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by da...@apache.org on 2006/11/02 16:48:29 UTC

svn commit: r470396 - in /james/server/sandbox/mailet-refactorings/src/java/org/apache: james/ james/transport/ james/transport/mailets/ mailet/

Author: danny
Date: Thu Nov  2 07:48:28 2006
New Revision: 470396

URL: http://svn.apache.org/viewvc?view=rev&rev=470396
Log:
partly refactored user repository access into mailet context, didn't do default user inbox, I'd like to get that concept killed off, and I think that mailbox manager does that.

Modified:
    james/server/sandbox/mailet-refactorings/src/java/org/apache/james/James.java
    james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/Loader.java
    james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/AvalonListserv.java
    james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/AvalonListservManager.java
    james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/CommandListservManager.java
    james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/CommandListservProcessor.java
    james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/ToRepository.java
    james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/UsersRepositoryAliasingForwarding.java
    james/server/sandbox/mailet-refactorings/src/java/org/apache/mailet/MailetContext.java

Modified: james/server/sandbox/mailet-refactorings/src/java/org/apache/james/James.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailet-refactorings/src/java/org/apache/james/James.java?view=diff&rev=470396&r1=470395&r2=470396
==============================================================================
--- james/server/sandbox/mailet-refactorings/src/java/org/apache/james/James.java (original)
+++ james/server/sandbox/mailet-refactorings/src/java/org/apache/james/James.java Thu Nov  2 07:48:28 2006
@@ -65,6 +65,8 @@
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.ParseException;
 
+
+
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.io.SequenceInputStream;
@@ -269,9 +271,12 @@
         getLogger().info("JAMES ...init end");
     }
 
-    private void initializeServices() throws Exception {
+    private void initializeServices() throws Exception  {
         // TODO: This should retrieve a more specific named thread pool from
         // Context that is set up in server.xml
+        
+        
+        
         try {
             Store store = (Store) compMgr.lookup( Store.ROLE );
             setStore(store);
@@ -287,6 +292,8 @@
         try {
             SpoolRepository spool = (SpoolRepository) compMgr.lookup(SpoolRepository.ROLE);
             setSpool(spool);
+            
+           
             if (getLogger().isDebugEnabled()) {
                 getLogger().debug("Using SpoolRepository: " + spool.toString());
             }
@@ -735,9 +742,7 @@
     }
     
     /**
-     * @param repoPath
-     * @return
-     * @throws MailetException
+     * @see org.apache.james.RepositoryContext#getMailRepository(java.lang.String)
      */
     public MailRepository getMailRepository(String repoPath) throws MailetException {
 
@@ -901,5 +906,23 @@
 
        
         return mailFactory ;
+    }
+
+    /**
+     * @see org.apache.mailet.MailetContext#getUsersRepository(java.lang.String)
+     */
+    public UsersRepository getUsersRepository(String repoURL) throws MailetException {
+
+        //ServiceManager compMgr = (ServiceManager)getMailetContext().getAttribute(Constants.AVALON_COMPONENT_MANAGER);
+        try {
+            UsersStore usersStore = (UsersStore)compMgr.lookup(UsersStore.ROLE);
+            return usersStore.getRepository( repoURL );
+        } catch (ServiceException cnfe) {
+            log("Failed to retrieve Store component:" + cnfe.getMessage());
+            throw new MailetException("Failed to retrieve Users Repo:" + repoURL,cnfe);
+        } catch (Exception e) {
+            log("Failed to retrieve Store component:" + e.getMessage());
+            throw new MailetException("Failed to retrieve Users Repo:" + repoURL,e);
+        }
     }
 }

Modified: james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/Loader.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/Loader.java?view=diff&rev=470396&r1=470395&r2=470396
==============================================================================
--- james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/Loader.java (original)
+++ james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/Loader.java Thu Nov  2 07:48:28 2006
@@ -42,6 +42,7 @@
 import org.apache.mailet.MailRepository;
 import org.apache.mailet.MailetContext;
 import org.apache.mailet.MailetException;
+import org.apache.mailet.UsersRepository;
 
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
@@ -311,6 +312,13 @@
         public MailFactory getMailFactory() {
 
             return mailetContext.getMailFactory();
+        }
+
+        /**
+         * @see org.apache.mailet.MailetContext#getUsersRepository(java.lang.String)
+         */
+        public UsersRepository getUsersRepository(String repoURL) throws MailetException {
+            return mailetContext.getUsersRepository(repoURL);
         }
     }
 

Modified: james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/AvalonListserv.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/AvalonListserv.java?view=diff&rev=470396&r1=470395&r2=470396
==============================================================================
--- james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/AvalonListserv.java (original)
+++ james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/AvalonListserv.java Thu Nov  2 07:48:28 2006
@@ -25,11 +25,9 @@
 import java.util.Collection;
 import java.util.Iterator;
 import javax.mail.internet.ParseException;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.james.Constants;
-import org.apache.james.services.UsersStore;
+
 import org.apache.mailet.MailAddress;
+import org.apache.mailet.MailetException;
 import org.apache.mailet.UsersRepository;
 
 /**
@@ -101,8 +99,9 @@
 
     /**
      * Initialize the mailet
+     * @throws MailetException 
      */
-    public void init() {
+    public void init() throws MailetException {
         try {
             membersOnly = new Boolean(getInitParameter("membersonly")).booleanValue();
         } catch (Exception e) {
@@ -126,17 +125,10 @@
             // Ignore any exceptions, default to true
         }
 
-        ServiceManager compMgr = (ServiceManager)getMailetContext().getAttribute(Constants.AVALON_COMPONENT_MANAGER);
-        try {
-            UsersStore usersStore = (UsersStore)compMgr.lookup(UsersStore.ROLE);
-            String repName = getInitParameter("repositoryName");
-
-            members = (UsersRepository)usersStore.getRepository( repName );
-        } catch (ServiceException cnfe) {
-            log("Failed to retrieve Store component:" + cnfe.getMessage());
-        } catch (Exception e) {
-            log("Failed to retrieve Store component:" + e.getMessage());
-        }
+        
+        String repName = getInitParameter("repositoryName");
+        members = getMailetContext().getUsersRepository( repName );
+        
     }
 
     public Collection getMembers() throws ParseException {

Modified: james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/AvalonListservManager.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/AvalonListservManager.java?view=diff&rev=470396&r1=470395&r2=470396
==============================================================================
--- james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/AvalonListservManager.java (original)
+++ james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/AvalonListservManager.java Thu Nov  2 07:48:28 2006
@@ -21,11 +21,10 @@
 
 package org.apache.james.transport.mailets;
 
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.james.Constants;
-import org.apache.james.services.UsersStore;
+
+
 import org.apache.mailet.MailAddress;
+import org.apache.mailet.MailetException;
 import org.apache.mailet.UsersRepository;
 
 /**
@@ -44,19 +43,14 @@
 
     /**
      * Initialize the mailet
+     * @throws MailetException 
      */
-    public void init() {
-        ServiceManager compMgr = (ServiceManager)getMailetContext().getAttribute(Constants.AVALON_COMPONENT_MANAGER);
-        try {
-            UsersStore usersStore = (UsersStore) compMgr.lookup(UsersStore.ROLE);
+    public void init() throws MailetException {
+       
             String repName = getInitParameter("repositoryName");
 
-            members = (UsersRepository) usersStore.getRepository(repName);
-        } catch (ServiceException cnfe) {
-            log("Failed to retrieve Store component:" + cnfe.getMessage());
-        } catch (Exception e) {
-            log("Failed to retrieve Store component:" + e.getMessage());
-        }
+            members = getMailetContext().getUsersRepository(repName);
+      
     }
 
     /**

Modified: james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/CommandListservManager.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/CommandListservManager.java?view=diff&rev=470396&r1=470395&r2=470396
==============================================================================
--- james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/CommandListservManager.java (original)
+++ james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/CommandListservManager.java Thu Nov  2 07:48:28 2006
@@ -33,15 +33,13 @@
 import javax.mail.MessagingException;
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.james.Constants;
-import org.apache.james.services.UsersStore;
 import org.apache.james.transport.mailets.listservcommands.ErrorCommand;
 import org.apache.james.transport.mailets.listservcommands.IListServCommand;
 import org.apache.james.util.XMLResources;
 import org.apache.mailet.GenericMailet;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
+import org.apache.mailet.MailetException;
 import org.apache.mailet.UsersRepository;
 
 /**
@@ -334,17 +332,13 @@
 
     /**
      * Fetch the repository of users
+     * @throws MailetException 
      */
-    protected void initUsersRepository() {
-        ServiceManager compMgr = (ServiceManager) getMailetContext().getAttribute(Constants.AVALON_COMPONENT_MANAGER);
-        try {
-            UsersStore usersStore = (UsersStore) compMgr.lookup(UsersStore.ROLE);
+    protected void initUsersRepository() throws MailetException {
+       
             String repName = getInitParameter("repositoryName");
 
-            usersRepository = usersStore.getRepository(repName);
-        } catch (Exception e) {
-            log("Failed to retrieve Store component:" + e.getMessage());
-        }
+            usersRepository = getMailetContext().getUsersRepository(repName);
     }
 
     /**

Modified: james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/CommandListservProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/CommandListservProcessor.java?view=diff&rev=470396&r1=470395&r2=470396
==============================================================================
--- james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/CommandListservProcessor.java (original)
+++ james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/CommandListservProcessor.java Thu Nov  2 07:48:28 2006
@@ -32,9 +32,6 @@
 import javax.mail.internet.MimeMultipart;
 import javax.mail.internet.ParseException;
 import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.james.Constants;
-import org.apache.james.services.UsersStore;
 import org.apache.james.util.XMLResources;
 import org.apache.mailet.GenericMailet;
 import org.apache.mailet.Mail;
@@ -413,14 +410,14 @@
 
     /**
      * Fetch the repository of users
+     * @throws MailetException 
      */
-    protected void initUsersRepository() throws Exception {
-        ServiceManager compMgr = (ServiceManager) getMailetContext().getAttribute(Constants.AVALON_COMPONENT_MANAGER);
-        UsersStore usersStore = (UsersStore) compMgr.lookup(UsersStore.ROLE);
+    protected void initUsersRepository() throws MailetException  {
+       
         String repName = getInitParameter("repositoryName");
 
-        usersRepository = usersStore.getRepository(repName);
-        if (usersRepository == null) throw new Exception("Invalid user repository: " + repName);
+        usersRepository = getMailetContext().getUsersRepository(repName);
+        if (usersRepository == null) throw new MailetException("Invalid user repository: " + repName);
     }
 
     /**

Modified: james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/ToRepository.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/ToRepository.java?view=diff&rev=470396&r1=470395&r2=470396
==============================================================================
--- james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/ToRepository.java (original)
+++ james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/ToRepository.java Thu Nov  2 07:48:28 2006
@@ -22,6 +22,7 @@
 package org.apache.james.transport.mailets;
 
 
+
 import org.apache.mailet.GenericMailet;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailRepository;
@@ -64,7 +65,6 @@
             // Ignore exception, default to false
         }
 
-        
       
             try{
                 repository = getMailetContext().getMailRepository(repositoryPath);
@@ -77,6 +77,8 @@
 
     }
 
+    
+
     /**
      * Store a mail in a particular repository.
      *
@@ -90,6 +92,7 @@
                     .append(" in ")
                     .append(repositoryPath);
         log(logBuffer.toString());
+    
         repository.store(mail);
         if (!passThrough) {
             mail.setState(Mail.GHOST);

Modified: james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/UsersRepositoryAliasingForwarding.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/UsersRepositoryAliasingForwarding.java?view=diff&rev=470396&r1=470395&r2=470396
==============================================================================
--- james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/UsersRepositoryAliasingForwarding.java (original)
+++ james/server/sandbox/mailet-refactorings/src/java/org/apache/james/transport/mailets/UsersRepositoryAliasingForwarding.java Thu Nov  2 07:48:28 2006
@@ -28,10 +28,8 @@
 import java.util.Vector;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
-import org.apache.avalon.framework.service.ServiceException;
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.james.Constants;
-import org.apache.james.services.UsersStore;
 import org.apache.james.services.VirtualUserTable;
 import org.apache.james.vut.ErrorMappingException;
 import org.apache.mailet.GenericMailet;
@@ -235,11 +233,11 @@
             ArrayList ret = new ArrayList();
             ret.add(new MailAddress(realName, recipient.getHost()));
             return ret;
-        } else {
+        } 
             ArrayList ret = new ArrayList();
             ret.add(recipient);
             return ret;
-        }
+        
     }
 
     /**
@@ -250,24 +248,11 @@
         ServiceManager compMgr = (ServiceManager) getMailetContext()
                 .getAttribute(Constants.AVALON_COMPONENT_MANAGER);
 
-        try {
+        
             String userRep = getInitParameter("usersRepository");
-            if (userRep == null || userRep.length() == 0) {
-                try {
-                    usersRepository = (UsersRepository) compMgr
-                            .lookup(UsersRepository.ROLE);
-                } catch (ServiceException e) {
-                    log("Failed to retrieve UsersRepository component:"
-                            + e.getMessage());
-                }
-            } else {
-                UsersStore usersStore = (UsersStore) compMgr.lookup(UsersStore.ROLE);
-                usersRepository = usersStore.getRepository(userRep);
-            }
-
-        } catch (ServiceException cnfe) {
-            log("Failed to retrieve UsersStore component:" + cnfe.getMessage());
-        }
+            
+                usersRepository = getMailetContext().getUsersRepository(userRep);
+            
 
     }
 

Modified: james/server/sandbox/mailet-refactorings/src/java/org/apache/mailet/MailetContext.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailet-refactorings/src/java/org/apache/mailet/MailetContext.java?view=diff&rev=470396&r1=470395&r2=470396
==============================================================================
--- james/server/sandbox/mailet-refactorings/src/java/org/apache/mailet/MailetContext.java (original)
+++ james/server/sandbox/mailet-refactorings/src/java/org/apache/mailet/MailetContext.java Thu Nov  2 07:48:28 2006
@@ -26,6 +26,7 @@
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
+
 /**
  * Defines a set of methods that a mailet or matcher uses to communicate
  * with its mailet container, for example, to send a new message, to
@@ -302,4 +303,7 @@
      * @return a MailFactory implementation
      */
     public MailFactory getMailFactory();
-}
+    
+public UsersRepository getUsersRepository(String repoURL) throws MailetException;
+    
+   }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org