diff --git a/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java b/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java index b6881d3..47825c0 100644 --- a/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java +++ b/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java @@ -255,10 +255,11 @@ public class JCRMailboxMapper extends AbstractJCRMapper implements MailboxMapper for (int i = 0; i < nameParts.length; i++) { String part = nameParts[i]; if (i == 1) { - node = JcrUtils.getOrAddNode(node, String.valueOf(part.charAt(0)), "jamesMailbox:mailbox"); + node = JcrUtils.getOrAddNode(node, String.valueOf(part.charAt(0)), "nt:unstructured"); } - node = JcrUtils.getOrAddNode(node, part, "jamesMailbox:mailbox"); + node = JcrUtils.getOrAddNode(node, part, "nt:unstructured"); + node.addMixin("jamesMailbox:mailbox"); } jcrMailbox.merge(node); diff --git a/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java b/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java index c15f756..3522d90 100644 --- a/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java +++ b/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java @@ -450,7 +450,8 @@ public class JCRMessageMapper extends AbstractJCRMapper implements MessageMapper locker.execute(new NodeLockedExecution() { public Void execute(Node node) throws RepositoryException { - Node messageNode = node.addNode(String.valueOf(membership.getUid()),"jamesMailbox:message"); + Node messageNode = node.addNode(String.valueOf(membership.getUid()),"nt:file"); + messageNode.addMixin("jamesMailbox:message"); try { membership.merge(messageNode); } catch (IOException e) { diff --git a/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMessage.java b/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMessage.java index 7128b90..6bf8395 100644 --- a/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMessage.java +++ b/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMessage.java @@ -362,7 +362,8 @@ public class JCRMessage extends AbstractDocument implements MailboxMembership -[jamesMailbox:subscription] > nt:base +[jamesMailbox:subscription] > mix:created + mixin - jamesMailbox:subscriptionUsername (STRING) mandatory - jamesMailbox:subscriptionMailbox (STRING) mandatory -[jamesMailbox:messageHeader] > nt:base +[jamesMailbox:messageHeader] > mix:created + mixin - jamesMailbox:headerFieldName (STRING) mandatory - jamesMailbox:headerValue(STRING) mandatory - jamesMailbox:headerLineNumber (LONG) mandatory -[jamesMailbox:messageProperty] > nt:base +[jamesMailbox:messageProperty] > mix:created + mixin - jamesMailbox:propertyNamespace (STRING) mandatory - jamesMailbox:propertyLocalName (STRING) mandatory - jamesMailbox:propertyValue(STRING) mandatory - jamesMailbox:propertyOrder (Long) mandatory -[jamesMailbox:message] > mix:referenceable, nt:file +[jamesMailbox:message] > mix:referenceable, mix:created, mix:created + mixin - jamesMailbox:mailboxUUID (String) mandatory - jamesMailbox:uid (LONG) mandatory - jamesMailbox:size (LONG) mandatory @@ -46,11 +50,12 @@ - jamesMailbox:messageBodyStartOctet (LONG) mandatory - jamesMailbox:messageTextualLineCount (LONG) - jamesMailbox:messageSubType (String) mandatory - + messageHeader (jamesMailbox:messageHeader) multiple - + messageProperty (jamesMailbox:messageProperty) multiple + + messageHeader (nt:unstructured) multiple + + messageProperty (nt:unstructured) multiple -[jamesMailbox:mailbox] > mix:referenceable, mix:lockable, nt:folder +[jamesMailbox:mailbox] > mix:referenceable, mix:lockable, mix:created + mixin - jamesMailbox:mailboxUidValidity (LONG) - jamesMailbox:mailboxName (STRING) - jamesMailbox:mailboxLastUid (LONG) - + * (nt:folder) multiple + + * (nt:unstructured) multiple