Author: norman
Date: Fri Apr 29 16:44:49 2011
New Revision: 1097880
URL: http://svn.apache.org/viewvc?rev=1097880&view=rev
Log:
Add support of User Flags to JCR implementation. See MAILBOX-63
Modified:
james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMessageManager.java
james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMessage.java
james/mailbox/trunk/jcr/src/main/resources/org/apache/james/mailbox/jcr/imap.cnd
Modified:
james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMessageManager.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMessageManager.java?rev=1097880&r1=1097879&r2=1097880&view=diff
==============================================================================
---
james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMessageManager.java
(original)
+++
james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMessageManager.java
Fri Apr 29 16:44:49 2011
@@ -26,6 +26,7 @@ import java.util.List;
import javax.mail.Flags;
import org.apache.james.mailbox.MailboxException;
+import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.jcr.mail.model.JCRHeader;
import org.apache.james.mailbox.jcr.mail.model.JCRMailbox;
import org.apache.james.mailbox.jcr.mail.model.JCRMessage;
@@ -66,4 +67,13 @@ public class JCRMessageManager extends S
size, flags, document, bodyStartOctet, jcrHeaders,
propertyBuilder, log);
return message;
}
+
+ @Override
+ protected Flags getPermanentFlags(MailboxSession session) {
+ Flags perm = super.getPermanentFlags(session);
+ perm.add(Flags.Flag.USER);
+ return perm;
+ }
+
+
}
\ No newline at end of file
Modified:
james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMessage.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMessage.java?rev=1097880&r1=1097879&r2=1097880&view=diff
==============================================================================
---
james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMessage.java
(original)
+++
james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMessage.java
Fri Apr 29 16:44:49 2011
@@ -72,6 +72,7 @@ public class JCRMessage extends Abstract
private boolean flagged;
private boolean recent;
private boolean seen;
+ private String[] userFlags;
private static final String TOSTRING_SEPARATOR = " ";
@@ -82,6 +83,8 @@ public class JCRMessage extends Abstract
public final static String DELETED_PROPERTY = "jamesMailbox:deleted";
public final static String DRAFT_PROPERTY = "jamesMailbox:draft";
public final static String FLAGGED_PROPERTY = "jamesMailbox:flagged";
+ public final static String USERFLAGS_PROPERTY = "jamesMailbox:userFlags";
+
public final static String RECENT_PROPERTY = "jamesMailbox:recent";
public final static String SEEN_PROPERTY = "jamesMailbox:seen";
public final static String INTERNAL_DATE_PROPERTY =
"jamesMailbox:internalDate";
@@ -135,12 +138,7 @@ public class JCRMessage extends Abstract
this.mailboxUUID = mailboxUUID;
this.internalDate = message.getInternalDate();
this.size = message.getFullContentOctets();
- this.answered = message.isAnswered();
- this.deleted = message.isDeleted();
- this.draft = message.isDraft();
- this.flagged = message.isFlagged();
- this.recent = message.isRecent();
- this.seen = message.isSeen();
+ setFlags(message.createFlags());
this.uid = uid;
this.logger = logger;
@@ -318,7 +316,7 @@ public class JCRMessage extends Abstract
node.setProperty(FLAGGED_PROPERTY, isFlagged());
node.setProperty(RECENT_PROPERTY, isRecent());
node.setProperty(SEEN_PROPERTY, isSeen());
-
+ node.setProperty(USERFLAGS_PROPERTY, createFlags().getUserFlags());
// This stuff is only ever changed on a new message
// so if it is persistent we don'T need to set all the of this.
//
@@ -393,6 +391,11 @@ public class JCRMessage extends Abstract
}
@Override
+ protected String[] createUserFlags() {
+ return userFlags;
+ }
+
+ @Override
protected int getBodyStartOctet() {
if (isPersistent()) {
try {
@@ -645,6 +648,7 @@ public class JCRMessage extends Abstract
flags.contains(Flags.Flag.RECENT));
node.setProperty(SEEN_PROPERTY,
flags.contains(Flags.Flag.SEEN));
+ node.setProperty(USERFLAGS_PROPERTY, flags.getUserFlags());
} catch (RepositoryException e) {
logger.error("Unable to set flags", e);
}
@@ -655,6 +659,7 @@ public class JCRMessage extends Abstract
flagged = flags.contains(Flags.Flag.FLAGGED);
recent = flags.contains(Flags.Flag.RECENT);
seen = flags.contains(Flags.Flag.SEEN);
+ userFlags = flags.getUserFlags();
}
}
Modified:
james/mailbox/trunk/jcr/src/main/resources/org/apache/james/mailbox/jcr/imap.cnd
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/jcr/src/main/resources/org/apache/james/mailbox/jcr/imap.cnd?rev=1097880&r1=1097879&r2=1097880&view=diff
==============================================================================
---
james/mailbox/trunk/jcr/src/main/resources/org/apache/james/mailbox/jcr/imap.cnd
(original)
+++
james/mailbox/trunk/jcr/src/main/resources/org/apache/james/mailbox/jcr/imap.cnd
Fri Apr 29 16:44:49 2011
@@ -49,6 +49,7 @@
- jamesMailbox:recent (BOOLEAN)
- jamesMailbox:seen (BOOLEAN)
- jamesMailbox:internalDate (DATE)
+ - jamesMailbox:userFlags (STRING) multiple
- jamesMailbox:messageBodyStartOctet (LONG) mandatory
- jamesMailbox:messageTextualLineCount (LONG)
- jamesMailbox:messageSubType (String) mandatory
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]