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/14 21:46:03 UTC
svn commit: r922953 - in
/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail:
JCRMailboxMapper.java JCRMessageMapper.java model/JCRMailboxMembership.java
Author: norman
Date: Sun Mar 14 20:46:03 2010
New Revision: 922953
URL: http://svn.apache.org/viewvc?rev=922953&view=rev
Log:
Small fixes so the message will only created once under the MessageMembership node (IMAP-93)
Modified:
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/mail/model/JCRMailboxMembership.java
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=922953&r1=922952&r2=922953&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 14 20:46:03 2010
@@ -234,7 +234,6 @@ public class JCRMailboxMapper extends JC
node.addMixin(JcrConstants.MIX_REFERENCEABLE);
}
((JCRMailbox)mailbox).merge(node);
- System.out.println("MAILBOX" + mailbox.getName());
getSession().save();
} catch (RepositoryException e) {
e.printStackTrace();
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=922953&r1=922952&r2=922953&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 14 20:46:03 2010
@@ -130,6 +130,7 @@ public class JCRMessageMapper extends JC
if (membership.isPersistent()) {
try {
getSession().getNodeByUUID(membership.getUUID()).remove();
+ getSession().save();
} catch (RepositoryException e) {
e.printStackTrace();
throw new StorageException(HumanReadableText.DELETED_FAILED, e);
@@ -212,8 +213,9 @@ public class JCRMessageMapper extends JC
}
private List<MailboxMembership> findMessagesInMailbox(String uuid) throws RepositoryException {
+
List<MailboxMembership> list = new ArrayList<MailboxMembership>();
- String queryString = "//" + PATH + "//element(*)[@" + JCRMailboxMembership.MAILBOX_UUID_PROPERTY + "='" + uuid + "']";
+ String queryString = "//" + PATH + "//element(*)[@" + JCRMailboxMembership.MAILBOX_UUID_PROPERTY +"='" + uuid +"']";
QueryManager manager = getSession().getWorkspace().getQueryManager();
QueryResult result = manager.createQuery(queryString, Query.XPATH).execute();
@@ -313,9 +315,7 @@ public class JCRMessageMapper extends JC
createPathIfNotExists();
if (membership.isPersistent()) {
-
messageNode = getSession().getNodeByUUID(membership.getUUID());
-
} else {
messageNode = getSession().getRootNode().addNode(JCRUtils.createPath(PATH, String.valueOf(membership.getUid())));
messageNode.addMixin(JcrConstants.MIX_REFERENCEABLE);
Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailboxMembership.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailboxMembership.java?rev=922953&r1=922952&r2=922953&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailboxMembership.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailboxMembership.java Sun Mar 14 20:46:03 2010
@@ -53,6 +53,8 @@ public class JCRMailboxMembership extend
public final static String INTERNAL_DATE_PROPERTY = PROPERTY_PREFIX
+ "internalDate";
+ public final static String MESSAGE_NODE = "message";
+
private String mailboxUUID;
private long uid;
private Date internalDate;
@@ -240,8 +242,7 @@ public class JCRMailboxMembership extend
return node.getProperty(DELETED_PROPERTY).getBoolean();
} catch (RepositoryException e) {
- logger
- .error("Unable to access property " + DELETED_PROPERTY,
+ logger.error("Unable to access property " + DELETED_PROPERTY,
e);
}
return false;
@@ -278,8 +279,7 @@ public class JCRMailboxMembership extend
return node.getProperty(FLAGGED_PROPERTY).getBoolean();
} catch (RepositoryException e) {
- logger
- .error("Unable to access property " + FLAGGED_PROPERTY,
+ logger.error("Unable to access property " + FLAGGED_PROPERTY,
e);
}
return false;
@@ -333,19 +333,18 @@ public class JCRMailboxMembership extend
public void setFlags(Flags flags) {
if (isPersistent()) {
try {
- node.getProperty(ANSWERED_PROPERTY).setValue(
+ node.setProperty(ANSWERED_PROPERTY,
flags.contains(Flags.Flag.ANSWERED));
- node.getProperty(DELETED_PROPERTY).setValue(
+ node.setProperty(DELETED_PROPERTY,
flags.contains(Flags.Flag.DELETED));
- node.getProperty(DRAFT_PROPERTY).setValue(
+ node.setProperty(DRAFT_PROPERTY,
flags.contains(Flags.Flag.DRAFT));
- node.getProperty(FLAGGED_PROPERTY).setValue(
+ node.setProperty(FLAGGED_PROPERTY,
flags.contains(Flags.Flag.FLAGGED));
- node.getProperty(RECENT_PROPERTY).setValue(
+ node.setProperty(RECENT_PROPERTY,
flags.contains(Flags.Flag.RECENT));
- node.getProperty(SEEN_PROPERTY).setValue(
+ node.setProperty(SEEN_PROPERTY,
flags.contains(Flags.Flag.SEEN));
-
} catch (RepositoryException e) {
logger.error("Unable to set flags", e);
}
@@ -381,7 +380,7 @@ public class JCRMailboxMembership extend
public String getUUID() {
if (isPersistent()) {
try {
- return node.getProperty(JcrConstants.JCR_UUID).getString();
+ return node.getUUID();
} catch (RepositoryException e) {
logger.error("Unable to access property "
+ JcrConstants.JCR_UUID, e);
@@ -429,8 +428,13 @@ public class JCRMailboxMembership extend
cal.setTime(internalDate);
node.setProperty(INTERNAL_DATE_PROPERTY, cal);
- Node messageNode = node.addNode("message");
- messageNode.addMixin(JcrConstants.MIX_REFERENCEABLE);
+ Node messageNode;
+ if (node.hasNode(MESSAGE_NODE)) {
+ messageNode = node.getNode(MESSAGE_NODE);
+ } else {
+ messageNode = node.addNode("message");
+ messageNode.addMixin(JcrConstants.MIX_REFERENCEABLE);
+ }
message.merge(messageNode);
this.node = node;
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org