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-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org