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/04/08 18:59:34 UTC

svn commit: r932007 - in /james/imap/trunk: jcr/src/main/java/org/apache/james/imap/jcr/mail/model/ jpa/src/main/java/org/apache/james/imap/jpa/mail/model/ jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/ store/src/main/java/org/apache/j...

Author: norman
Date: Thu Apr  8 16:59:33 2010
New Revision: 932007

URL: http://svn.apache.org/viewvc?rev=932007&view=rev
Log:
Share some more code

Modified:
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMessage.java
    james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java
    james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMessage.java
    james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractDocument.java

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMessage.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMessage.java?rev=932007&r1=932006&r2=932007&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMessage.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMessage.java Thu Apr  8 16:59:33 2010
@@ -33,9 +33,6 @@ import org.apache.jackrabbit.JcrConstant
 import org.apache.james.imap.jcr.JCRImapConstants;
 import org.apache.james.imap.jcr.JCRUtils;
 import org.apache.james.imap.jcr.Persistent;
-import org.apache.james.imap.store.DelegatingRewindableInputStream;
-import org.apache.james.imap.store.LazySkippingInputStream;
-import org.apache.james.imap.store.RewindableInputStream;
 import org.apache.james.imap.store.StreamUtils;
 import org.apache.james.imap.store.mail.model.AbstractDocument;
 import org.apache.james.imap.store.mail.model.Document;
@@ -130,29 +127,6 @@ public class JCRMessage extends Abstract
     
     /*
      * (non-Javadoc)
-     * @see org.apache.james.imap.store.mail.model.Document#getFullContent()
-     */
-    public RewindableInputStream getFullContent() throws IOException {
-        return new DelegatingRewindableInputStream(getFullContentInternal(), getFullContentOctets());
-    }
-    
-    
-    public InputStream getFullContentInternal() throws IOException {
-        if (isPersistent()) {
-            try {
-                //TODO: Maybe we should cache this somehow...
-                InputStream contentStream = node.getNode(JcrConstants.JCR_CONTENT).getProperty(JcrConstants.JCR_DATA).getStream();
-                return contentStream;
-            } catch (RepositoryException e) {
-                logger.error("Unable to retrieve property " + JcrConstants.JCR_CONTENT, e);
-            }
-            return null;
-        }
-        return content;
-    }
-
-    /*
-     * (non-Javadoc)
      * @see org.apache.james.imap.store.mail.model.Document#getFullContentOctets()
      */
     public long getFullContentOctets() {
@@ -423,13 +397,19 @@ public class JCRMessage extends Abstract
         return retValue;
     }
 
-    /*
-     * (non-Javadoc)
-     * @see org.apache.james.imap.store.mail.model.Document#getBodyContent()
-     */
-    public RewindableInputStream getBodyContent() throws IOException {
-        return new DelegatingRewindableInputStream(new LazySkippingInputStream(getFullContentInternal(), getBodyStartOctet()), getFullContentOctets());
+    @Override
+    protected InputStream getRawFullContent() {
+        if (isPersistent()) {
+            try {
+                //TODO: Maybe we should cache this somehow...
+                InputStream contentStream = node.getNode(JcrConstants.JCR_CONTENT).getProperty(JcrConstants.JCR_DATA).getStream();
+                return contentStream;
+            } catch (RepositoryException e) {
+                logger.error("Unable to retrieve property " + JcrConstants.JCR_CONTENT, e);
+            }
+            return null;
+        }
+        return content;
     }
 
-
 }

Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java?rev=932007&r1=932006&r2=932007&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java Thu Apr  8 16:59:33 2010
@@ -29,11 +29,6 @@ import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.Lob;
 
-import org.apache.james.imap.store.DelegatingRewindableInputStream;
-import org.apache.james.imap.store.FileRewindableInputStream;
-import org.apache.james.imap.store.InMemoryRewindableInputStream;
-import org.apache.james.imap.store.LazySkippingInputStream;
-import org.apache.james.imap.store.RewindableInputStream;
 import org.apache.james.imap.store.StreamUtils;
 import org.apache.james.imap.store.mail.model.PropertyBuilder;
 
