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/04 17:34:50 UTC
svn commit: r930703 - in /james/server/trunk:
mina-socket/src/main/java/org/apache/james/socket/
mina-socket/src/main/java/org/apache/james/socket/mina/
mina-socket/src/main/java/org/apache/james/socket/mina/filter/
pop3server/src/main/java/org/apache/...
Author: norman
Date: Sun Apr 4 15:34:49 2010
New Revision: 930703
URL: http://svn.apache.org/viewvc?rev=930703&view=rev
Log:
Allow to write InputStreams back to the client. This allows us to transfer big chunk of data to the client without loading it into the memory (JAMES-987)
Added:
james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/DisposableFileInputStream.java
james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/DisposeOnCloseInputStream.java
james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/MessageStream.java
Removed:
james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/filter/ResponseValidationFilter.java
Modified:
james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/AbstractAsyncServer.java
james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/AbstractIoHandler.java
james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/AbstractMINASession.java
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/RetrCmdHandler.java
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/TopCmdHandler.java
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/mina/AsyncPOP3Server.java
james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/mina/AsyncRemoteManager.java
james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/mina/RemoteManagerSessionImpl.java
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/mina/AsyncSMTPServer.java
Added: james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/DisposableFileInputStream.java
URL: http://svn.apache.org/viewvc/james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/DisposableFileInputStream.java?rev=930703&view=auto
==============================================================================
--- james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/DisposableFileInputStream.java (added)
+++ james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/DisposableFileInputStream.java Sun Apr 4 15:34:49 2010
@@ -0,0 +1,50 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.james.socket;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+
+import org.apache.james.lifecycle.Disposable;
+
+/**
+ * {@link FileInputStream} which offers a method to dispose the underlying {@link File}
+ *
+ *
+ */
+public class DisposableFileInputStream extends FileInputStream implements Disposable{
+
+ private File file;
+
+ public DisposableFileInputStream(File file) throws FileNotFoundException {
+ super(file);
+ this.file = file;
+ }
+
+ /**
+ * Dispose file
+ */
+ public void dispose() {
+ file.delete();
+ }
+
+
+}
Added: james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/DisposeOnCloseInputStream.java
URL: http://svn.apache.org/viewvc/james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/DisposeOnCloseInputStream.java?rev=930703&view=auto
==============================================================================
--- james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/DisposeOnCloseInputStream.java (added)
+++ james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/DisposeOnCloseInputStream.java Sun Apr 4 15:34:49 2010
@@ -0,0 +1,48 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.james.socket;
+
+import java.io.FilterInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.james.lifecycle.LifecycleUtil;
+/**
+ * {@link FilterInputStream} which dispose wrapped {@link InputStream} after close is called
+ *
+ *
+ */
+public class DisposeOnCloseInputStream extends FilterInputStream{
+
+ protected DisposeOnCloseInputStream(InputStream in) {
+ super(in);
+ }
+
+ /**
+ * Close the wrapped {@link InputStream} and dispose it
+ *
+ */
+ public void close() throws IOException {
+ super.close();
+ LifecycleUtil.dispose(in);
+ }
+
+
+}
Added: james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/MessageStream.java
URL: http://svn.apache.org/viewvc/james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/MessageStream.java?rev=930703&view=auto
==============================================================================
--- james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/MessageStream.java (added)
+++ james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/MessageStream.java Sun Apr 4 15:34:49 2010
@@ -0,0 +1,64 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.james.socket;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Helper class to write to temporary file for transfer data. This is mostly useful for writing
+ * large chunk of data back the the client. This Object is designed for one time use..
+ *
+ *
+ */
+public class MessageStream {
+ private File file;
+
+ /**
+ * Create new MessageStream on a temporary File
+ *
+ * @throws IOException
+ */
+ public MessageStream() throws IOException {
+ this.file = File.createTempFile("messagestream", ".ms");
+ }
+
+ /**
+ * Return the {@link OutputStream} of the temporary file
+ *
+ * @return out
+ * @throws IOException
+ */
+ public OutputStream getOutputStream() throws IOException {
+ return new FileOutputStream(file);
+ }
+
+ /**
+ * Return the {@link DisposeOnCloseInputStream} of the temporary file
+ *
+ * @return in
+ * @throws IOException
+ */
+ public DisposeOnCloseInputStream getInputStream() throws IOException {
+ return new DisposeOnCloseInputStream(new DisposableFileInputStream(file));
+ }
+}
Modified: james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/AbstractAsyncServer.java
URL: http://svn.apache.org/viewvc/james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/AbstractAsyncServer.java?rev=930703&r1=930702&r2=930703&view=diff
==============================================================================
--- james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/AbstractAsyncServer.java (original)
+++ james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/AbstractAsyncServer.java Sun Apr 4 15:34:49 2010
@@ -45,6 +45,7 @@ import org.apache.mina.filter.ssl.BogusT
import org.apache.mina.filter.ssl.KeyStoreFactory;
import org.apache.mina.filter.ssl.SslContextFactory;
import org.apache.mina.filter.ssl.SslFilter;
+import org.apache.mina.filter.stream.StreamWriteFilter;
import org.apache.mina.transport.socket.SocketAcceptor;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
@@ -275,7 +276,7 @@ public abstract class AbstractAsyncServe
// add connectionfilter in the first of the chain
DefaultIoFilterChainBuilder builder = createIoFilterChainBuilder();
builder.addFirst("connectionFilter", new ConnectionFilter(getLogger(), connectionLimit, connPerIP));
-
+ builder.addLast("streamFilter", new StreamWriteFilter());
// add the sslfilter if needed
if (isSSLSocket()) {
builder.addFirst( "sslFilter", new SslFilter(contextFactory.newInstance()));
Modified: james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/AbstractIoHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/AbstractIoHandler.java?rev=930703&r1=930702&r2=930703&view=diff
==============================================================================
--- james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/AbstractIoHandler.java (original)
+++ james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/AbstractIoHandler.java Sun Apr 4 15:34:49 2010
@@ -19,6 +19,7 @@
package org.apache.james.socket.mina;
+import java.io.InputStream;
import java.util.LinkedList;
import java.util.List;
@@ -45,6 +46,17 @@ public abstract class AbstractIoHandler
this.chain = chain;
}
+
+ @Override
+ public final void messageSent(IoSession session, Object message) throws Exception {
+ if (message instanceof InputStream) {
+ // we need to close the Stream after message was sent
+ ((InputStream) message).close();
+ }
+ super.messageSent(session, message);
+ }
+
+
/**
* @see org.apache.mina.core.service.IoHandlerAdapter#messageReceived(org.apache.mina.core.session.IoSession, java.lang.Object)
*/
Modified: james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/AbstractMINASession.java
URL: http://svn.apache.org/viewvc/james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/AbstractMINASession.java?rev=930703&r1=930702&r2=930703&view=diff
==============================================================================
--- james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/AbstractMINASession.java (original)
+++ james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/AbstractMINASession.java Sun Apr 4 15:34:49 2010
@@ -20,6 +20,7 @@
package org.apache.james.socket.mina;
import java.io.IOException;
+import java.io.InputStream;
import java.net.InetSocketAddress;
import javax.net.ssl.SSLContext;
@@ -139,4 +140,16 @@ public abstract class AbstractMINASessio
}
}
+ /*
+ * (non-Javadoc)
+ * @see org.apache.james.protocols.api.ProtocolSession#writeStream(java.io.InputStream)
+ */
+ public void writeStream(InputStream stream) {
+ if (getIoSession().isConnected()) {
+ getIoSession().write(stream);
+ }
+ }
+
+
+
}
Modified: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/RetrCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/RetrCmdHandler.java?rev=930703&r1=930702&r2=930703&view=diff
==============================================================================
--- james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/RetrCmdHandler.java (original)
+++ james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/RetrCmdHandler.java Sun Apr 4 15:34:49 2010
@@ -21,6 +21,16 @@
package org.apache.james.pop3server.core;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.channels.Channels;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.mail.MessagingException;
+
import org.apache.james.imap.mailbox.MailboxSession;
import org.apache.james.imap.mailbox.MessageRange;
import org.apache.james.imap.mailbox.MessageResult;
@@ -31,20 +41,7 @@ import org.apache.james.pop3server.POP3S
import org.apache.james.protocols.api.CommandHandler;
import org.apache.james.protocols.api.Request;
import org.apache.james.protocols.api.Response;
-import org.apache.mailet.Mail;
-
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.nio.channels.Channels;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
+import org.apache.james.socket.MessageStream;
/**
* Handles RETR command
@@ -78,20 +75,23 @@ public class RetrCmdHandler implements C
MailboxSession mailboxSession = (MailboxSession) session.getState().get(POP3Session.MAILBOX_SESSION);
Long uid = uidList.get(num -1);
if (deletedUidList.contains(uid) == false) {
- Iterator<MessageResult> results = session.getUserMailbox().getMessages(MessageRange.one(uid), new FetchGroupImpl(FetchGroup.FULL_CONTENT), mailboxSession);
-
- response = new POP3Response(POP3Response.OK_RESPONSE, "Message follows");
+ Iterator<MessageResult> results = session.getUserMailbox().getMessages(MessageRange.one(uid), new FetchGroupImpl(FetchGroup.FULL_CONTENT), mailboxSession);
+ MessageStream stream = new MessageStream();
+ OutputStream out = stream.getOutputStream();
+ out.write((POP3Response.OK_RESPONSE + " Message follows\r\n").getBytes());
+ //response = new POP3Response(POP3Response.OK_RESPONSE, "Message follows");
try {
MessageResult result = results.next();
- ByteArrayOutputStream out = new ByteArrayOutputStream();
result.getFullContent().writeTo(Channels.newChannel(out));
- response.appendLine(new String(out.toByteArray()));
} finally {
- response.appendLine(".");
+ out.write((".\r\n").getBytes());
+ out.flush();
}
- return response;
+ session.writeStream(stream.getInputStream());
+
+ return null;
} else {
StringBuilder responseBuffer =
Modified: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/TopCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/TopCmdHandler.java?rev=930703&r1=930702&r2=930703&view=diff
==============================================================================
--- james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/TopCmdHandler.java (original)
+++ james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/TopCmdHandler.java Sun Apr 4 15:34:49 2010
@@ -21,7 +21,6 @@
package org.apache.james.pop3server.core;
-import java.io.ByteArrayOutputStream;
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.OutputStream;
@@ -44,6 +43,7 @@ import org.apache.james.pop3server.POP3R
import org.apache.james.pop3server.POP3Session;
import org.apache.james.protocols.api.Request;
import org.apache.james.protocols.api.Response;
+import org.apache.james.socket.MessageStream;
/**
* Handles TOP command
@@ -99,11 +99,13 @@ public class TopCmdHandler extends RetrC
FetchGroupImpl fetchGroup = new FetchGroupImpl(FetchGroup.BODY_CONTENT);
fetchGroup.or(FetchGroup.HEADERS);
Iterator<MessageResult> results = session.getUserMailbox().getMessages(MessageRange.one(uid), fetchGroup, mailboxSession);
-
- response = new POP3Response(POP3Response.OK_RESPONSE, "Message follows");
+ MessageStream stream = new MessageStream();
+ OutputStream out = stream.getOutputStream();
+ out.write((POP3Response.OK_RESPONSE + " Message follows\r\n").getBytes());
+ //response = new POP3Response(POP3Response.OK_RESPONSE, "Message follows");
try {
MessageResult result = results.next();
- ByteArrayOutputStream out = new ByteArrayOutputStream();
+
WritableByteChannel outChannel = Channels.newChannel(out);
// write headers
@@ -121,12 +123,13 @@ public class TopCmdHandler extends RetrC
// write body
result.getBody().writeTo(Channels.newChannel(new CountingBodyOutputStream(out, lines)));
- response.appendLine(new String(out.toByteArray()));
} finally {
- response.appendLine(".");
+ out.write((".\r\n").getBytes());
+ out.flush();
}
+ session.writeStream(stream.getInputStream());
- return response;
+ return null;
} else {
StringBuilder responseBuffer =
Modified: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/mina/AsyncPOP3Server.java
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/mina/AsyncPOP3Server.java?rev=930703&r1=930702&r2=930703&view=diff
==============================================================================
--- james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/mina/AsyncPOP3Server.java (original)
+++ james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/mina/AsyncPOP3Server.java Sun Apr 4 15:34:49 2010
@@ -23,12 +23,10 @@ package org.apache.james.pop3server.mina
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.HierarchicalConfiguration;
import org.apache.james.pop3server.POP3HandlerConfigurationData;
-import org.apache.james.pop3server.POP3Response;
import org.apache.james.pop3server.POP3ServerMBean;
import org.apache.james.pop3server.mina.filter.POP3ResponseFilter;
import org.apache.james.protocols.api.ProtocolHandlerChain;
import org.apache.james.socket.mina.AbstractAsyncServer;
-import org.apache.james.socket.mina.filter.ResponseValidationFilter;
import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
import org.apache.mina.core.service.IoHandler;
@@ -94,7 +92,6 @@ public class AsyncPOP3Server extends Abs
// response and validation filter to the chain
builder.addLast("pop3ResponseFilter", new POP3ResponseFilter());
- builder.addLast("responseValidationFilter", new ResponseValidationFilter<POP3Response>(getLogger(), POP3Response.class));
return builder;
}
Modified: james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/mina/AsyncRemoteManager.java
URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/mina/AsyncRemoteManager.java?rev=930703&r1=930702&r2=930703&view=diff
==============================================================================
--- james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/mina/AsyncRemoteManager.java (original)
+++ james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/mina/AsyncRemoteManager.java Sun Apr 4 15:34:49 2010
@@ -28,10 +28,8 @@ import org.apache.commons.configuration.
import org.apache.james.protocols.api.ProtocolHandlerChain;
import org.apache.james.remotemanager.RemoteManagerHandlerConfigurationData;
import org.apache.james.remotemanager.RemoteManagerMBean;
-import org.apache.james.remotemanager.RemoteManagerResponse;
import org.apache.james.remotemanager.mina.filter.RemoteManagerResponseFilter;
import org.apache.james.socket.mina.AbstractAsyncServer;
-import org.apache.james.socket.mina.filter.ResponseValidationFilter;
import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
import org.apache.mina.core.service.IoHandler;
@@ -76,7 +74,6 @@ public class AsyncRemoteManager extends
// response and validation filter to the chain
builder.addLast(RemoteManagerResponseFilter.NAME, new RemoteManagerResponseFilter());
- builder.addLast("requestValidationFilter", new ResponseValidationFilter<RemoteManagerResponse>(getLogger(),RemoteManagerResponse.class));
return builder;
}
Modified: james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/mina/RemoteManagerSessionImpl.java
URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/mina/RemoteManagerSessionImpl.java?rev=930703&r1=930702&r2=930703&view=diff
==============================================================================
--- james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/mina/RemoteManagerSessionImpl.java (original)
+++ james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/mina/RemoteManagerSessionImpl.java Sun Apr 4 15:34:49 2010
@@ -19,6 +19,7 @@
package org.apache.james.remotemanager.mina;
+import java.io.InputStream;
import java.net.InetSocketAddress;
import java.util.HashMap;
import java.util.Map;
@@ -130,4 +131,14 @@ public class RemoteManagerSessionImpl im
session.write(response);
}
}
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.james.protocols.api.ProtocolSession#writeStream(java.io.InputStream)
+ */
+ public void writeStream(InputStream stream) {
+ if (session.isConnected()) {
+ session.write(stream);
+ }
+ }
}
Modified: james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/mina/AsyncSMTPServer.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/mina/AsyncSMTPServer.java?rev=930703&r1=930702&r2=930703&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/mina/AsyncSMTPServer.java (original)
+++ james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/mina/AsyncSMTPServer.java Sun Apr 4 15:34:49 2010
@@ -29,11 +29,9 @@ import org.apache.commons.configuration.
import org.apache.james.api.dnsservice.util.NetMatcher;
import org.apache.james.protocols.api.ProtocolHandlerChain;
import org.apache.james.protocols.smtp.SMTPConfiguration;
-import org.apache.james.protocols.smtp.SMTPResponse;
import org.apache.james.protocols.smtp.SMTPServerMBean;
import org.apache.james.smtpserver.mina.filter.SMTPResponseFilter;
import org.apache.james.socket.mina.AbstractAsyncServer;
-import org.apache.james.socket.mina.filter.ResponseValidationFilter;
import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
import org.apache.mina.core.service.IoHandler;
@@ -304,7 +302,6 @@ public class AsyncSMTPServer extends Abs
// response and validation filter to the chain
builder.addLast(SMTPResponseFilter.NAME, new SMTPResponseFilter());
- builder.addLast("responseValidationFilter", new ResponseValidationFilter<SMTPResponse>(getLogger(),SMTPResponse.class));
return builder;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org