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: [email protected]
For additional commands, e-mail: [email protected]