@@ -64,20 +59,9 @@ public class JPAMessage extends Abstract
         
     }
 
-    /*
-     * (non-Javadoc)
-     * @see org.apache.james.imap.store.mail.model.Document#getFullContent()
-     */
-    public RewindableInputStream getFullContent() throws IOException{
-        return new DelegatingRewindableInputStream(new ByteArrayInputStream(content),getFullContentOctets());
-    }
-
-    /*
-     * (non-Javadoc)
-     * @see org.apache.james.imap.store.mail.model.Document#getBodyContent()
-     */
-    public RewindableInputStream getBodyContent() throws IOException {
-        return new DelegatingRewindableInputStream(new LazySkippingInputStream(new ByteArrayInputStream(content), getBodyStartOctet()),getFullContentOctets());
+    @Override
+    protected InputStream getRawFullContent() {
+        return new ByteArrayInputStream(content);
     }
 
 }

Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMessage.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMessage.java?rev=932007&r1=932006&r2=932007&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMessage.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMessage.java Thu Apr  8 16:59:33 2010
@@ -31,9 +31,6 @@ import javax.persistence.FetchType;
 import org.apache.james.imap.jpa.mail.model.AbstractJPAMessage;
 import org.apache.james.imap.jpa.mail.model.JPAHeader;
 import org.apache.james.imap.jpa.mail.model.JPAMessage;
-import org.apache.james.imap.store.DelegatingRewindableInputStream;
-import org.apache.james.imap.store.LazySkippingInputStream;
-import org.apache.james.imap.store.RewindableInputStream;
 import org.apache.james.imap.store.StreamUtils;
 import org.apache.james.imap.store.mail.model.PropertyBuilder;
 import org.apache.openjpa.persistence.Persistent;
@@ -73,21 +70,9 @@ public class JPAStreamingMessage extends
         this.content = new ByteArrayInputStream(StreamUtils.toByteArray(message.getFullContent()));
     }
 
-    /*
-     * (non-Javadoc)
-     * @see org.apache.james.imap.store.mail.model.Document#getFullContent()
-     */
-    public RewindableInputStream getFullContent() throws IOException {
-        return new DelegatingRewindableInputStream(content,getFullContentOctets());
-    }
-
-    /*
-     * (non-Javadoc)
-     * @see org.apache.james.imap.store.mail.model.Document#getBodyContent()
-     */
-    public RewindableInputStream getBodyContent() throws IOException {
-        return new DelegatingRewindableInputStream(new LazySkippingInputStream(content, getBodyStartOctet()),getFullContentOctets());
-
+    @Override
+    protected InputStream getRawFullContent() {
+        return content;
     }
 
 }

Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractDocument.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractDocument.java?rev=932007&r1=932006&r2=932007&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractDocument.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractDocument.java Thu Apr  8 16:59:33 2010
@@ -18,6 +18,13 @@
  ****************************************************************/
 package org.apache.james.imap.store.mail.model;
 
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.james.imap.store.DelegatingRewindableInputStream;
+import org.apache.james.imap.store.LazySkippingInputStream;
+import org.apache.james.imap.store.RewindableInputStream;
+
 
 /**
  * Abstract base class for {@link Document}
@@ -42,5 +49,29 @@ public abstract class AbstractDocument i
      */
     protected abstract int getBodyStartOctet();
     
+    /*
+     * (non-Javadoc)
+     * @see org.apache.james.imap.store.mail.model.Document#getFullContent()
+     */
+    public RewindableInputStream getFullContent() throws IOException {
+        return new DelegatingRewindableInputStream(getRawFullContent(), getFullContentOctets());
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.james.imap.store.mail.model.Document#getBodyContent()
+     */
+    public RewindableInputStream getBodyContent() throws IOException {
+        return new DelegatingRewindableInputStream(new LazySkippingInputStream(getRawFullContent(), getBodyStartOctet()),getFullContentOctets());
+
+    }
+    
+    /**
+     * Return the raw {@link InputStream} of the full content
+     * 
+     * @return rawFullContent
+     */
+    protected abstract InputStream getRawFullContent();
+    
 
 }



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