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 2010/01/08 18:02:10 UTC

svn commit: r897263 - in /james/server/trunk: imapserver-function/src/main/java/org/apache/james/imapserver/ imapserver-function/src/main/java/org/apache/james/mailboxmanager/torque/ spring-deployment/src/main/config/james/

Author: norman
Date: Fri Jan  8 17:01:15 2010
New Revision: 897263

URL: http://svn.apache.org/viewvc?rev=897263&view=rev
Log:
just use jsr250 and spring for wire imap stuff together (removing ugly init code)

Removed:
    james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/DefaultImapFactory.java
Modified:
    james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapFactory.java
    james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapServerProtocolHandlerFactory.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/spring-deployment/src/main/config/james/spring-beans.xml

Modified: james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapFactory.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapFactory.java?rev=897263&r1=897262&r2=897263&view=diff
==============================================================================
--- james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapFactory.java (original)
+++ james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapFactory.java Fri Jan  8 17:01:15 2010
@@ -19,9 +19,11 @@
 
 package org.apache.james.imapserver;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
-import org.apache.james.api.user.UsersRepository;
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.decode.ImapDecoder;
 import org.apache.james.imap.encode.ImapEncoder;
@@ -30,28 +32,33 @@
 import org.apache.james.imap.main.DefaultImapDecoderFactory;
 import org.apache.james.imap.main.ImapRequestHandler;
 import org.apache.james.imap.processor.main.DefaultImapProcessorFactory;
-import org.apache.james.services.FileSystem;
 
-public abstract class ImapFactory {
+public class ImapFactory {
 
     private final ImapEncoder encoder;
     private final ImapDecoder decoder;
-    private final ImapProcessor processor;
-    private final MailboxManager mailboxManager;
+    private ImapProcessor processor;
+    private MailboxManager mailboxManager;
 
-    public ImapFactory (FileSystem fileSystem, UsersRepository users,
-            final MailboxManager mailboxManager) {
-        super();
+    public ImapFactory () {
         decoder = new DefaultImapDecoderFactory().buildImapDecoder();
         encoder = new DefaultImapEncoderFactory().buildImapEncoder();
-        processor = DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager);
-        this.mailboxManager = mailboxManager;
     } 
     
+    @Resource(name="mailboxmanager")
+    public void setMailboxManager(MailboxManager mailboxManager) {
+        this.mailboxManager = mailboxManager;
+    }
+    
     public ImapRequestHandler createHandler() { 
         return new ImapRequestHandler(decoder, processor, encoder);
     }
 
+    @PostConstruct
+    public void init() {
+        processor = DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager);
+    }
+    
     /**
      * This is required until James supports IoC assembly.
      * @return the mailbox
@@ -59,12 +66,5 @@
     public final MailboxManager getMailbox() {
         return mailboxManager;
     }
-
-    public void init() throws Exception {
-        // Do nothing
-    }
-
-    public void configure(final HierarchicalConfiguration configuration) throws ConfigurationException {
-        // Do nothing
-    }
+    
 }

Modified: james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapServerProtocolHandlerFactory.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapServerProtocolHandlerFactory.java?rev=897263&r1=897262&r2=897263&view=diff
==============================================================================
--- james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapServerProtocolHandlerFactory.java (original)
+++ james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapServerProtocolHandlerFactory.java Fri Jan  8 17:01:15 2010
@@ -56,52 +56,18 @@
      
     private ImapFactory factory;
     
-    private String hello = softwaretype;
-
-    private UsersRepository usersRepos;
-    private HierarchicalConfiguration configuration;
-
-    private FileSystem fSystem;
-
     private MailServer mailServer;
-
-    @Resource(name="localusersrepository")
-    public void setUsersRepository(UsersRepository usersRepos) {
-        this.usersRepos = usersRepos;
-    }
     
-    @Resource(name="filesystem")
-    public void setFileSystem(FileSystem fSystem) {
-        this.fSystem = fSystem;
-    }
+    private String hello;
     
     @Resource(name="James")
     public void setMailSerer(MailServer mailServer) {
         this.mailServer = mailServer;
     }
-    
-
-    @PostConstruct
-    @Override
-    public void init() throws Exception {
-        super.init();
-    }
-
-    @Override
-    public  void onInit() throws Exception {
-        getLogger().debug("Initialising...");
-        factory = new DefaultImapFactory(fSystem, usersRepos, getLogger());
-        factory.configure(configuration);
-
-        factory.init();
-    }
-
-
 
     @Override
     public void onConfigure( final HierarchicalConfiguration configuration ) throws ConfigurationException {
         hello  = softwaretype + " Server " + getHelloName() + " is ready.";
-        this.configuration = configuration;
     }
     
     /**
@@ -117,6 +83,11 @@
     public String getServiceType() {
         return "IMAP Service";
     }
+    
+    @Resource(name="imapFactory")
+    public void setImapFactory(ImapFactory factory) {
+        this.factory = factory;
+    }
 
     /**
      * Producing handlers.

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=897263&r1=897262&r2=897263&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 Fri Jan  8 17:01:15 2010
@@ -28,6 +28,9 @@
 import java.util.List;
 import java.util.Locale;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+
 import org.apache.commons.configuration.BaseConfiguration;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
@@ -35,6 +38,8 @@
 import org.apache.commons.logging.Log;
 import org.apache.james.imap.api.display.HumanReadableText;
 import org.apache.james.imap.mailbox.MailboxException;
+import org.apache.james.lifecycle.Configurable;
+import org.apache.james.lifecycle.LogEnabled;
 import org.apache.james.mailboxmanager.torque.om.MailboxRowPeer;
 import org.apache.james.mailboxmanager.torque.om.MessageBodyPeer;
 import org.apache.james.mailboxmanager.torque.om.MessageFlagsPeer;
@@ -47,7 +52,7 @@
 import org.apache.torque.util.BasePeer;
 import org.apache.torque.util.Transaction;
 
-public class DefaultMailboxManager extends TorqueMailboxManager {
+public class DefaultMailboxManager extends TorqueMailboxManager implements Configurable, LogEnabled{
 
     private static final String[] tableNames = new String[] {
         MailboxRowPeer.TABLE_NAME, MessageRowPeer.TABLE_NAME,
@@ -58,17 +63,20 @@
 
     private boolean initialized;
 
-    private final FileSystem fileSystem;
+    private FileSystem fileSystem;
     private String configFile;
     
-    public DefaultMailboxManager(UserManager userManager, FileSystem fileSystem, Log logger) {
-        super(userManager);
-        this.fileSystem = fileSystem;
-        log = logger;
+    public DefaultMailboxManager(UserManager userManager) {
+        super(userManager);       
     }
 
+    @Resource(name="filesystem")
+    public void setFileSystem(FileSystem fileSystem) {
+        this.fileSystem = fileSystem;
+    }
     
-    public void initialize() throws Exception {
+    @PostConstruct
+    public void init() throws Exception {
         if (!initialized) {
             if (torqueConf == null) {
                 throw new RuntimeException("must be configured first!");
@@ -180,4 +188,13 @@
             }
         }
     }
+
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.james.lifecycle.LogEnabled#setLog(org.apache.commons.logging.Log)
+     */
+    public void setLog(Log log) {
+        this.log = log;
+    }
 }

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=897263&r1=897262&r2=897263&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 Fri Jan  8 17:01:15 2010
@@ -24,6 +24,8 @@
 import java.util.HashSet;
 import java.util.Map;
 
