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/03/21 17:43:42 UTC

svn commit: r925822 - in /james/imap/trunk/jcr/src/main: java/org/apache/james/imap/jcr/ java/org/apache/james/imap/jcr/mail/ java/org/apache/james/imap/jcr/user/ resources/org/apache/james/imap/jcr/

Author: norman
Date: Sun Mar 21 16:43:42 2010
New Revision: 925822

URL: http://svn.apache.org/viewvc?rev=925822&view=rev
Log:
More rework on node tree. This layout seems to be usable now ;) (IMAP-120)

Modified:
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRImapConstants.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/JCRSubscriptionMapper.java
    james/imap/trunk/jcr/src/main/resources/org/apache/james/imap/jcr/imap.cnd

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRImapConstants.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRImapConstants.java?rev=925822&r1=925821&r2=925822&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRImapConstants.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRImapConstants.java Sun Mar 21 16:43:42 2010
@@ -36,9 +36,5 @@ public interface JCRImapConstants {
 	 * Delimiter for Nodes
 	 */
 	public static final String NODE_DELIMITER = "/";
-	
-	/**
-	 * Prefix for all imap related properties
-	 */
-	public static final String PROPERTY_PREFIX ="";//"imap:";
+
 }

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java?rev=925822&r1=925821&r2=925822&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java Sun Mar 21 16:43:42 2010
@@ -49,7 +49,7 @@ import org.apache.james.imap.store.mail.
  */
 public class JCRMailboxMapper extends AbstractJCRMapper implements MailboxMapper {
 
-    public final String PATH = PROPERTY_PREFIX + "mailboxes";
+    public final String PATH =  "mailboxes";
     private final Log logger;
 
     public JCRMailboxMapper(final Session session, final int scaling,final Log logger) {

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java?rev=925822&r1=925821&r2=925822&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java Sun Mar 21 16:43:42 2010
@@ -383,7 +383,6 @@ public class JCRMessageMapper extends Ab
     public void save(MailboxMembership message) throws StorageException {
         JCRMailboxMembership membership = (JCRMailboxMembership) message;
         try {
-            Node mailboxNode = getSession().getNodeByUUID(uuid);
             //JCRUtils.createNodeRecursive(getSession().getRootNode(), mailboxN);
             Node messageNode = null;
             
@@ -392,9 +391,21 @@ public class JCRMessageMapper extends Ab
             }
 
             if (messageNode == null) {
+                Node mailboxNode = getSession().getNodeByUUID(uuid);
+                Node membershipsNode;
+                
+                if (mailboxNode.hasNode("mailboxMemberships")) {
+                    membershipsNode = mailboxNode.getNode("mailboxMemberships");
+                } else {
+                    membershipsNode = mailboxNode.addNode("mailboxMemberships","imap:mailboxMemberships");
+                }
+                
                 // TODO: Maybe we should use some kind of hashes for scaling here
-                String path = mailboxNode.getPath() + NODE_DELIMITER + JCRUtils.escapePath(String.valueOf(membership.getUid()));
+                String path = membershipsNode.getPath() + NODE_DELIMITER + JCRUtils.escapePath(String.valueOf(membership.getUid()));
+                
+                // strip leading /
                 path = path.substring(1, path.length());
+                
                 messageNode = getSession().getRootNode().addNode(path,"imap:mailboxMembership");
                 messageNode.addMixin(JcrConstants.MIX_REFERENCEABLE);
             }

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/JCRSubscriptionMapper.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/JCRSubscriptionMapper.java?rev=925822&r1=925821&r2=925822&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/JCRSubscriptionMapper.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/JCRSubscriptionMapper.java Sun Mar 21 16:43:42 2010
@@ -46,7 +46,7 @@ import org.apache.james.imap.store.user.
 public class JCRSubscriptionMapper extends AbstractJCRMapper implements SubscriptionMapper {
 
     private final Log log;
-    private final static String PATH = PROPERTY_PREFIX + "subscriptions";
+    private final static String PATH =  "subscriptions";
 
     public JCRSubscriptionMapper(final Session session, final int scaling,final Log log) {
         super(session, scaling);

Modified: james/imap/trunk/jcr/src/main/resources/org/apache/james/imap/jcr/imap.cnd
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/resources/org/apache/james/imap/jcr/imap.cnd?rev=925822&r1=925821&r2=925822&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/resources/org/apache/james/imap/jcr/imap.cnd (original)
+++ james/imap/trunk/jcr/src/main/resources/org/apache/james/imap/jcr/imap.cnd Sun Mar 21 16:43:42 2010
@@ -51,7 +51,7 @@
     - imap:mailboxUidValidity (LONG) mandatory
     - imap:mailboxName (STRING) mandatory
     - imap:mailboxLastUid (LONG) mandatory
-    + * (imap:mailboxMembership) multiple 
+    + mailboxMemberships (imap:mailboxMemberships) 
  
 [imap:mailboxMembership] >  mix:referenceable, nt:base
     - imap:mailboxUUID (REFERENCE) mandatory < 'imap:mailbox'
@@ -66,5 +66,6 @@
     - imap:internalDate (DATE) mandatory
     + message (imap:message) mandatory
 
-    
+ [imap:mailboxMemberships] > nt:unstructured
+    + imap:mailboxMembership multiple   
    



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org