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