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 2012/01/07 20:09:06 UTC

svn commit: r1228699 - in /james/server/trunk/smtpserver/src: main/java/org/apache/james/smtpserver/ main/java/org/apache/james/smtpserver/fastfail/ main/java/org/apache/james/smtpserver/netty/ test/java/org/apache/james/smtpserver/

Author: norman
Date: Sat Jan  7 19:09:05 2012
New Revision: 1228699

URL: http://svn.apache.org/viewvc?rev=1228699&view=rev
Log:
Fix deprecated usage of procotols api.

Modified:
    james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
    james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/JamesDataCmdHandler.java
    james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java
    james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/SpamAssassinHandler.java
    james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/URIRBLHandler.java
    james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
    james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java
    james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java
    james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java
    james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java
    james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
    james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.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=1228699&r1=1228698&r2=1228699&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  7 19:09:05 2012
@@ -36,6 +36,7 @@ import org.apache.james.core.MimeMessage
 import org.apache.james.core.MimeMessageInputStream;
 import org.apache.james.core.MimeMessageInputStreamSource;
 import org.apache.james.lifecycle.api.LifecycleUtil;
+import org.apache.james.protocols.api.ProtocolSession.State;
 import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.ExtensibleHandler;
 import org.apache.james.protocols.api.handler.LineHandler;
@@ -77,7 +78,7 @@ public class DataLineJamesMessageHookHan
         byte[] line = new byte[lineByteBuffer.remaining()];
         lineByteBuffer.get(line, 0, line.length);
         