+import javax.annotation.Resource;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.james.api.user.UserMetaDataRespository;
@@ -42,18 +44,25 @@
     
     private Log log = LogFactory.getLog(DefaultUserManager.class);
     
-    private final UserMetaDataRespository repository;
+    private UserMetaDataRespository repository;
     private final Map userSubscriptionsByUser;
     
-    private final UsersRepository usersRepository;
+    private UsersRepository usersRepository;
     
-    public DefaultUserManager(final UserMetaDataRespository repository, final UsersRepository usersRepository) {
-        super();
-        this.repository = repository;
+    public DefaultUserManager() {
         userSubscriptionsByUser = new HashMap();
+    }
+    
+    @Resource(name="localusersrepository")
+    public void setUsersRepository(UsersRepository usersRepository) {
         this.usersRepository = usersRepository;
     }
 
+    @Resource(name="userMetaDataRepository")
+    public void setUserMetaDataRespository(UserMetaDataRespository repository) {
+        this.repository = repository;
+    }
+
     public void subscribe(String user, String mailbox)
             throws SubscriptionException {
         try {

Modified: james/server/trunk/spring-deployment/src/main/config/james/spring-beans.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/spring-deployment/src/main/config/james/spring-beans.xml?rev=897263&r1=897262&r2=897263&view=diff
==============================================================================
--- james/server/trunk/spring-deployment/src/main/config/james/spring-beans.xml (original)
+++ james/server/trunk/spring-deployment/src/main/config/james/spring-beans.xml Fri Jan  8 17:01:15 2010
@@ -101,6 +101,7 @@
 				<entry key="nntpserver.protocolhandlerfactory" value="nntpserver" />
 				<entry key="imapserver.protocolserver" value="imapserver" />
 				<entry key="imapserver.protocolhandlerfactory" value="imapserver" />
+				<entry key="mailboxmanager" value="imapserver" />				
 				<entry key="remotemanager.protocolserver" value="remotemanager" />
 				<entry key="remotemanager.protocolhandlerfactory" value="remotemanager" />
 			</map>
@@ -315,6 +316,17 @@
 		<property name="protocolHandlerFactory" ref="imapserver.protocolhandlerfactory" />
 	</bean>
 	
+	<bean id="imapFactory" class="org.apache.james.imapserver.ImapFactory"/>
+	
+	<bean id="mailboxmanager" class="org.apache.james.mailboxmanager.torque.DefaultMailboxManager">
+		 	<constructor-arg index="0" ref="userManager"/>
+	</bean>
+	
+    <bean id="userManager" class="org.apache.james.mailboxmanager.torque.DefaultUserManager"/>
+	
+	<bean id="userMetaDataRepository" class="org.apache.james.user.impl.file.FileUserMetaDataRepository">
+	 	<constructor-arg index="0" value="var/users"/>
+	 </bean>
 	<!--
 		####################################################################
 	-->



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