Author: rdonkin
Date: Wed May 30 13:18:59 2007
New Revision: 542924
URL: http://svn.apache.org/viewvc?view=rev&rev=542924
Log:
Factored coupling between ImapSession and MailboxManager into Processor.
Unfortunately, separation of torque implementation into separate module meant
that integration tests no longer function in the experimental module. As a
temporary measure copied torque implementation into test module.
Added:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/mailboxmanager/torque/
- copied from r542886,
james/server/sandbox/seda-imap-modular/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapHandler.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSession.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/base/AbstractMailboxAwareProcessor.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractListingProcessor.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AppendProcessor.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CopyProcessor.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CreateProcessor.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/DeleteProcessor.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/Imap4Rev1ProcessorFactory.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ListProcessor.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LsubProcessor.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/RenameProcessor.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StatusProcessor.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SubscribeProcessor.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/UnsubscribeProcessor.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/MockImapSession.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/commands/AbstractCommandTest.java
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/session/AbstractSessionTest.java
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapHandler.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapHandler.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapHandler.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapHandler.java
Wed May 30 13:18:59 2007
@@ -148,8 +148,7 @@
+ theConfigData.getHelloName() + " ready");
sessionEnded = false;
- session = new ImapSessionImpl(
theConfigData.getMailboxManagerProvider(),
- this,
+ session = new ImapSessionImpl( this,
socket.getInetAddress().getHostName(),
socket.getInetAddress().getHostAddress());
setupLogger(session);
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSession.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSession.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSession.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSession.java
Wed May 30 13:18:59 2007
@@ -23,7 +23,6 @@
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
-import org.apache.james.mailboxmanager.manager.MailboxManager;
import org.apache.james.services.User;
@@ -111,6 +110,23 @@
*/
void closeMailbox() throws MailboxManagerException;
- MailboxManager getMailboxManager() throws MailboxManagerException;
-
+ /**
+ * Gets an attribute of this session by name.
+ * Implementations should ensure that access
+ * is thread safe.
+ * @param key name of the key, not null
+ * @return <code>Object</code> value
+ * or null if this attribute has unvalued
+ */
+ public Object getAttribute(String key);
+
+ /**
+ * Sets an attribute of this session by name.
+ * Implementations should ensure that access
+ * is thread safe.
+ * @param key name of the key, not null
+ * @param value <code>Object</code> value
+ * or null to set this attribute as unvalued
+ */
+ public void setAttribute(String key, Object value);
}
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java
Wed May 30 13:18:59 2007
@@ -20,6 +20,8 @@
package org.apache.james.experimental.imapserver;
+import java.util.Map;
+
import javax.mail.Flags;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
@@ -30,10 +32,10 @@
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.MessageResult;
import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
-import org.apache.james.mailboxmanager.manager.MailboxManager;
-import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
import org.apache.james.services.User;
+import EDU.oswego.cs.dl.util.concurrent.ConcurrentHashMap;
+
/**
* @version $Revision: 109034 $
*/
@@ -46,22 +48,18 @@
private final String clientHostName;
private final String clientAddress;
- // TODO these shouldn't be in here - they can be provided directly to
command components.
private ImapHandlerInterface handler;
- private MailboxManagerProvider mailboxManagerProvider;
- private MailboxManager mailboxManager = null;
- private User mailboxManagerUser = null;
+ private final Map attributesByKey;
- public ImapSessionImpl( MailboxManagerProvider mailboxManagerProvider,
- ImapHandlerInterface handler,
+ public ImapSessionImpl( ImapHandlerInterface handler,
String clientHostName,
String clientAddress )
{
- this.mailboxManagerProvider = mailboxManagerProvider;
this.handler = handler;
this.clientHostName = clientHostName;
this.clientAddress = clientAddress;
+ this.attributesByKey = new ConcurrentHashMap();
}
public void unsolicitedResponses( ImapResponse request, boolean useUid )
throws MailboxException {
@@ -182,21 +180,16 @@
}
+ public Object getAttribute(String key) {
+ final Object result = attributesByKey.get(key);
+ return result;
+ }
- public MailboxManager getMailboxManager() throws MailboxManagerException {
- final boolean usersEqual;
- if (mailboxManagerUser!=null) {
- usersEqual=mailboxManagerUser.equals(user);
+ public void setAttribute(String key, Object value) {
+ if (value == null) {
+ attributesByKey.remove(key);
} else {
- usersEqual=(user==null);
- }
- if (mailboxManager==null || !usersEqual) {
- if (mailboxManager!=null) {
- mailboxManager.close();
- }
-
mailboxManager=mailboxManagerProvider.getMailboxManagerInstance(user);
- mailboxManager.createInbox(user);
+ attributesByKey.put(key, value);
}
- return mailboxManager;
}
}
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/base/AbstractMailboxAwareProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/base/AbstractMailboxAwareProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/base/AbstractMailboxAwareProcessor.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/base/AbstractMailboxAwareProcessor.java
Wed May 30 13:18:59 2007
@@ -21,11 +21,16 @@
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.processor.ImapProcessor;
import org.apache.james.mailboxmanager.MailboxManagerException;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
import org.apache.james.services.User;
abstract public class AbstractMailboxAwareProcessor extends
AbstractImapRequestProcessor {
+ // TODO: move into ImapConstants
+ public static final String MAILBOX_ATTRIBUTE_SESSION_KEY
+ = "org.apache.james.api.imap.MAILBOX_ATTRIBUTE_SESSION_KEY";
+
private final MailboxManagerProvider mailboxManagerProvider;
public AbstractMailboxAwareProcessor(final ImapProcessor next,
@@ -40,5 +45,24 @@
mailboxName =
mailboxManagerProvider.getPersonalDefaultNamespace(user).getName()+HIERARCHY_DELIMITER+mailboxName;
}
return mailboxName;
+ }
+
+ public MailboxManager getMailboxManager( final ImapSession session )
throws MailboxManagerException {
+ // TODO: removed badly implemented and ineffective check that mailbox
user matches current user
+ // TODO: add check into user login methods
+ MailboxManager result = (MailboxManager) session.getAttribute(
MAILBOX_ATTRIBUTE_SESSION_KEY );
+ if (result == null) {
+ // TODO: handle null user
+ final User user = session.getUser();
+ result = mailboxManagerProvider.getMailboxManagerInstance(user);
+ result.createInbox(user);
+ // TODO: reconsider decision not to sunchronise
+ // TODO: mailbox creation is ATM an expensive operation
+ // TODO: so caching is required
+ // TODO: caching in the session seems like the wrong design
decision, though
+ // TODO: the mailbox provider should perform any caching that is
required
+ session.setAttribute( MAILBOX_ATTRIBUTE_SESSION_KEY, result );
+ }
+ return result;
}
}
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractListingProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractListingProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractListingProcessor.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractListingProcessor.java
Wed May 30 13:18:59 2007
@@ -27,17 +27,20 @@
import
org.apache.james.experimental.imapserver.message.response.ImapResponseMessage;
import
org.apache.james.experimental.imapserver.message.response.imap4rev1.ListResponse;
import org.apache.james.experimental.imapserver.processor.ImapProcessor;
-import
org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
+import
org.apache.james.experimental.imapserver.processor.base.AbstractMailboxAwareProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.ListResult;
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.impl.ListResultImpl;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
+import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
-abstract class AbstractListingProcessor extends AbstractImapRequestProcessor {
+abstract class AbstractListingProcessor extends AbstractMailboxAwareProcessor {
- public AbstractListingProcessor(final ImapProcessor next) {
- super(next);
+ public AbstractListingProcessor(final ImapProcessor next,
+ final MailboxManagerProvider mailboxManagerProvider) {
+ super(next, mailboxManagerProvider);
}
protected final ImapResponseMessage doProcess(final String
baseReferenceName, final String mailboxPattern,
@@ -144,7 +147,9 @@
protected final ListResult[] doList( ImapSession session, String base,
String pattern, boolean subscribed ) throws MailboxException
{
try {
- return session.getMailboxManager().list(base,pattern,false);
+ final MailboxManager mailboxManager = getMailboxManager(session);
+ final ListResult[] result =
mailboxManager.list(base,pattern,false);
+ return result;
} catch (MailboxManagerException e) {
throw new MailboxException(e);
}
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
Wed May 30 13:18:59 2007
@@ -33,6 +33,7 @@
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.MessageResult;
import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
@@ -68,7 +69,8 @@
}
private boolean selectMailbox(String mailboxName, ImapSession session,
boolean readOnly) throws MailboxException, MailboxManagerException {
- ImapMailboxSession mailbox =
session.getMailboxManager().getImapMailboxSession(mailboxName);
+ final MailboxManager mailboxManager = getMailboxManager(session);
+ final ImapMailboxSession mailbox =
mailboxManager.getImapMailboxSession(mailboxName);
if ( !mailbox.isSelectable() ) {
throw new MailboxException( "Nonselectable mailbox." );
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AppendProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AppendProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AppendProcessor.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AppendProcessor.java
Wed May 30 13:18:59 2007
@@ -37,6 +37,7 @@
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
public class AppendProcessor extends AbstractMailboxAwareProcessor {
@@ -79,8 +80,8 @@
ImapMailboxSession mailbox = null;
try {
mailboxName = buildFullName(session, mailboxName);
- mailbox = session.getMailboxManager().getImapMailboxSession(
- mailboxName);
+ final MailboxManager mailboxManager = getMailboxManager(session);
+ mailbox = mailboxManager.getImapMailboxSession(mailboxName);
} catch (MailboxManagerException mme) {
MailboxException me = new MailboxException(mme);
me.setResponseCode("TRYCREATE");
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CopyProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CopyProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CopyProcessor.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CopyProcessor.java
Wed May 30 13:18:59 2007
@@ -36,6 +36,7 @@
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.impl.GeneralMessageSetImpl;
import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
@@ -69,14 +70,15 @@
ImapMailboxSession currentMailbox = session.getSelected().getMailbox();
try {
String fullMailboxName = buildFullName(session, mailboxName);
- if (!session.getMailboxManager().existsMailbox(fullMailboxName)) {
+ final MailboxManager mailboxManager = getMailboxManager(session);
+ if (!mailboxManager.existsMailbox(fullMailboxName)) {
MailboxException e=new MailboxException("Mailbox does not
exists");
e.setResponseCode( "TRYCREATE" );
throw e;
}
for (int i = 0; i < idSet.length; i++) {
GeneralMessageSet
messageSet=GeneralMessageSetImpl.range(idSet[i].getLowVal(),idSet[i].getHighVal(),useUids);
-
session.getMailboxManager().copyMessages(currentMailbox,messageSet,fullMailboxName);
+
mailboxManager.copyMessages(currentMailbox,messageSet,fullMailboxName);
}
} catch (MailboxManagerException e) {
throw new MailboxException(e);
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CreateProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CreateProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CreateProcessor.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CreateProcessor.java
Wed May 30 13:18:59 2007
@@ -32,6 +32,7 @@
import
org.apache.james.experimental.imapserver.processor.base.AbstractMailboxAwareProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
@@ -64,7 +65,8 @@
try {
final String fullMailboxName=buildFullName(session, mailboxName);
- session.getMailboxManager().createMailbox(fullMailboxName );
+ final MailboxManager mailboxManager = getMailboxManager(session);
+ mailboxManager.createMailbox( fullMailboxName );
} catch (MailboxManagerException e) {
throw new MailboxException(e);
}
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/DeleteProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/DeleteProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/DeleteProcessor.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/DeleteProcessor.java
Wed May 30 13:18:59 2007
@@ -32,6 +32,7 @@
import
org.apache.james.experimental.imapserver.processor.base.AbstractMailboxAwareProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
@@ -68,7 +69,8 @@
session.deselect();
}
}
- session.getMailboxManager().deleteMailbox(fullMailboxName);
+ final MailboxManager mailboxManager = getMailboxManager(session);
+ mailboxManager.deleteMailbox(fullMailboxName);
} catch (MailboxManagerException e) {
throw new MailboxException(e);
}
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/Imap4Rev1ProcessorFactory.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/Imap4Rev1ProcessorFactory.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/Imap4Rev1ProcessorFactory.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/Imap4Rev1ProcessorFactory.java
Wed May 30 13:18:59 2007
@@ -29,8 +29,8 @@
final StoreProcessor storeProcessor = new
StoreProcessor(appendProcessor);
final NoopProcessor noopProcessor = new NoopProcessor(storeProcessor);
final StatusProcessor statusProcessor = new
StatusProcessor(noopProcessor, mailboxManagerProvider);
- final LsubProcessor lsubProcessor = new LsubProcessor(statusProcessor);
- final ListProcessor listProcessor = new ListProcessor(lsubProcessor);
+ final LsubProcessor lsubProcessor = new LsubProcessor(statusProcessor,
mailboxManagerProvider);
+ final ListProcessor listProcessor = new ListProcessor(lsubProcessor,
mailboxManagerProvider);
final SearchProcessor searchProcessor = new
SearchProcessor(listProcessor);
final SelectProcessor selectProcessor = new
SelectProcessor(searchProcessor, mailboxManagerProvider);
final ImapProcessor result = new FetchProcessor(selectProcessor);
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ListProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ListProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ListProcessor.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ListProcessor.java
Wed May 30 13:18:59 2007
@@ -30,12 +30,14 @@
import org.apache.james.experimental.imapserver.processor.ImapProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.ListResult;
+import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
public class ListProcessor extends AbstractListingProcessor {
- public ListProcessor(final ImapProcessor next) {
- super(next);
+ public ListProcessor(final ImapProcessor next,
+ final MailboxManagerProvider mailboxManagerProvider) {
+ super(next, mailboxManagerProvider);
}
protected boolean isAcceptable(ImapMessage message) {
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LsubProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LsubProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LsubProcessor.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LsubProcessor.java
Wed May 30 13:18:59 2007
@@ -30,12 +30,14 @@
import org.apache.james.experimental.imapserver.processor.ImapProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.ListResult;
+import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
public class LsubProcessor extends AbstractListingProcessor {
- public LsubProcessor(final ImapProcessor next) {
- super(next);
+ public LsubProcessor(final ImapProcessor next,
+ final MailboxManagerProvider mailboxManagerProvider) {
+ super(next, mailboxManagerProvider);
}
protected boolean isAcceptable(ImapMessage message) {
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/RenameProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/RenameProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/RenameProcessor.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/RenameProcessor.java
Wed May 30 13:18:59 2007
@@ -32,6 +32,7 @@
import
org.apache.james.experimental.imapserver.processor.base.AbstractMailboxAwareProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
@@ -64,7 +65,8 @@
try {
final String fullExistingName=buildFullName(session, existingName);
final String fullNewName=buildFullName(session, newName);
- session.getMailboxManager().renameMailbox( fullExistingName,
fullNewName );
+ final MailboxManager mailboxManager = getMailboxManager(session);
+ mailboxManager.renameMailbox( fullExistingName, fullNewName );
} catch (MailboxManagerException e) {
throw new MailboxException(e);
}
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StatusProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StatusProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StatusProcessor.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StatusProcessor.java
Wed May 30 13:18:59 2007
@@ -36,6 +36,7 @@
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
@@ -79,7 +80,8 @@
logger.debug("Status called on mailbox named " + mailboxName +
" (" + fullMailboxName + ")");
}
- ImapMailboxSession mailbox =
session.getMailboxManager().getImapMailboxSession(fullMailboxName);
+ final MailboxManager mailboxManager = getMailboxManager(session);
+ final ImapMailboxSession mailbox =
mailboxManager.getImapMailboxSession(fullMailboxName);
if (statusDataItems.isMessages()) {
buffer.append(ImapConstants.STATUS_MESSAGES);
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SubscribeProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SubscribeProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SubscribeProcessor.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SubscribeProcessor.java
Wed May 30 13:18:59 2007
@@ -32,6 +32,7 @@
import
org.apache.james.experimental.imapserver.processor.base.AbstractMailboxAwareProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
@@ -62,7 +63,8 @@
ImapSession session, String tag, ImapCommand command)
throws MailboxException, AuthorizationException, ProtocolException {
try {
final String fullMailboxName = buildFullName(session, mailboxName);
- session.getMailboxManager().setSubscription(fullMailboxName,true);
+ final MailboxManager mailboxManager = getMailboxManager(session);
+ mailboxManager.setSubscription(fullMailboxName,true);
} catch (MailboxManagerException e) {
throw new MailboxException(e);
}
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/UnsubscribeProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/UnsubscribeProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/UnsubscribeProcessor.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/UnsubscribeProcessor.java
Wed May 30 13:18:59 2007
@@ -32,6 +32,7 @@
import
org.apache.james.experimental.imapserver.processor.base.AbstractMailboxAwareProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
@@ -62,7 +63,8 @@
ImapSession session, String tag, ImapCommand command)
throws MailboxException, AuthorizationException, ProtocolException {
try {
final String fullMailboxName=buildFullName(session, mailboxName);
- session.getMailboxManager().setSubscription(fullMailboxName,false);
+ final MailboxManager mailboxManager = getMailboxManager(session);
+ mailboxManager.setSubscription(fullMailboxName,false);
} catch (MailboxManagerException e) {
throw new MailboxException(e);
}
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/MockImapSession.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/MockImapSession.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/MockImapSession.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/MockImapSession.java
Wed May 30 13:18:59 2007
@@ -1,5 +1,8 @@
package org.apache.james.experimental.imapserver;
+import java.util.HashMap;
+import java.util.Map;
+
import org.apache.james.api.imap.ImapSessionState;
import org.apache.james.experimental.imapserver.ImapResponse;
import org.apache.james.experimental.imapserver.ImapSession;
@@ -16,6 +19,8 @@
public String clientHostName = "localhost";
public String clientIP = "127.0.0.1";
+ public Map attributes = new HashMap();
+
public String buildFullName(String mailboxName)
throws MailboxManagerException {
return mailboxName;
@@ -61,11 +66,6 @@
return null;
}
- public UsersRepository getUsers() {
- // TODO: mock
- return null;
- }
-
public void setAuthenticated(User user) {
}
@@ -80,5 +80,13 @@
public void unsolicitedResponses(ImapResponse request,
boolean omitExpunged, boolean useUid) throws MailboxException {
+ }
+
+ public Object getAttribute(String key) {
+ return attributes.get(key);
+ }
+
+ public void setAttribute(String key, Object value) {
+ attributes.put(key, value);
}
}
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/commands/AbstractCommandTest.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/commands/AbstractCommandTest.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/commands/AbstractCommandTest.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/commands/AbstractCommandTest.java
Wed May 30 13:18:59 2007
@@ -27,7 +27,9 @@
import org.apache.james.experimental.imapserver.ImapRequestHandler;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.StandardFactory;
+import
org.apache.james.experimental.imapserver.processor.base.AbstractMailboxAwareProcessor;
import
org.apache.james.experimental.imapserver.processor.main.DefaultImapProcessorFactory;
+import org.apache.james.imapserver.codec.decode.base.AbstractImapCommandParser;
import org.apache.james.mailboxmanager.Namespace;
import org.apache.james.mailboxmanager.manager.MailboxManager;
import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
@@ -74,7 +76,8 @@
}
protected void setUpMailboxManager() {
-
mockSession.expects(atLeastOnce()).method("getMailboxManager").withNoArguments().will(returnValue(mockMailboxManager.proxy()));
+ mockSession.expects(atLeastOnce()).method("getAttribute")
+
.with(eq(AbstractMailboxAwareProcessor.MAILBOX_ATTRIBUTE_SESSION_KEY)).will(returnValue(mockMailboxManager.proxy()));
}
protected void setUpNamespace(String userDefaultNamespace) {
Modified:
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/session/AbstractSessionTest.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/session/AbstractSessionTest.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
---
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/session/AbstractSessionTest.java
(original)
+++
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/session/AbstractSessionTest.java
Wed May 30 13:18:59 2007
@@ -79,7 +79,7 @@
MockImapHandlerConfigurationData theConfigData = new
MockImapHandlerConfigurationData();
theConfigData.getMailboxManagerProvider().deleteEverything();
- session = new
ImapSessionImpl(theConfigData.getMailboxManagerProvider(),
+ session = new ImapSessionImpl(
new MockImapHandler(),
HOST_NAME, HOST_ADDRESS);
((LogEnabled)session).enableLogging(new MockLogger());
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]