Author: norman
Date: Sat Jan 1 09:40:11 2011
New Revision: 1054214
URL: http://svn.apache.org/viewvc?rev=1054214&view=rev
Log:
Make the message outputstream accessable from MailEnvelop
Modified:
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
Modified:
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java?rev=1054214&r1=1054213&r2=1054214&view=diff
==============================================================================
---
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
(original)
+++
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
Sat Jan 1 09:40:11 2011
@@ -21,6 +21,7 @@
package org.apache.james.smtpserver;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -140,12 +141,19 @@ public final class DataLineJamesMessageH
private void processExtensions(SMTPSession session, Mail mail) {
if (mail != null && messageHandlers != null) {
try {
+ MimeMessageInputStreamSource mmiss =
(MimeMessageInputStreamSource)
session.getState().get(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE);
+ OutputStream out = null;
+ try {
+ out = mmiss.getWritableOutputStream();
+ } catch (FileNotFoundException e) {
+ session.getLogger().debug("Unable to obtain OutputStream
for Mail " + mail, e);
+ }
for (int i = 0; i < mHandlers.size(); i++) {
MessageHook rawHandler = mHandlers.get(i);
session.getLogger().debug("executing james message handler
" + rawHandler);
long start = System.currentTimeMillis();
- HookResult hRes = rawHandler.onMessage(session, new
MailToMailEnvelopeWrapper(mail));
+ HookResult hRes = rawHandler.onMessage(session, new
MailToMailEnvelopeWrapper(mail, out));
long executionTime = System.currentTimeMillis() - start;
if (rHooks != null) {
@@ -232,9 +240,11 @@ public final class DataLineJamesMessageH
private class MailToMailEnvelopeWrapper implements MailEnvelope {
private Mail mail;
+ private OutputStream out;
- public MailToMailEnvelopeWrapper(Mail mail) {
+ public MailToMailEnvelopeWrapper(Mail mail, OutputStream out) {
this.mail = mail;
+ this.out = out;
}
/**
@@ -244,11 +254,13 @@ public final class DataLineJamesMessageH
return mail.getMessage().getInputStream();
}
- /**
- * Return just null. Not sure if this is a good idea ..
+
+ /*
+ * (non-Javadoc)
+ * @see
org.apache.james.protocols.smtp.MailEnvelope#getMessageOutputStream()
*/
public OutputStream getMessageOutputStream() {
- return null;
+ return out;
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]