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 2011/05/15 14:57:43 UTC
svn commit: r1103358 - in /james/imap/trunk:
api/src/main/java/org/apache/james/imap/api/process/
message/src/test/java/org/apache/james/imap/encode/
processor/src/main/java/org/apache/james/imap/processor/
processor/src/test/java/org/apache/james/imap...
Author: norman
Date: Sun May 15 12:57:43 2011
New Revision: 1103358
URL: http://svn.apache.org/viewvc?rev=1103358&view=rev
Log:
make it more clear howto support many namespaces. Related to MAILBOX-11
Modified:
james/imap/trunk/api/src/main/java/org/apache/james/imap/api/process/ImapSession.java
james/imap/trunk/message/src/test/java/org/apache/james/imap/encode/FakeImapSession.java
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java
james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/ListProcessorTest.java
james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/NamespaceProcessorTest.java
james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/FakeMailboxListenerAdded.java
james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
Modified: james/imap/trunk/api/src/main/java/org/apache/james/imap/api/process/ImapSession.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/api/src/main/java/org/apache/james/imap/api/process/ImapSession.java?rev=1103358&r1=1103357&r2=1103358&view=diff
==============================================================================
--- james/imap/trunk/api/src/main/java/org/apache/james/imap/api/process/ImapSession.java (original)
+++ james/imap/trunk/api/src/main/java/org/apache/james/imap/api/process/ImapSession.java Sun May 15 12:57:43 2011
@@ -138,6 +138,13 @@ public interface ImapSession {
public void popLineHandler();
/**
+ * Return true if multiple namespaces are supported
+ *
+ * @return multipleNamespaces
+ */
+ public boolean supportMultipleNamespaces();
+
+ /**
* Return true if the login / authentication via plain username / password is
* disallowed
*
Modified: james/imap/trunk/message/src/test/java/org/apache/james/imap/encode/FakeImapSession.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/message/src/test/java/org/apache/james/imap/encode/FakeImapSession.java?rev=1103358&r1=1103357&r2=1103358&view=diff
==============================================================================
--- james/imap/trunk/message/src/test/java/org/apache/james/imap/encode/FakeImapSession.java (original)
+++ james/imap/trunk/message/src/test/java/org/apache/james/imap/encode/FakeImapSession.java Sun May 15 12:57:43 2011
@@ -111,13 +111,10 @@ public class FakeImapSession implements
return false;
}
- public void pushLineHandler(ImapLineHandler lineHandler) {
- // TODO Auto-generated method stub
-
+ public void pushLineHandler(ImapLineHandler lineHandler) {
}
public void popLineHandler() {
- // TODO Auto-generated method stub
}
@@ -129,4 +126,8 @@ public class FakeImapSession implements
return false;
}
+ public boolean supportMultipleNamespaces() {
+ return false;
+ }
+
}
Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java?rev=1103358&r1=1103357&r2=1103358&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java Sun May 15 12:57:43 2011
@@ -47,9 +47,9 @@ public class NamespaceProcessor extends
@Override
protected void doProcess(NamespaceRequest request, ImapSession session, String tag, ImapCommand command, Responder responder) {
final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session);
- final List<NamespaceResponse.Namespace> personalNamespaces = buildPersonalNamespaces(mailboxSession);
- final List<NamespaceResponse.Namespace> otherUsersNamespaces = buildOtherUsersSpaces(mailboxSession);
- final List<NamespaceResponse.Namespace> sharedNamespaces = buildSharedNamespaces(mailboxSession);
+ final List<NamespaceResponse.Namespace> personalNamespaces = buildPersonalNamespaces(mailboxSession, session);
+ final List<NamespaceResponse.Namespace> otherUsersNamespaces = buildOtherUsersSpaces(mailboxSession, session);
+ final List<NamespaceResponse.Namespace> sharedNamespaces = buildSharedNamespaces(mailboxSession, session);
final NamespaceResponse response = new NamespaceResponse(personalNamespaces, otherUsersNamespaces, sharedNamespaces);
responder.respond(response);
unsolicitedResponses(session, responder, false);
@@ -63,16 +63,20 @@ public class NamespaceProcessor extends
* not null
* @return personal namespaces, not null
*/
- private List<NamespaceResponse.Namespace> buildPersonalNamespaces(final MailboxSession mailboxSession) {
+ private List<NamespaceResponse.Namespace> buildPersonalNamespaces(final MailboxSession mailboxSession, ImapSession session) {
final List<NamespaceResponse.Namespace> personalSpaces = new ArrayList<NamespaceResponse.Namespace>();
- personalSpaces.add(new NamespaceResponse.Namespace(mailboxSession.getPersonalSpace(), mailboxSession.getPathDelimiter()));
+ String personal = "";
+ if (session.supportMultipleNamespaces()) {
+ personal = mailboxSession.getPersonalSpace();
+ }
+ personalSpaces.add(new NamespaceResponse.Namespace(personal, mailboxSession.getPathDelimiter()));
return personalSpaces;
}
- private List<NamespaceResponse.Namespace> buildOtherUsersSpaces(final MailboxSession mailboxSession) {
+ private List<NamespaceResponse.Namespace> buildOtherUsersSpaces(final MailboxSession mailboxSession, ImapSession session) {
final String otherUsersSpace = mailboxSession.getOtherUsersSpace();
final List<NamespaceResponse.Namespace> otherUsersSpaces;
- if (otherUsersSpace == null) {
+ if (session.supportMultipleNamespaces() == false || otherUsersSpace == null) {
otherUsersSpaces = null;
} else {
otherUsersSpaces = new ArrayList<NamespaceResponse.Namespace>(1);
@@ -81,10 +85,10 @@ public class NamespaceProcessor extends
return otherUsersSpaces;
}
- private List<NamespaceResponse.Namespace> buildSharedNamespaces(final MailboxSession mailboxSession) {
+ private List<NamespaceResponse.Namespace> buildSharedNamespaces(final MailboxSession mailboxSession, ImapSession session) {
List<NamespaceResponse.Namespace> sharedNamespaces = null;
final Collection<String> sharedSpaces = mailboxSession.getSharedSpaces();
- if (!sharedSpaces.isEmpty()) {
+ if (session.supportMultipleNamespaces() && !sharedSpaces.isEmpty()) {
sharedNamespaces = new ArrayList<NamespaceResponse.Namespace>(sharedSpaces.size());
for (String space : sharedSpaces) {
sharedNamespaces.add(new NamespaceResponse.Namespace(space, mailboxSession.getPathDelimiter()));
Modified: james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/ListProcessorTest.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/ListProcessorTest.java?rev=1103358&r1=1103357&r2=1103358&view=diff
==============================================================================
--- james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/ListProcessorTest.java (original)
+++ james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/ListProcessorTest.java Sun May 15 12:57:43 2011
@@ -25,6 +25,7 @@ import org.apache.james.imap.api.process
import org.apache.james.imap.api.process.ImapSession;
import org.apache.james.imap.api.process.MailboxType;
import org.apache.james.imap.message.response.ListResponse;
+import org.apache.james.mailbox.MailboxConstants;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxMetaData;
import org.apache.james.mailbox.MailboxPath;
@@ -80,7 +81,7 @@ public class ListProcessorTest {
boolean marked, boolean unmarked, boolean hasChildren,
boolean hasNoChildren, char hierarchyDelimiter, String mailboxName) {
return new ListResponse(noinferior, noselect, marked, unmarked,
- hasChildren, hasNoChildren, mailboxName, hierarchyDelimiter);
+ hasChildren, hasNoChildren, MailboxConstants.USER_NAMESPACE + MailboxConstants.DEFAULT_DELIMITER + mailboxName, hierarchyDelimiter);
}
void setUpResult(final MailboxMetaData.Children children, final MailboxMetaData.Selectability selectability,
Modified: james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/NamespaceProcessorTest.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/NamespaceProcessorTest.java?rev=1103358&r1=1103357&r2=1103358&view=diff
==============================================================================
--- james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/NamespaceProcessorTest.java (original)
+++ james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/NamespaceProcessorTest.java Sun May 15 12:57:43 2011
@@ -84,6 +84,7 @@ public class NamespaceProcessorTest {
@Test
public void testNamespaceResponseShouldContainPersonalAndUserSpaces() throws Exception {
mockery.checking (new Expectations() {{
+ allowing(imapSessionStub).supportMultipleNamespaces(); will(returnValue(true));
allowing(imapSessionStub).getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY); will(returnValue(mailboxSessionStub));
allowing(mailboxSessionStub).getPersonalSpace(); will(returnValue(PERSONAL_PREFIX));
allowing(mailboxSessionStub).getOtherUsersSpace(); will(returnValue(USERS_PREFIX));
@@ -109,6 +110,7 @@ public class NamespaceProcessorTest {
@Test
public void testNamespaceResponseShouldContainSharedSpaces() throws Exception {
mockery.checking (new Expectations() {{
+ allowing(imapSessionStub).supportMultipleNamespaces(); will(returnValue(true));
allowing(imapSessionStub).getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY); will(returnValue(mailboxSessionStub));
allowing(mailboxSessionStub).getPersonalSpace(); will(returnValue(PERSONAL_PREFIX));
allowing(mailboxSessionStub).getOtherUsersSpace(); will(returnValue(USERS_PREFIX));
Modified: james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/FakeMailboxListenerAdded.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/FakeMailboxListenerAdded.java?rev=1103358&r1=1103357&r2=1103358&view=diff
==============================================================================
--- james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/FakeMailboxListenerAdded.java (original)
+++ james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/FakeMailboxListenerAdded.java Sun May 15 12:57:43 2011
@@ -19,9 +19,8 @@
package org.apache.james.imap.processor.base;
-import java.util.HashMap;
+import java.util.Date;
import java.util.List;
-import java.util.Map;
import javax.mail.Flags;
@@ -46,9 +45,34 @@ public class FakeMailboxListenerAdded ex
return uids;
}
- @Override
- public Map<Long, Flags> getFlags() {
- return new HashMap<Long, Flags>();
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.james.mailbox.MailboxListener.Added#getMetaData(long)
+ */
+ public MessageMetaData getMetaData(long uid) {
+ return new MessageMetaData() {
+
+ public long getUid() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public long getSize() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public Date getInternalDate() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Flags getFlags() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ };
}
Modified: james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java?rev=1103358&r1=1103357&r2=1103358&view=diff
==============================================================================
--- james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java (original)
+++ james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java Sun May 15 12:57:43 2011
@@ -184,6 +184,10 @@ public class MailboxEventAnalyserTest {
// TODO Auto-generated method stub
return false;
}
+
+ public boolean supportMultipleNamespaces() {
+ return false;
+ }
};
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org