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 no...@apache.org on 2009/11/24 16:11:15 UTC

svn commit: r883725 - in /james/server/trunk: phoenix-deployment/src/test/org/apache/james/ spoolmanager-function/src/main/java/org/apache/james/ spoolmanager-function/src/main/java/org/apache/james/transport/mailets/

Author: norman
Date: Tue Nov 24 15:11:14 2009
New Revision: 883725

URL: http://svn.apache.org/viewvc?rev=883725&view=rev
Log:
More decoupling of Avalon to move to Guice (JAMES-893)

Modified:
    james/server/trunk/phoenix-deployment/src/test/org/apache/james/AvalonJamesTest.java
    james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/AvalonJames.java
    james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/James.java
    james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java
    james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/UsersRepositoryAliasingForwarding.java
    james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/VirtualUserTable.java

Modified: james/server/trunk/phoenix-deployment/src/test/org/apache/james/AvalonJamesTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/test/org/apache/james/AvalonJamesTest.java?rev=883725&r1=883724&r2=883725&view=diff
==============================================================================
--- james/server/trunk/phoenix-deployment/src/test/org/apache/james/AvalonJamesTest.java (original)
+++ james/server/trunk/phoenix-deployment/src/test/org/apache/james/AvalonJamesTest.java Tue Nov 24 15:11:14 2009
@@ -27,6 +27,7 @@
 import org.apache.james.api.user.UsersStore;
 import org.apache.james.services.FileSystem;
 import org.apache.james.services.MailServer;
+import org.apache.james.services.SpoolRepository;
 import org.apache.james.test.mock.avalon.MockLogger;
 import org.apache.james.test.mock.avalon.MockServiceManager;
 import org.apache.james.userrepository.MockUsersRepository;
