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/07/06 08:16:22 UTC
svn commit: r960801 - in /james/imap/trunk:
mailbox/src/main/java/org/apache/james/imap/mailbox/
mailbox/src/main/java/org/apache/james/imap/mailbox/util/
message/src/main/java/org/apache/james/imap/encode/
message/src/main/java/org/apache/james/imap/m...
Author: norman
Date: Tue Jul 6 06:16:22 2010
New Revision: 960801
URL: http://svn.apache.org/viewvc?rev=960801&view=rev
Log:
make namespaces simple String (IMAP-178). Patch was contributed by Tim Christian Mundt. Thx!
Added:
james/imap/trunk/parent/target/
james/imap/trunk/parent/target/maven-shared-archive-resources/
james/imap/trunk/parent/target/maven-shared-archive-resources/META-INF/
james/imap/trunk/parent/target/maven-shared-archive-resources/META-INF/DEPENDENCIES
james/imap/trunk/parent/target/maven-shared-archive-resources/META-INF/LICENSE
james/imap/trunk/parent/target/maven-shared-archive-resources/META-INF/NOTICE
Removed:
james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/util/SimpleMailboxNamespace.java
Modified:
james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxSession.java
james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/NamespaceResponseEncoder.java
james/imap/trunk/message/src/main/java/org/apache/james/imap/message/response/NamespaceResponse.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/NamespaceProcessorTest.java
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/SimpleMailboxSession.java
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java
james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
Modified: james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxSession.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxSession.java?rev=960801&r1=960800&r2=960801&view=diff
==============================================================================
--- james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxSession.java (original)
+++ james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxSession.java Tue Jul 6 06:16:22 2010
@@ -98,7 +98,7 @@ public interface MailboxSession {
* use cases emerge.
* @return Personal Namespace, not null
*/
- public Namespace getPersonalSpace();
+ public String getPersonalSpace();
/**
* Gets the <a href='http://www.isi.edu/in-notes/rfc2342.txt' rel='tag'>RFC 2342</a>
@@ -109,14 +109,14 @@ public interface MailboxSession {
* @return Other Users Namespace
* or null when there is non available
*/
- public Namespace getOtherUsersSpace();
+ public String getOtherUsersSpace();
/**
* Iterates the <a href='http://www.isi.edu/in-notes/rfc2342.txt' rel='tag'>RFC 2342</a>
* Shared Namespaces available for the current session.
* @return not null though possibly empty
*/
- public Collection<Namespace> getSharedSpaces();
+ public Collection<String> getSharedSpaces();
/**
@@ -126,24 +126,5 @@ public interface MailboxSession {
*/
public Map<Object,Object> getAttributes();
- /**
- * Describes a <a href='http://www.isi.edu/in-notes/rfc2342.txt' rel='tag'>RFC 2342</a> namespace.
- */
- public interface Namespace {
-
- /**
- * Gets the hierachy deliminator for this namespace.
- * @return character that delimits this hierarchy
- */
- public char getDeliminator();
-
- /**
- * Gets the prefix for this namespace.
- * Clients will prefix
- * @return not null, though may be empty
- */
- public String getPrefix();
- }
-
}
Modified: james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/NamespaceResponseEncoder.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/NamespaceResponseEncoder.java?rev=960801&r1=960800&r2=960801&view=diff
==============================================================================
--- james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/NamespaceResponseEncoder.java (original)
+++ james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/NamespaceResponseEncoder.java Tue Jul 6 06:16:22 2010
@@ -73,7 +73,7 @@ public class NamespaceResponseEncoder ex
throws IOException {
composer.openParen();
composer.quote(namespace.getPrefix());
- composer.quote(Character.toString(namespace.getDeliminator()));
+ composer.quote(Character.toString(namespace.getDelimiter()));
composer.closeParen();
}
Modified: james/imap/trunk/message/src/main/java/org/apache/james/imap/message/response/NamespaceResponse.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/message/src/main/java/org/apache/james/imap/message/response/NamespaceResponse.java?rev=960801&r1=960800&r2=960801&view=diff
==============================================================================
--- james/imap/trunk/message/src/main/java/org/apache/james/imap/message/response/NamespaceResponse.java (original)
+++ james/imap/trunk/message/src/main/java/org/apache/james/imap/message/response/NamespaceResponse.java Tue Jul 6 06:16:22 2010
@@ -74,21 +74,21 @@ public class NamespaceResponse implement
public static final class Namespace {
private final String prefix;
- private final char deliminator;
+ private final char delimiter;
- public Namespace(final String prefix, final char deliminator) {
+ public Namespace(final String prefix, final char delimiter) {
super();
this.prefix = prefix;
- this.deliminator = deliminator;
+ this.delimiter = delimiter;
}
/**
- * Gets the deliminator used to separate mailboxes.
+ * Gets the delimiter used to separate mailboxes.
*
* @return not null
*/
- public char getDeliminator() {
- return deliminator;
+ public char getDelimiter() {
+ return delimiter;
}
/**
@@ -103,7 +103,7 @@ public class NamespaceResponse implement
public int hashCode() {
final int PRIME = 31;
int result = 1;
- result = PRIME * result + deliminator;
+ result = PRIME * result + delimiter;
result = PRIME * result + ((prefix == null) ? 0 : prefix.hashCode());
return result;
}
@@ -117,7 +117,7 @@ public class NamespaceResponse implement
if (getClass() != obj.getClass())
return false;
final Namespace other = (Namespace) obj;
- if (deliminator != other.deliminator)
+ if (delimiter != other.delimiter)
return false;
if (prefix == null) {
if (other.prefix != null)
@@ -129,7 +129,7 @@ public class NamespaceResponse implement
@Override
public String toString() {
- return "Namespace [prefix=" + prefix + ", delim=" + deliminator + "]";
+ return "Namespace [prefix=" + prefix + ", delim=" + delimiter + "]";
}
}
Added: james/imap/trunk/parent/target/maven-shared-archive-resources/META-INF/DEPENDENCIES
URL: http://svn.apache.org/viewvc/james/imap/trunk/parent/target/maven-shared-archive-resources/META-INF/DEPENDENCIES?rev=960801&view=auto
==============================================================================
--- james/imap/trunk/parent/target/maven-shared-archive-resources/META-INF/DEPENDENCIES (added)
+++ james/imap/trunk/parent/target/maven-shared-archive-resources/META-INF/DEPENDENCIES Tue Jul 6 06:16:22 2010
@@ -0,0 +1,11 @@
+// ------------------------------------------------------------------
+// Transitive dependencies of this project determined from the
+// maven pom organized by organization.
+// ------------------------------------------------------------------
+
+Apache JAMES Imap Parent pom
+
+
+
+
+
Added: james/imap/trunk/parent/target/maven-shared-archive-resources/META-INF/LICENSE
URL: http://svn.apache.org/viewvc/james/imap/trunk/parent/target/maven-shared-archive-resources/META-INF/LICENSE?rev=960801&view=auto
==============================================================================
--- james/imap/trunk/parent/target/maven-shared-archive-resources/META-INF/LICENSE (added)
+++ james/imap/trunk/parent/target/maven-shared-archive-resources/META-INF/LICENSE Tue Jul 6 06:16:22 2010
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
Added: james/imap/trunk/parent/target/maven-shared-archive-resources/META-INF/NOTICE
URL: http://svn.apache.org/viewvc/james/imap/trunk/parent/target/maven-shared-archive-resources/META-INF/NOTICE?rev=960801&view=auto
==============================================================================
--- james/imap/trunk/parent/target/maven-shared-archive-resources/META-INF/NOTICE (added)
+++ james/imap/trunk/parent/target/maven-shared-archive-resources/META-INF/NOTICE Tue Jul 6 06:16:22 2010
@@ -0,0 +1,8 @@
+
+Apache JAMES Imap Parent pom
+Copyright 2002-2010 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+
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=960801&r1=960800&r2=960801&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 Tue Jul 6 06:16:22 2010
@@ -30,9 +30,9 @@ import org.apache.james.imap.api.process
import org.apache.james.imap.api.process.ImapSession;
import org.apache.james.imap.message.request.NamespaceRequest;
import org.apache.james.imap.message.response.NamespaceResponse;
+import org.apache.james.imap.mailbox.MailboxConstants;
import org.apache.james.imap.mailbox.MailboxManager;
import org.apache.james.imap.mailbox.MailboxSession;
-import org.apache.james.imap.mailbox.MailboxSession.Namespace;
import org.apache.james.imap.processor.base.ImapSessionUtils;
/**
@@ -50,51 +50,50 @@ public class NamespaceProcessor extends
protected void doProcess(ImapRequest message, ImapSession session,
String tag, ImapCommand command, Responder responder) {
final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session);
- final List<NamespaceResponse.Namespace> personalSpaces = buildPersonalNamespaces(mailboxSession);
-
- final MailboxSession.Namespace otherUsersSpace = mailboxSession.getOtherUsersSpace();
- final List<NamespaceResponse.Namespace> otherUsersSpaces = buildOtherUsersSpaces(otherUsersSpace);
-
- final Collection<Namespace> sharedSpaces = mailboxSession.getSharedSpaces();
- final List<NamespaceResponse.Namespace> sharedNamespaces;
- if (sharedSpaces.isEmpty()) {
- sharedNamespaces = null;
- } else {
- sharedNamespaces = new ArrayList<NamespaceResponse.Namespace>(sharedSpaces.size());
- for (MailboxSession.Namespace space: sharedSpaces) {
- sharedNamespaces.add(new NamespaceResponse.Namespace(space.getPrefix(), space.getDeliminator()));
- }
- }
-
- final NamespaceResponse response = new NamespaceResponse(personalSpaces, otherUsersSpaces, sharedNamespaces);
+ final List<NamespaceResponse.Namespace> personalNamespaces = buildPersonalNamespaces(mailboxSession);
+ final List<NamespaceResponse.Namespace> otherUsersNamespaces = buildOtherUsersSpaces(mailboxSession);
+ final List<NamespaceResponse.Namespace> sharedNamespaces = buildSharedNamespaces(mailboxSession);
+ final NamespaceResponse response = new NamespaceResponse(personalNamespaces, otherUsersNamespaces, sharedNamespaces);
responder.respond(response);
unsolicitedResponses(session, responder, false);
okComplete(command, tag, responder);
}
- private List<NamespaceResponse.Namespace> buildOtherUsersSpaces(final MailboxSession.Namespace otherUsersSpace) {
- final List<NamespaceResponse.Namespace> otherUsersSpaces;
- if (otherUsersSpace == null) {
- otherUsersSpaces = null;
- } else {
- otherUsersSpaces = new ArrayList<NamespaceResponse.Namespace>(1);
- otherUsersSpaces.add(new NamespaceResponse.Namespace(otherUsersSpace.getPrefix(), otherUsersSpace.getDeliminator()));
- }
- return otherUsersSpaces;
- }
-
/**
* Builds personal namespaces from the session.
* @param mailboxSession not null
* @return personal namespaces, not null
*/
private List<NamespaceResponse.Namespace> buildPersonalNamespaces(final MailboxSession mailboxSession) {
- final MailboxSession.Namespace personalNamespace = mailboxSession.getPersonalSpace();
final List<NamespaceResponse.Namespace> personalSpaces = new ArrayList<NamespaceResponse.Namespace>();
- personalSpaces.add(new NamespaceResponse.Namespace(personalNamespace.getPrefix(), personalNamespace.getDeliminator()));
+ personalSpaces.add(new NamespaceResponse.Namespace(mailboxSession.getPersonalSpace(), MailboxConstants.DEFAULT_DELIMITER));
return personalSpaces;
}
+ private List<NamespaceResponse.Namespace> buildOtherUsersSpaces(final MailboxSession mailboxSession) {
+ final String otherUsersSpace = mailboxSession.getOtherUsersSpace();
+ final List<NamespaceResponse.Namespace> otherUsersSpaces;
+ if (otherUsersSpace == null) {
+ otherUsersSpaces = null;
+ } else {
+ otherUsersSpaces = new ArrayList<NamespaceResponse.Namespace>(1);
+ otherUsersSpaces.add(new NamespaceResponse.Namespace(otherUsersSpace, MailboxConstants.DEFAULT_DELIMITER));
+ }
+ return otherUsersSpaces;
+ }
+
+ private List<NamespaceResponse.Namespace> buildSharedNamespaces(final MailboxSession mailboxSession) {
+ List<NamespaceResponse.Namespace> sharedNamespaces = null;
+ final Collection<String> sharedSpaces = mailboxSession.getSharedSpaces();
+ if (!sharedSpaces.isEmpty()) {
+ sharedNamespaces = new ArrayList<NamespaceResponse.Namespace>(sharedSpaces.size());
+ for (String space: sharedSpaces) {
+ sharedNamespaces.add(new NamespaceResponse.Namespace(space, MailboxConstants.DEFAULT_DELIMITER));
+ }
+ }
+ return sharedNamespaces;
+ }
+
@Override
protected boolean isAcceptable(ImapMessage message) {
return message instanceof NamespaceRequest;
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=960801&r1=960800&r2=960801&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 Tue Jul 6 06:16:22 2010
@@ -62,39 +62,30 @@ public class NamespaceProcessorTest {
StatusResponseFactory statusResponseStub;
ImapSession imapSessionStub;
MailboxSession mailboxSessionStub;
- MailboxSession.Namespace personalSpaceStub;
- MailboxSession.Namespace usersSpaceStub;
- MailboxSession.Namespace sharedSpaceStub;
+ String personalSpaceStub;
+ String usersSpaceStub;
+ String sharedSpaceStub;
NamespaceRequest namespaceRequest;
- Collection<MailboxSession.Namespace> sharedSpaces;
+ Collection<String> sharedSpaces;
Mockery mockery = new JUnit4Mockery();
@Before
public void setUp() throws Exception {
- sharedSpaces = new ArrayList<MailboxSession.Namespace>();
+ sharedSpaces = new ArrayList<String>();
statusResponseStub = mockery.mock(StatusResponseFactory.class);
final MailboxManager mailboxManagerStub = mockery.mock(MailboxManager.class);
subject = new NamespaceProcessor(mockery.mock(ImapProcessor.class), mailboxManagerStub, statusResponseStub);
imapSessionStub = mockery.mock(ImapSession.class);
mailboxSessionStub = mockery.mock(MailboxSession.class);
- personalSpaceStub = mockery.mock(MailboxSession.Namespace.class, "PersonalNamespace");
- usersSpaceStub = mockery.mock(MailboxSession.Namespace.class, "UsersNamespace");
- sharedSpaceStub = mockery.mock(MailboxSession.Namespace.class, "SharedNamespace");
namespaceRequest = new NamespaceRequest(ImapCommand.anyStateCommand("Name"), "TAG");
mockery.checking (new Expectations() {{
allowing(imapSessionStub).getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY); will(returnValue(mailboxSessionStub));
- allowing(personalSpaceStub).getDeliminator(); will(returnValue(PERSONAL_DELIMINATOR));
- allowing(personalSpaceStub).getPrefix(); will(returnValue(PERSONAL_PREFIX));
- allowing(usersSpaceStub).getDeliminator(); will(returnValue(USERS_DELIMINATOR));
- allowing(usersSpaceStub).getPrefix(); will(returnValue(USERS_PREFIX));
- allowing(sharedSpaceStub).getDeliminator(); will(returnValue(SHARED_SPACE_DELIMINATOR));
- allowing(sharedSpaceStub).getPrefix(); will(returnValue(SHARED_PREFIX));
- allowing(mailboxSessionStub).getPersonalSpace(); will(returnValue(personalSpaceStub));
- allowing(mailboxSessionStub).getOtherUsersSpace(); will(returnValue(usersSpaceStub));
- allowing(mailboxSessionStub).getSharedSpaces();will(returnValue(sharedSpaces));
+ allowing(mailboxSessionStub).getPersonalSpace(); will(returnValue("PersonalNamespace"));
+ allowing(mailboxSessionStub).getOtherUsersSpace(); will(returnValue("UsersNamespace"));
+ allowing(mailboxSessionStub).getSharedSpaces();will(returnValue("SharedNamespace"));
allowing(imapSessionStub).getState();will(returnValue(ImapSessionState.AUTHENTICATED));
allowing(statusResponseStub).taggedOk(
with(any(String.class)), with(any(ImapCommand.class)),
Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/SimpleMailboxSession.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/SimpleMailboxSession.java?rev=960801&r1=960800&r2=960801&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/SimpleMailboxSession.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/SimpleMailboxSession.java Tue Jul 6 06:16:22 2010
@@ -27,20 +27,19 @@ import java.util.Locale;
import java.util.Map;
import org.apache.commons.logging.Log;
+import org.apache.james.imap.mailbox.MailboxConstants;
import org.apache.james.imap.mailbox.MailboxSession;
-import org.apache.james.imap.mailbox.util.SimpleMailboxNamespace;
/**
* Describes a mailbox session.
*/
public class SimpleMailboxSession implements MailboxSession, MailboxSession.User {
+ private final Collection<String> sharedSpaces;
- private final Collection<Namespace> sharedSpaces;
+ private final String otherUsersSpace;
- private final Namespace otherUsersSpace;
-
- private final Namespace personalSpace;
+ private final String personalSpace;
private final long sessionId;
@@ -56,18 +55,17 @@ public class SimpleMailboxSession implem
private final Map<Object, Object> attributes;
- public SimpleMailboxSession(final long sessionId, final String userName, final String password, final Log log, char deliminator,
- final List<Locale> localePreferences) {
- super();
+ public SimpleMailboxSession(final long sessionId, final String userName, final String password,
+ final Log log, final List<Locale> localePreferences) {
this.sessionId = sessionId;
this.log = log;
this.userName = userName;
this.password = password;
- sharedSpaces = new ArrayList<Namespace>();
- otherUsersSpace = null;
- personalSpace = new SimpleMailboxNamespace(deliminator, "");
+ this.personalSpace = "";
+ this.otherUsersSpace = null;
+ this.sharedSpaces = new ArrayList<String>();
this.localePreferences = localePreferences;
- attributes = new HashMap<Object, Object>();
+ this.attributes = new HashMap<Object, Object>();
}
/*
@@ -135,21 +133,21 @@ public class SimpleMailboxSession implem
/**
* @see org.apache.james.imap.mailbox.MailboxSession#getOtherUsersSpace()
*/
- public Namespace getOtherUsersSpace() {
+ public String getOtherUsersSpace() {
return otherUsersSpace;
}
/**
* @see org.apache.james.imap.mailbox.MailboxSession#getPersonalSpace()
*/
- public Namespace getPersonalSpace() {
+ public String getPersonalSpace() {
return personalSpace;
}
/**
* @see org.apache.james.imap.mailbox.MailboxSession#getSharedSpace()
*/
- public Collection<Namespace> getSharedSpaces() {
+ public Collection<String> getSharedSpaces() {
return sharedSpaces;
}
Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java?rev=960801&r1=960800&r2=960801&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java Tue Jul 6 06:16:22 2010
@@ -356,7 +356,7 @@ public abstract class StoreMailboxManage
* @return session
*/
private SimpleMailboxSession createSession(String userName, String password, Log log) {
- return new SimpleMailboxSession(randomId(), userName, password, log, MailboxConstants.DEFAULT_DELIMITER, new ArrayList<Locale>());
+ return new SimpleMailboxSession(randomId(), userName, password, log, new ArrayList<Locale>());
}
/**
Modified: james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java?rev=960801&r1=960800&r2=960801&view=diff
==============================================================================
--- james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java (original)
+++ james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java Tue Jul 6 06:16:22 2010
@@ -356,7 +356,7 @@ public class TorqueMailboxManager implem
}
private MailboxSession createSession(String userName, String password, Log log) {
- return new SimpleMailboxSession(random.nextLong(), userName, password, log, MailboxConstants.DEFAULT_DELIMITER, new ArrayList<Locale>());
+ return new SimpleMailboxSession(random.nextLong(), userName, password, log, new ArrayList<Locale>());
}
public String resolve(final String userName, String mailboxPath) {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org