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