@@ -53,15 +54,13 @@
     
 
     private MockServiceManager setUpServiceManager() throws Exception {
-        MockServiceManager serviceManager = new MockServiceManager();
-        MockUsersRepository mockUsersRepository = new MockUsersRepository();
-       
+        MockServiceManager serviceManager = new MockServiceManager();       
         
         serviceManager.put(UsersRepository.ROLE, mockUsersRepository);
         serviceManager.put(UsersStore.ROLE, usersStore);
         serviceManager.put(FileSystem.ROLE, fs);
         serviceManager.put(DomainList.ROLE, domList);
-
+        serviceManager.put(SpoolRepository.ROLE, mockMailRepository);
         serviceManager.put(Store.ROLE, mockStore);
         serviceManager.put(DNSService.ROLE, dns);
         return serviceManager;

Modified: james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/AvalonJames.java
URL: http://svn.apache.org/viewvc/james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/AvalonJames.java?rev=883725&r1=883724&r2=883725&view=diff
==============================================================================
--- james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/AvalonJames.java (original)
+++ james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/AvalonJames.java Tue Nov 24 15:11:14 2009
@@ -227,7 +227,7 @@
                 bind(DNSService.class).annotatedWith(Names.named("org.apache.james.api.dnsservice.DNSService")).toInstance(dns);
                 bind(org.apache.commons.configuration.HierarchicalConfiguration.class).annotatedWith(Names.named("org.apache.commons.configuration.Configuration")).toInstance(config);
                 bind(Log.class).annotatedWith(Names.named("org.apache.commons.logging.Log")).toInstance(logger);
-                bind(Log.class).annotatedWith(Names.named("org.apache.commons.logging.Log@MailetLogger")).toInstance(mailetLogger);
+                bind(Log.class).annotatedWith(Names.named("org.apache.commons.logging.Log@MailetLog")).toInstance(mailetLogger);
                 bind(Store.class).annotatedWith(Names.named("org.apache.avalon.cornerstone.services.store.Store")).toInstance(store);
                 bind(FileSystem.class).annotatedWith(Names.named("org.apache.james.services.FileSystem")).toInstance(fs);
                 bind(UsersRepository.class).annotatedWith(Names.named("org.apache.james.api.user.UsersRepository")).toInstance(userRepos);

Modified: james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/James.java
URL: http://svn.apache.org/viewvc/james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/James.java?rev=883725&r1=883724&r2=883725&view=diff
==============================================================================
--- james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/James.java (original)
+++ james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/James.java Tue Nov 24 15:11:14 2009
@@ -277,8 +277,8 @@
         
         logger.info("Defaultdomain: " + defaultDomain);
         
-        HierarchicalConfiguration helloNameConfig = conf.configurationAt("helloName");
-        if (helloNameConfig != null) {
+        if (conf.getKeys("helloName").hasNext()) {
+            HierarchicalConfiguration helloNameConfig = conf.configurationAt("helloName");
             boolean autodetect = helloNameConfig.getBoolean("[@autodetect]", true);
             if (autodetect) {
                 try {

Modified: james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java
URL: http://svn.apache.org/viewvc/james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java?rev=883725&r1=883724&r2=883725&view=diff
==============================================================================
--- james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java (original)
+++ james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java Tue Nov 24 15:11:14 2009
@@ -105,9 +105,9 @@
             /**
              * @see org.apache.mailet.MailetConfig#getInitParameterNames()
              */
-            public Iterator getInitParameterNames() {
+            public Iterator<String> getInitParameterNames() {
                 IteratorChain c = new IteratorChain();
-                Collection h = new ArrayList();
+                Collection<String> h = new ArrayList<String>();
                 h.add("addDeliveryHeader");
                 h.add("resetReturnPath");
                 c.addIterator(getMailetConfig().getInitParameterNames());

Modified: james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/UsersRepositoryAliasingForwarding.java
URL: http://svn.apache.org/viewvc/james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/UsersRepositoryAliasingForwarding.java?rev=883725&r1=883724&r2=883725&view=diff
==============================================================================
--- james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/UsersRepositoryAliasingForwarding.java (original)
+++ james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/UsersRepositoryAliasingForwarding.java Tue Nov 24 15:11:14 2009
@@ -24,12 +24,10 @@
 import java.util.ArrayList;
 import java.util.Collection;
 
+import javax.annotation.Resource;
 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.api.user.UsersRepository;
 import org.apache.james.api.user.UsersStore;
 import org.apache.james.api.vut.ErrorMappingException;
@@ -58,6 +56,7 @@
      * inboxes on this server.
      */
     private UsersRepository usersRepository;
+    private UsersStore usersStore;
 
     /**
      * Return a string describing this mailet.
@@ -68,6 +67,16 @@
         return "Local User Aliasing and Forwarding Mailet";
     }
 
+    @Resource(name="org.apache.james.api.user.UsersRepository")
+    public void setUsersRepository(UsersRepository usersRepository) {
+        this.usersRepository = usersRepository;
+    }
+    
+    @Resource(name="org.apache.james.api.user.UsersStore")
+    public void setUsersStore(UsersStore usersStore) {
+        this.usersStore = usersStore;
+    }
+    
     /**
      * Return null when the mail should be GHOSTed, the username string when it
      * should be changed due to the ignoreUser configuration.
@@ -77,7 +86,7 @@
      * @param message
      * @throws MessagingException
      */
-    public Collection processMail(MailAddress sender, MailAddress recipient,
+    public Collection<MailAddress> processMail(MailAddress sender, MailAddress recipient,
             MimeMessage message) throws MessagingException {
         if (recipient == null) {
             throw new IllegalArgumentException(
@@ -91,7 +100,7 @@
         if (usersRepository instanceof VirtualUserTable) {
             Collection<String> mappings;
             try {
-                mappings = ((VirtualUserTable) usersRepository).getMappings(recipient.getUser(), recipient.getHost());
+                mappings = ((VirtualUserTable) usersRepository).getMappings(recipient.getLocalPart(), recipient.getDomain());
             } catch (ErrorMappingException e) {
                 StringBuilder errorBuffer = new StringBuilder(128)
                     .append("A problem as occoured trying to alias and forward user ")
@@ -111,43 +120,27 @@
                 .append(" does not implement VirtualUserTable interface).");
             getMailetContext().log(errorBuffer.toString());
         }
-        String realName = usersRepository.getRealName(recipient.getUser());
+        String realName = usersRepository.getRealName(recipient.getLocalPart());
+      
+        ArrayList<MailAddress> ret = new ArrayList<MailAddress>();
         if (realName != null) {
-            ArrayList ret = new ArrayList();
-            ret.add(new MailAddress(realName, recipient.getHost()));
+            ret.add(new MailAddress(realName, recipient.getDomain()));
             return ret;
         } else {
-            ArrayList ret = new ArrayList();
             ret.add(recipient);
             return ret;
         }
     }
 
+    
     /**
      * @see org.apache.mailet.GenericMailet#init()
      */
     public void init() throws MessagingException {
         super.init();
-        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());
+        String userRep = getInitParameter("usersRepository");
+        if (userRep != null && userRep.length() > 0) {
+            usersRepository = usersStore.getRepository(userRep);
         }
 
     }

Modified: james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/VirtualUserTable.java
URL: http://svn.apache.org/viewvc/james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/VirtualUserTable.java?rev=883725&r1=883724&r2=883725&view=diff
==============================================================================
--- james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/VirtualUserTable.java (original)
+++ james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/VirtualUserTable.java Tue Nov 24 15:11:14 2009
@@ -59,7 +59,7 @@
      * Sets the virtual user table.
      * @param vut the vut to set
      */
-    @Resource(name="defaultvirtualusertable")
+    @Resource(name="org.apache.james.api.vut.VirtualUserTable")
     public final void setVut(org.apache.james.api.vut.VirtualUserTable vut) {
         this.vut = vut;
     }
@@ -76,7 +76,7 @@
      * Sets the virtual table store.
      * @param vutStore the vutStore to set, possibly null
      */
-    @Resource(name="virtualusertable-store")
+    @Resource(name="org.apache.james.api.vut.VirtualUserTable")
     public final void setVutStore(VirtualUserTableStore vutStore) {
         this.vutStore = vutStore;
     }



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