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