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