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