-        MimeMessageInputStreamSource mmiss = (MimeMessageInputStreamSource) session.getState().get(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE);
+        MimeMessageInputStreamSource mmiss = (MimeMessageInputStreamSource) session.getAttachment(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE, State.Transaction);
 
         try {
             OutputStream out = mmiss.getWritableOutputStream();
@@ -88,8 +89,8 @@ public class DataLineJamesMessageHookHan
                 out.flush();
                 out.close();
 
-                List<MailAddress> recipientCollection = (List<MailAddress>) session.getState().get(SMTPSession.RCPT_LIST);
-                MailAddress mailAddress = (MailAddress) session.getState().get(SMTPSession.SENDER);
+                List<MailAddress> recipientCollection = (List<MailAddress>) session.getAttachment(SMTPSession.RCPT_LIST, State.Transaction);
+                MailAddress mailAddress = (MailAddress) session.getAttachment(SMTPSession.SENDER, State.Transaction);
                 
                 List<org.apache.mailet.MailAddress> rcpts = new ArrayList<org.apache.mailet.MailAddress>();
                 for (MailAddress address: recipientCollection) {
@@ -99,7 +100,7 @@ public class DataLineJamesMessageHookHan
 
                 // store mail in the session so we can be sure it get disposed
                 // later
-                session.getState().put(SMTPConstants.MAIL, mail);
+                session.setAttachment(SMTPConstants.MAIL, mail, State.Transaction);
 
                 MimeMessageCopyOnWriteProxy mimeMessageCopyOnWriteProxy = null;
                 try {
@@ -151,7 +152,7 @@ public class DataLineJamesMessageHookHan
     protected Response processExtensions(SMTPSession session, Mail mail) {
         if (mail != null && messageHandlers != null) {
             try {
-                MimeMessageInputStreamSource mmiss = (MimeMessageInputStreamSource) session.getState().get(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE);
+                MimeMessageInputStreamSource mmiss = (MimeMessageInputStreamSource) session.getAttachment(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE, State.Transaction);
                 OutputStream out = null;
                 try {
                     out = mmiss.getWritableOutputStream();

Modified: james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/JamesDataCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/JamesDataCmdHandler.java?rev=1228699&r1=1228698&r2=1228699&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/JamesDataCmdHandler.java (original)
+++ james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/JamesDataCmdHandler.java Sat Jan  7 19:09:05 2012
@@ -22,6 +22,7 @@ import javax.mail.MessagingException;
 
 import org.apache.james.core.MailImpl;
 import org.apache.james.core.MimeMessageInputStreamSource;
+import org.apache.james.protocols.api.ProtocolSession.State;
 import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
@@ -44,7 +45,7 @@ public class JamesDataCmdHandler extends
     protected SMTPResponse doDATA(SMTPSession session, String argument) {
         try {
             MimeMessageInputStreamSource mmiss = new MimeMessageInputStreamSource(MailImpl.getId());
-            session.getState().put(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE, mmiss);
+            session.setAttachment(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE, mmiss, State.Transaction);
         } catch (MessagingException e) {
             session.getLogger().warn("Error creating mimemessagesource for incoming data", e);
             return new SMTPResponse(SMTPRetCode.LOCAL_ERROR, "Unexpected error preparing to receive DATA.");

Modified: james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java?rev=1228699&r1=1228698&r2=1228699&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java (original)
+++ james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java Sat Jan  7 19:09:05 2012
@@ -26,6 +26,7 @@ import org.apache.james.jspf.core.except
 import org.apache.james.jspf.executor.SPFResult;
 import org.apache.james.jspf.impl.DefaultSPF;
 import org.apache.james.jspf.impl.SPF;
+import org.apache.james.protocols.api.ProtocolSession.State;
 import org.apache.james.protocols.lib.lifecycle.InitializingLifecycleAwareProtocolHandler;
 import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPRetCode;
@@ -105,7 +106,7 @@ public class SPFHandler implements James
      *            SMTP session object
      */
     private void doSPFCheck(SMTPSession session, MailAddress sender) {
-        String heloEhlo = (String) session.getState().get(SMTPSession.CURRENT_HELO_NAME);
+        String heloEhlo = (String) session.getAttachment(SMTPSession.CURRENT_HELO_NAME, State.Transaction);
 
         // We have no Sender or HELO/EHLO yet return false
         if (sender == null || heloEhlo == null) {
@@ -121,7 +122,7 @@ public class SPFHandler implements James
             String explanation = "Blocked - see: " + result.getExplanation();
 
             // Store the header
-            session.getState().put(SPF_HEADER, result.getHeaderText());
+            session.setAttachment(SPF_HEADER, result.getHeaderText(), State.Transaction);
 
             session.getLogger().info("Result for " + ip + " - " + sender + " - " + heloEhlo + " = " + spfResult);
 
@@ -131,11 +132,11 @@ public class SPFHandler implements James
                 if (spfResult.equals(SPFErrorConstants.PERM_ERROR_CONV)) {
                     explanation = "Block caused by an invalid SPF record";
                 }
-                session.getState().put(SPF_DETAIL, explanation);
-                session.getState().put(SPF_BLOCKLISTED, "true");
+                session.setAttachment(SPF_DETAIL, explanation, State.Transaction);
+                session.setAttachment(SPF_BLOCKLISTED, "true", State.Transaction);
 
             } else if (spfResult.equals(SPFErrorConstants.TEMP_ERROR_CONV)) {
-                session.getState().put(SPF_TEMPBLOCKLISTED, "true");
+                session.setAttachment(SPF_TEMPBLOCKLISTED, "true", State.Transaction);
             }
 
         }
@@ -149,9 +150,9 @@ public class SPFHandler implements James
     public HookResult doRcpt(SMTPSession session, MailAddress sender, MailAddress rcpt) {
         if (!session.isRelayingAllowed()) {
             // Check if session is blocklisted
-            if (session.getState().get(SPF_BLOCKLISTED) != null) {
-                return new HookResult(HookReturnCode.DENY, DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.SECURITY_AUTH) + " " + session.getState().get(SPF_TEMPBLOCKLISTED));
-            } else if (session.getState().get(SPF_TEMPBLOCKLISTED) != null) {
+            if (session.getAttachment(SPF_BLOCKLISTED, State.Transaction) != null) {
+                return new HookResult(HookReturnCode.DENY, DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.SECURITY_AUTH) + " " + session.getAttachment(SPF_TEMPBLOCKLISTED, State.Transaction));
+            } else if (session.getAttachment(SPF_TEMPBLOCKLISTED, State.Transaction) != null) {
                 return new HookResult(HookReturnCode.DENYSOFT, SMTPRetCode.LOCAL_ERROR, DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.NETWORK_DIR_SERVER) + " " + "Temporarily rejected: Problem on SPF lookup");
             }
         }
@@ -291,7 +292,7 @@ public class SPFHandler implements James
      */
     public HookResult onMessage(SMTPSession session, Mail mail) {
         // Store the spf header as attribute for later using
-        mail.setAttribute(SPF_HEADER_MAIL_ATTRIBUTE_NAME, (String) session.getState().get(SPF_HEADER));
+        mail.setAttribute(SPF_HEADER_MAIL_ATTRIBUTE_NAME, (String) session.getAttachment(SPF_HEADER, State.Transaction));
 
         return null;
     }

Modified: james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/SpamAssassinHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/SpamAssassinHandler.java?rev=1228699&r1=1228698&r2=1228699&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/SpamAssassinHandler.java (original)
+++ james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/SpamAssassinHandler.java Sat Jan  7 19:09:05 2012
@@ -26,6 +26,7 @@ import javax.mail.internet.MimeMessage;
 
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationException;
+import org.apache.james.protocols.api.ProtocolSession.State;
 import org.apache.james.protocols.lib.lifecycle.InitializingLifecycleAwareProtocolHandler;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.dsn.DSNStatus;
@@ -134,7 +135,7 @@ public class SpamAssassinHandler impleme
                     // if the hits are bigger the rejectionHits reject the
                     // message
                     if (spamdRejectionHits <= hits) {
-                        StringBuffer buffer = new StringBuffer(256).append("Rejected message from ").append(session.getState().get(SMTPSession.SENDER).toString()).append(" from host ").append(session.getRemoteAddress().getHostName()).append(" (").append(session.getRemoteAddress().getAddress().getHostAddress())
+                        StringBuffer buffer = new StringBuffer(256).append("Rejected message from ").append(session.getAttachment(SMTPSession.SENDER, State.Transaction).toString()).append(" from host ").append(session.getRemoteAddress().getHostName()).append(" (").append(session.getRemoteAddress().getAddress().getHostAddress())
                                 .append(") This message reach the spam hits treshold. Required rejection hits: ").append(spamdRejectionHits).append(" hits: ").append(hits);
                         session.getLogger().info(buffer.toString());
 

Modified: james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/URIRBLHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/URIRBLHandler.java?rev=1228699&r1=1228698&r2=1228699&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/URIRBLHandler.java (original)
+++ james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/URIRBLHandler.java Sat Jan  7 19:09:05 2012
@@ -36,6 +36,7 @@ import javax.mail.internet.MimePart;
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.james.dnsservice.api.DNSService;
+import org.apache.james.protocols.api.ProtocolSession.State;
 import org.apache.james.protocols.lib.lifecycle.InitializingLifecycleAwareProtocolHandler;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.dsn.DSNStatus;
@@ -119,8 +120,8 @@ public class URIRBLHandler implements Ja
      */
     public HookResult onMessage(SMTPSession session, Mail mail) {
         if (check(session, mail)) {
-            String uRblServer = (String) session.getState().get(URBLSERVER);
-            String target = (String) session.getState().get(LISTED_DOMAIN);
+            String uRblServer = (String) session.getAttachment(URBLSERVER, State.Transaction);
+            String target = (String) session.getAttachment(LISTED_DOMAIN, State.Transaction);
             String detail = null;
 
             // we should try to retrieve details
@@ -217,8 +218,8 @@ public class URIRBLHandler implements Ja
                         dnsService.getByName(address);
 
                         // store server name for later use
-                        session.getState().put(URBLSERVER, uRblServer);
-                        session.getState().put(LISTED_DOMAIN, target);
+                        session.setAttachment(URBLSERVER, uRblServer, State.Transaction);
+                        session.setAttachment(LISTED_DOMAIN, target, State.Transaction);
 
                         return true;
 

Modified: james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java?rev=1228699&r1=1228698&r2=1228699&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java (original)
+++ james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java Sat Jan  7 19:09:05 2012
@@ -150,6 +150,7 @@ public class ValidRcptMX implements Init
         return new HookResult(HookReturnCode.DECLINED);
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     public void init(Configuration config) throws ConfigurationException {
 

Modified: james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java?rev=1228699&r1=1228698&r2=1228699&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java (original)
+++ james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java Sat Jan  7 19:09:05 2012
@@ -21,6 +21,7 @@ package org.apache.james.smtpserver.nett
 import org.apache.james.lifecycle.api.LifecycleUtil;
 import org.apache.james.protocols.api.Encryption;
 import org.apache.james.protocols.api.Protocol;
+import org.apache.james.protocols.api.ProtocolSession.State;
 import org.apache.james.protocols.netty.BasicChannelUpstreamHandler;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.smtpserver.SMTPConstants;
@@ -54,8 +55,8 @@ public class SMTPChannelUpstreamHandler 
         SMTPSession smtpSession = (SMTPSession) ctx.getAttachment();
 
         if (smtpSession != null) {
-            LifecycleUtil.dispose(smtpSession.getState().get(SMTPConstants.MAIL));
-            LifecycleUtil.dispose(smtpSession.getState().get(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE));
+            LifecycleUtil.dispose(smtpSession.getAttachment(SMTPConstants.MAIL, State.Transaction));
+            LifecycleUtil.dispose(smtpSession.getAttachment(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE, State.Transaction));
         }
 
         super.cleanup(ctx);

Modified: james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java?rev=1228699&r1=1228698&r2=1228699&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java (original)
+++ james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java Sat Jan  7 19:09:05 2012
@@ -22,7 +22,6 @@ package org.apache.james.smtpserver;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import junit.framework.TestCase;
 
@@ -34,8 +33,6 @@ import org.apache.james.protocols.smtp.M
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.smtpserver.fastfail.SPFHandler;
-import org.apache.mailet.Mail;
-import org.apache.mailet.base.test.FakeMail;
 
 public class SPFHandlerTest extends TestCase {
 
@@ -45,8 +42,6 @@ public class SPFHandlerTest extends Test
 
     private boolean relaying = false;
 
-    private String command = "MAIL";
-
     protected void setUp() throws Exception {
         super.setUp();
         setupMockedDnsService();
@@ -120,64 +115,56 @@ public class SPFHandlerTest extends Test
 
         };
     }
-
-    private void setCommand(String command) {
-        this.command = command;
-    }
-
+    
     /**
      * Setup mocked smtpsession
      */
     private void setupMockedSMTPSession(final String ip, final String helo) {
         mockedSMTPSession = new BaseFakeSMTPSession() {
-            HashMap state = new HashMap();
-
-            HashMap connectionState = new HashMap();
-
-            Mail mail = new FakeMail();
-
-            boolean stopHandler = false;
-
-            public void writeResponse(String respString) {
-                // Do nothing
-            }
-
-            public String getCommandName() {
-                return command;
-            }
+            private HashMap<String, Object> sstate = new HashMap<String, Object>();
+            private HashMap<String, Object> connectionState = new HashMap<String, Object>();
 
-            public Mail getMail() {
-                return mail;
+            @Override
+            public Object setAttachment(String key, Object value, State state) {
+                if (state == State.Connection) {
+                    if (value == null) {
+                        return connectionState.remove(key);
+                    }
+                    return connectionState.put(key, value);
+                } else {
+                    if (value == null) {
+                        return sstate.remove(key);
+                    }
+                    return sstate.put(key, value);
+                }
             }
 
+            @Override
+            public Object getAttachment(String key, State state) {
+                sstate.put(SMTPSession.CURRENT_HELO_NAME, helo);
+
+                if (state == State.Connection) {
+                    return connectionState.get(key);
+                } else {
+                    return sstate.get(key);
+                }
+            }    
+            
             public String getRemoteIPAddress() {
                 return ip;
             }
 
-            public Map getState() {
-                state.put(SMTPSession.CURRENT_HELO_NAME, helo);
-                return state;
-            }
+            
 
             public boolean isRelayingAllowed() {
                 return relaying;
             }
 
-            public boolean isAuthRequired() {
-                return false;
-            }
 
             public int getRcptCount() {
                 return 0;
             }
 
-            public Map getConnectionState() {
-                return connectionState;
-            }
-
-            public void resetConnectionState() {
-                connectionState.clear();
-            }
 
         };
     }

Modified: james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java?rev=1228699&r1=1228698&r2=1228699&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java (original)
+++ james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java Sat Jan  7 19:09:05 2012
@@ -21,7 +21,6 @@ package org.apache.james.smtpserver;
 
 import java.io.IOException;
 import java.util.HashMap;
-import java.util.Map;
 
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
@@ -50,8 +49,9 @@ public class SpamAssassinHandlerTest ext
     private SMTPSession setupMockedSMTPSession(final Mail mail) {
         mockedMail = mail;
         mockedSMTPSession = new BaseFakeSMTPSession() {
-
-            private HashMap state = new HashMap();
+            
+            private HashMap<String, Object> sstate = new HashMap<String, Object>();
+            private HashMap<String, Object> connectionState = new HashMap<String, Object>();
 
             private String ipAddress = "192.168.0.1";
 
@@ -67,9 +67,29 @@ public class SpamAssassinHandlerTest ext
                 return ipAddress;
             }
 
-            public Map getState() {
-                state.put(SMTPSession.SENDER, "sender@james.apache.org");
-                return state;
+            @Override
+            public Object setAttachment(String key, Object value, State state) {
+                if (state == State.Connection) {
+                    if (value == null) {
+                        return connectionState.remove(key);
+                    }
+                    return connectionState.put(key, value);
+                } else {
+                    if (value == null) {
+                        return sstate.remove(key);
+                    }
+                    return sstate.put(key, value);
+                }
+            }
+
+            @Override
+            public Object getAttachment(String key, State state) {
+                sstate.put(SMTPSession.SENDER, "sender@james.apache.org");
+                if (state == State.Connection) {
+                    return connectionState.get(key);
+                } else {
+                    return sstate.get(key);
+                }
             }
 
             public boolean isRelayingAllowed() {

Modified: james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java?rev=1228699&r1=1228698&r2=1228699&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java (original)
+++ james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java Sat Jan  7 19:09:05 2012
@@ -26,7 +26,6 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import javax.mail.BodyPart;
 import javax.mail.MessagingException;
@@ -60,7 +59,6 @@ public class URIRBLHandlerTest extends T
         mockedMail = mail;
         mockedSMTPSession = new BaseFakeSMTPSession() {
 
-            private HashMap state = new HashMap();
 
             private String ipAddress = "192.168.0.1";
 
@@ -76,11 +74,37 @@ public class URIRBLHandlerTest extends T
                 return ipAddress;
             }
 
-            public Map getState() {
-                state.put(SMTPSession.SENDER, "sender@james.apache.org");
-                return state;
+
+
+            private HashMap<String, Object> sstate = new HashMap<String, Object>();
+            private HashMap<String, Object> connectionState = new HashMap<String, Object>();
+
+            @Override
+            public Object setAttachment(String key, Object value, State state) {
+                if (state == State.Connection) {
+                    if (value == null) {
+                        return connectionState.remove(key);
+                    }
+                    return connectionState.put(key, value);
+                } else {
+                    if (value == null) {
+                        return sstate.remove(key);
+                    }
+                    return sstate.put(key, value);
+                }
             }
 
+            @Override
+            public Object getAttachment(String key, State state) {
+                sstate.put(SMTPSession.SENDER, "sender@james.apache.org");
+
+                if (state == State.Connection) {
+                    return connectionState.get(key);
+                } else {
+                    return sstate.get(key);
+                }
+            }    
+            
             public boolean isRelayingAllowed() {
                 return relayingAllowed;
             }

Modified: james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java?rev=1228699&r1=1228698&r2=1228699&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java (original)
+++ james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java Sat Jan  7 19:09:05 2012
@@ -27,6 +27,7 @@ import java.util.Map;
 import junit.framework.TestCase;
 
 import org.apache.james.domainlist.api.mock.SimpleDomainList;
+import org.apache.james.protocols.api.ProtocolSession.State;
 import org.apache.james.protocols.smtp.BaseFakeSMTPSession;
 import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPConfiguration;
@@ -67,15 +68,37 @@ public class ValidRcptHandlerTest extend
 
     private SMTPSession setupMockedSMTPSession(final SMTPConfiguration conf, final MailAddress rcpt, final boolean relayingAllowed) {
         SMTPSession session = new BaseFakeSMTPSession() {
-            HashMap<String, Object> state = new HashMap<String, Object>();
 
             public boolean isRelayingAllowed() {
                 return relayingAllowed;
             }
 
-            public Map<String, Object> getState() {
-                return state;
+            private HashMap<String, Object> sstate = new HashMap<String, Object>();
+            private HashMap<String, Object> connectionState = new HashMap<String, Object>();
+
+            @Override
+            public Object setAttachment(String key, Object value, State state) {
+                if (state == State.Connection) {
+                    if (value == null) {
+                        return connectionState.remove(key);
+                    }
+                    return connectionState.put(key, value);
+                } else {
+                    if (value == null) {
+                        return sstate.remove(key);
+                    }
+                    return sstate.put(key, value);
+                }
             }
+
+            @Override
+            public Object getAttachment(String key, State state) {
+                if (state == State.Connection) {
+                    return connectionState.get(key);
+                } else {
+                    return sstate.get(key);
+                }
+            }    
         };
 
         return session;
@@ -166,14 +189,6 @@ public class ValidRcptHandlerTest extend
                 throw new UnsupportedOperationException("Unimplemented Stub Method");
             }
 
-            public int getResetLength() {
-                throw new UnsupportedOperationException("Unimplemented Stub Method");
-            }
-
-            public String getSMTPGreeting() {
-                throw new UnsupportedOperationException("Unimplemented Stub Method");
-            }
-
             public boolean isRelayingAllowed(String remoteIP) {
                 throw new UnsupportedOperationException("Unimplemented Stub Method");
             }
@@ -190,10 +205,6 @@ public class ValidRcptHandlerTest extend
                 throw new UnsupportedOperationException("Unimplemented Stub Method");
             }
 
-            public boolean isStartTLSSupported() {
-                return false;
-            }
-
             @Override
             public String getGreeting() {
                 // TODO Auto-generated method stub
@@ -252,7 +263,7 @@ public class ValidRcptHandlerTest extend
 
         int rCode = handler.doRcpt(session, null, mailAddress).getResult();
 
-        assertNull("Valid Error mapping", session.getState().get("VALID_USER"));
+        assertNull("Valid Error mapping", session.getAttachment("VALID_USER", State.Transaction));
         assertEquals("Error mapping", rCode, HookReturnCode.DENY);
     }
 }

Modified: james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java?rev=1228699&r1=1228698&r2=1228699&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java (original)
+++ james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java Sat Jan  7 19:09:05 2012
@@ -24,7 +24,6 @@ import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
-import java.util.Map;
 
 import javax.mail.internet.ParseException;
 
@@ -49,12 +48,34 @@ public class ValidRcptMXTest extends Tes
 
     private SMTPSession setupMockedSMTPSession(final MailAddress rcpt) {
         SMTPSession session = new BaseFakeSMTPSession() {
-            HashMap state = new HashMap();
 
-            public Map getState() {
-                return state;
+
+            private HashMap<String, Object> sstate = new HashMap<String, Object>();
+            private HashMap<String, Object> connectionState = new HashMap<String, Object>();
+
+            @Override
+            public Object setAttachment(String key, Object value, State state) {
+                if (state == State.Connection) {
+                    if (value == null) {
+                        return connectionState.remove(key);
+                    }
+                    return connectionState.put(key, value);
+                } else {
+                    if (value == null) {
+                        return sstate.remove(key);
+                    }
+                    return sstate.put(key, value);
+                }
             }
 
+            @Override
+            public Object getAttachment(String key, State state) {
+                if (state == State.Connection) {
+                    return connectionState.get(key);
+                } else {
+                    return sstate.get(key);
+                }
+            }    
             public String getRemoteIPAddress() {
                 return "127.0.0.1";
             }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org