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/12 06:32:01 UTC

svn commit: r922148 - in /james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr: ./ mail/ mail/model/ user/ user/model/

Author: norman
Date: Fri Mar 12 05:32:01 2010
New Revision: 922148

URL: http://svn.apache.org/viewvc?rev=922148&view=rev
Log:
Some more cosmetic changes related to IMAP-93

Added:
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRUtils.java
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/model/JCRHeader.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailbox.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRProperty.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/JCRSubscriptionMapper.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/model/JCRSubscription.java

Added: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRUtils.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRUtils.java?rev=922148&view=auto
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRUtils.java (added)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRUtils.java Fri Mar 12 05:32:01 2010
@@ -0,0 +1,42 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.imap.jcr;
+
+import org.apache.jackrabbit.util.Text;
+
+public class JCRUtils implements JCRImapConstants{
+
+	public static String createPath(String... subNodes) {
+		StringBuffer pathBuf = new StringBuffer();
+		
+		for (int i = 0; i < subNodes.length; i++ ) {
+			String path = subNodes[i];
+			if (path.startsWith(PROPERTY_PREFIX) == false) {
+				pathBuf.append(PROPERTY_PREFIX);
+			}
+			pathBuf.append(Text.escapeIllegalJcrChars(path));
+			
+			if (i +1 != subNodes.length) {
+				pathBuf.append(NODE_DELIMITER);
+			}
+		}
+        return pathBuf.toString();
+		
+	}
+}

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=922148&r1=922147&r2=922148&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 Fri Mar 12 05:32:01 2010
@@ -33,6 +33,7 @@ import org.apache.commons.logging.Log;
 import org.apache.jackrabbit.util.Text;
 import org.apache.james.imap.api.display.HumanReadableText;
 import org.apache.james.imap.jcr.JCRImapConstants;
+import org.apache.james.imap.jcr.JCRUtils;
 import org.apache.james.imap.jcr.mail.model.JCRMailbox;
 import org.apache.james.imap.mailbox.MailboxNotFoundException;
 import org.apache.james.imap.mailbox.StorageException;
@@ -45,11 +46,11 @@ import org.apache.james.imap.store.trans
  * 
  * 
  */
