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 2011/08/22 11:55:48 UTC
svn commit: r1160168 - in
/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store:
MessageResultImpl.java streaming/FullByteContent.java
streaming/InputStreamContent.java
Author: norman
Date: Mon Aug 22 09:55:47 2011
New Revision: 1160168
URL: http://svn.apache.org/viewvc?rev=1160168&view=rev
Log:
Allow to access raw message header without parsing it. This will give us some possibilities to improve performance in imap and pop3. See MAILBOX-115
Modified:
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/streaming/FullByteContent.java
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/streaming/InputStreamContent.java
Modified: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java?rev=1160168&r1=1160167&r2=1160168&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java (original)
+++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java Mon Aug 22 09:55:47 2011
@@ -381,7 +381,7 @@ public class MessageResultImpl implement
@Override
public long size() {
- return msg.getFullContentOctets() - msg.getBodyOctets();
+ return msg.getFullContentOctets() - msg.getBodyOctets() -2;
}
@Override
Modified: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/streaming/FullByteContent.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/streaming/FullByteContent.java?rev=1160168&r1=1160167&r2=1160168&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/streaming/FullByteContent.java (original)
+++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/streaming/FullByteContent.java Mon Aug 22 09:55:47 2011
@@ -19,11 +19,10 @@
package org.apache.james.mailbox.store.streaming;
import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.SequenceInputStream;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -65,18 +64,20 @@ public class FullByteContent implements
@Override
public InputStream getInputStream() throws IOException {
- List<InputStream> inputs = new ArrayList<InputStream>();
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
for (final Iterator<MessageResult.Header> it = headers.iterator(); it.hasNext();) {
final MessageResult.Header header = it.next();
if (header != null) {
-
- inputs.add(header.getInputStream());
+ try {
+ out.write((header.getName() + ": " + header.getValue() + "\r\n").getBytes("US-ASCII"));
+ } catch (MailboxException e) {
+ throw new IOException("Unable to read headers", e);
+ }
}
- inputs.add(new ByteArrayInputStream("\r\n".getBytes()));
}
- inputs.add(new ByteArrayInputStream("\r\n".getBytes()));
- inputs.add(new ByteArrayInputStream(body));
- return new SequenceInputStream(Collections.enumeration(inputs));
+ out.write("\r\n".getBytes("US-ASCII"));
+ out.flush();
+ return new SequenceInputStream(new ByteArrayInputStream(out.toByteArray()), new ByteArrayInputStream(body));
}
@Override
Modified: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/streaming/InputStreamContent.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/streaming/InputStreamContent.java?rev=1160168&r1=1160167&r2=1160168&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/streaming/InputStreamContent.java (original)
+++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/streaming/InputStreamContent.java Mon Aug 22 09:55:47 2011
@@ -34,7 +34,7 @@ import org.apache.james.mailbox.store.ma
* {@link Content} which is stored in a {@link InputStream}
*
*/
-public final class InputStreamContent implements org.apache.james.mailbox.InputStreamContent{
+public final class InputStreamContent implements Content{
private Message<?> m;
private Type type;
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org