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