-public class JCRMailboxMapper extends NonTransactionalMapper implements MailboxMapper {
+public class JCRMailboxMapper extends NonTransactionalMapper implements MailboxMapper,JCRImapConstants {
 
     private final static String WILDCARD = "*";
     private final Session session;
-    private final String PATH = "mailboxes";
+    private final String PATH = PROPERTY_PREFIX + "mailboxes";
     private Log logger;
 
     public JCRMailboxMapper(final Session session, final Log logger) {
@@ -68,7 +69,7 @@ public class JCRMailboxMapper extends No
         String nodeName = Text.unescapeIllegalJcrChars(name);
 
         try {
-            boolean found = session.getRootNode().hasNode(PATH + JCRImapConstants.NODE_DELIMITER + nodeName);
+            boolean found = session.getRootNode().hasNode(JCRUtils.createPath(PATH, nodeName));
             if (found) {
                 return 1;
             }
@@ -90,7 +91,7 @@ public class JCRMailboxMapper extends No
     public void delete(Mailbox mailbox) throws StorageException {
         String nodeName = Text.unescapeIllegalJcrChars(mailbox.getName());
         try {
-            session.getRootNode().getNode(PATH + JCRImapConstants.NODE_DELIMITER + nodeName).remove();
+            session.getRootNode().getNode(JCRUtils.createPath(PATH, nodeName)).remove();
         } catch (PathNotFoundException e) {
             // mailbox does not exists..
         } catch (RepositoryException e) {
@@ -124,7 +125,7 @@ public class JCRMailboxMapper extends No
      */
     public boolean existsMailboxStartingWith(String mailboxName) throws StorageException {
         try {
-            return session.getRootNode().getNodes(PATH + JCRImapConstants.NODE_DELIMITER + Text.unescapeIllegalJcrChars(mailboxName) + WILDCARD).hasNext();
+            return session.getRootNode().getNodes(JCRUtils.createPath(PATH,  mailboxName) + WILDCARD).hasNext();
         } catch (RepositoryException e) {
             throw new StorageException(HumanReadableText.SEARCH_FAILED, e);
         }
@@ -138,7 +139,7 @@ public class JCRMailboxMapper extends No
     public Mailbox findMailboxById(long mailboxId) throws StorageException, MailboxNotFoundException {
         try {
             QueryManager manager = session.getWorkspace().getQueryManager();
-            String queryString = session.getRootNode().getPath() + JCRImapConstants.NODE_DELIMITER + PATH + "//element(" + mailboxId + ")," + JCRMailbox.ID_PROPERTY + ")";
+            String queryString = JCRUtils.createPath(session.getRootNode().getPath(), PATH) + "//element(" + mailboxId + ")," + JCRMailbox.ID_PROPERTY + ")";
             Query query = manager.createQuery(queryString, Query.XPATH);
 
             NodeIterator nodes = query.execute().getNodes();
@@ -163,7 +164,7 @@ public class JCRMailboxMapper extends No
      */
     public Mailbox findMailboxByName(String name) throws StorageException, MailboxNotFoundException {
         try {
-            Node node = session.getRootNode().getNode(PATH + JCRImapConstants.NODE_DELIMITER + name);
+            Node node = session.getRootNode().getNode(JCRUtils.createPath(PATH, name));
             return JCRMailbox.from(node);
         } catch (PathNotFoundException e) {
             throw new MailboxNotFoundException(name);
@@ -182,7 +183,7 @@ public class JCRMailboxMapper extends No
     public List<Mailbox> findMailboxWithNameLike(String name) throws StorageException {
         List<Mailbox> mailboxList = new ArrayList<Mailbox>();
         try {
-            NodeIterator it = session.getRootNode().getNodes(PATH + JCRImapConstants.NODE_DELIMITER + WILDCARD + name + WILDCARD);
+            NodeIterator it = session.getRootNode().getNodes(PATH + NODE_DELIMITER + WILDCARD + name + WILDCARD);
             while (it.hasNext()) {
                 mailboxList.add(JCRMailbox.from(it.nextNode()));
             }
@@ -202,7 +203,7 @@ public class JCRMailboxMapper extends No
      * imap.store.mail.model.Mailbox)
      */
     public void save(Mailbox mailbox) throws StorageException {
-        String nodePath = PATH + JCRImapConstants.NODE_DELIMITER + Text.unescapeIllegalJcrChars(mailbox.getName());
+        String nodePath = JCRUtils.createPath(PATH,mailbox.getName());
         try {
             Node node;
             if (session.getRootNode().hasNode(nodePath)) {

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRHeader.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRHeader.java?rev=922148&r1=922147&r2=922148&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRHeader.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRHeader.java Fri Mar 12 05:32:01 2010
@@ -20,6 +20,7 @@ package org.apache.james.imap.jcr.mail.m
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
+import javax.mail.Header;
 
 import org.apache.commons.logging.Log;
 import org.apache.james.imap.jcr.IsPersistent;
@@ -27,15 +28,15 @@ import org.apache.james.imap.jcr.JCRImap
 import org.apache.james.imap.store.mail.model.AbstractComparableHeader;
 
 /**
- * JCR implementation of a Header
+ * JCR implementation of a {@link Header}
  * 
  *
  */
 public class JCRHeader extends AbstractComparableHeader implements JCRImapConstants, IsPersistent{
 
-    public final static String FIELDNAME_PROPERTY = PROPERTY_PREFIX + "fieldName";
-    public final static String VALUE_PROPERTY = PROPERTY_PREFIX + "value";
-    public final static String LINENUMBER_PROPERTY = PROPERTY_PREFIX + "lineNumber";
+    public final static String FIELDNAME_PROPERTY = PROPERTY_PREFIX + "headerFieldName";
+    public final static String VALUE_PROPERTY = PROPERTY_PREFIX + "headerFalue";
+    public final static String LINENUMBER_PROPERTY = PROPERTY_PREFIX + "headerLineNumber";
 
     private String fieldName;
     private String value;

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailbox.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailbox.java?rev=922148&r1=922147&r2=922148&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailbox.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailbox.java Fri Mar 12 05:32:01 2010
@@ -31,14 +31,14 @@ import org.apache.james.imap.store.mail.
 
 
 /**
- * JCR implementation of a Mailbox
+ * JCR implementation of a {@link Mailbox}
  */
 public class JCRMailbox implements Mailbox{
 
-    public final static String ID_PROPERTY = JCRImapConstants.PROPERTY_PREFIX + "id";
-    public final static String NAME_PROPERTY = JCRImapConstants.PROPERTY_PREFIX + "name";
-    public final static String UIDVALIDITY_PROPERTY = JCRImapConstants.PROPERTY_PREFIX + "uidValidity";
-    public final static String LASTUID_PROPERTY = JCRImapConstants.PROPERTY_PREFIX + "lastUid";
+    public final static String ID_PROPERTY = JCRImapConstants.PROPERTY_PREFIX + "mailboxId";
+    public final static String NAME_PROPERTY = JCRImapConstants.PROPERTY_PREFIX + "mailboxName";
+    public final static String UIDVALIDITY_PROPERTY = JCRImapConstants.PROPERTY_PREFIX + "mailboxUidValidity";
+    public final static String LASTUID_PROPERTY = JCRImapConstants.PROPERTY_PREFIX + "mailboxLastUid";
 
     private long id = -1;
     private String name;

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRProperty.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRProperty.java?rev=922148&r1=922147&r2=922148&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRProperty.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRProperty.java Fri Mar 12 05:32:01 2010
@@ -26,7 +26,12 @@ import org.apache.james.imap.jcr.IsPersi
 import org.apache.james.imap.jcr.JCRImapConstants;
 
 import org.apache.james.imap.store.mail.model.AbstractComparableProperty;
+import org.apache.james.imap.store.mail.model.Property;
 
+/**
+ * JCR implementation of {@link Property}
+ *
+ */
 public class JCRProperty extends AbstractComparableProperty<JCRProperty> implements JCRImapConstants, IsPersistent {
 
     private Node node;

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=922148&r1=922147&r2=922148&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 Fri Mar 12 05:32:01 2010
@@ -28,10 +28,10 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
 import org.apache.commons.logging.Log;
-import org.apache.jackrabbit.util.Text;
 import org.apache.james.imap.api.display.HumanReadableText;
 import org.apache.james.imap.jcr.IsPersistent;
 import org.apache.james.imap.jcr.JCRImapConstants;
+import org.apache.james.imap.jcr.JCRUtils;
 import org.apache.james.imap.jcr.user.model.JCRSubscription;
 import org.apache.james.imap.mailbox.SubscriptionException;
 import org.apache.james.imap.store.transaction.NonTransactionalMapper;
@@ -44,11 +44,11 @@ import org.apache.james.imap.store.user.
  * ends in a "real" action
  * 
  */
-public class JCRSubscriptionMapper extends NonTransactionalMapper implements SubscriptionMapper {
+public class JCRSubscriptionMapper extends NonTransactionalMapper implements SubscriptionMapper, JCRImapConstants {
 
     private final Session session;
     private final Log log;
-    private final static String PATH = "subscriptions";
+    private final static String PATH = PROPERTY_PREFIX + "subscriptions";
 
     public JCRSubscriptionMapper(final Session session, final Log log) {
         this.session = session;
@@ -88,7 +88,7 @@ public class JCRSubscriptionMapper exten
      */
     public Subscription findFindMailboxSubscriptionForUser(String user, String mailbox) throws SubscriptionException {
         try {
-            Node node = session.getRootNode().getNode(PATH + JCRImapConstants.NODE_DELIMITER + getPath(user, mailbox));
+            Node node = session.getRootNode().getNode(JCRUtils.createPath(PATH, user, mailbox));
             return new JCRSubscription(node, log);
         } catch (PathNotFoundException e) {
             return null;
@@ -107,7 +107,7 @@ public class JCRSubscriptionMapper exten
     public List<Subscription> findSubscriptionsForUser(String user) throws SubscriptionException {
         List<Subscription> subList = new ArrayList<Subscription>();
         try {
-            Node node = session.getRootNode().getNode(PATH + JCRImapConstants.NODE_DELIMITER + Text.escapeIllegalJcrChars(user));
+            Node node = session.getRootNode().getNode(JCRUtils.createPath(PATH , user));
             NodeIterator nodeIt = node.getNodes("*");
             while (nodeIt.hasNext()) {
                 subList.add(new JCRSubscription(nodeIt.nextNode(), log));
@@ -131,7 +131,7 @@ public class JCRSubscriptionMapper exten
     public void save(Subscription subscription) throws SubscriptionException {
         String username = subscription.getUser();
         String mailbox = subscription.getMailbox();
-        String nodename = getPath(username, mailbox);
+        String nodename = JCRUtils.createPath(username, mailbox);
         try {
             Node node = session.getRootNode().getNode(PATH);
             Node subNode;
@@ -150,8 +150,4 @@ public class JCRSubscriptionMapper exten
         }
     }
 
-    private String getPath(String username, String mailbox) {
-        return Text.escapeIllegalJcrChars(username) + JCRImapConstants.NODE_DELIMITER + Text.escapeIllegalJcrChars(mailbox);
-    }
-
 }

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/model/JCRSubscription.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/model/JCRSubscription.java?rev=922148&r1=922147&r2=922148&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/model/JCRSubscription.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/model/JCRSubscription.java Fri Mar 12 05:32:01 2010
@@ -28,12 +28,12 @@ import org.apache.james.imap.jcr.JCRImap
 import org.apache.james.imap.store.user.model.Subscription;
 
 /**
- * JCR implementation of a Subscription
+ * JCR implementation of a {@link Subscription}
  * 
  */
 public class JCRSubscription implements Subscription, IsPersistent, JCRImapConstants {
-    public final static String USERNAME_PROPERTY = PROPERTY_PREFIX + "username";
-    public final static String MAILBOX_PROPERTY = PROPERTY_PREFIX  + "mailbox";
+    public final static String USERNAME_PROPERTY = PROPERTY_PREFIX + "subscriptionUsername";
+    public final static String MAILBOX_PROPERTY = PROPERTY_PREFIX  + "subscriptionMailbox";
     
     private Node node;
     private final Log log;



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org