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/12/20 09:20:44 UTC

svn commit: r1221135 - in /james/protocols/trunk: ./ lmtp/ lmtp/src/main/java/org/apache/james/protocols/lmtp/ lmtp/src/main/java/org/apache/james/protocols/lmtp/hook/ smtp/ smtp/src/main/java/org/apache/james/protocols/smtp/ smtp/src/main/java/org/apa...

Author: norman
Date: Tue Dec 20 08:20:43 2011
New Revision: 1221135

URL: http://svn.apache.org/viewvc?rev=1221135&view=rev
Log:
Remove dependency on mailet-api and javamail. See PROTOCOLS-56

Added:
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddress.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddressException.java
Modified:
    james/protocols/trunk/lmtp/pom.xml
    james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/LMTPDataLineMessageHookHandler.java
    james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/hook/DeliverToRecipientHook.java
    james/protocols/trunk/pom.xml
    james/protocols/trunk/smtp/pom.xml
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/DNSService.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelope.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelopeImpl.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAuthRequiredToRelayRcptHook.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AcceptRecipientIfRelayingIsAllowed.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandler.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/hook/MailHook.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/hook/RcptHook.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/hook/SimpleHook.java
    james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/BaseFakeDNSService.java
    james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandlerTest.java
    james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandlerTest.java
    james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java
    james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java
    james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandlerTest.java
    james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java

Modified: james/protocols/trunk/lmtp/pom.xml
URL: http://svn.apache.org/viewvc/james/protocols/trunk/lmtp/pom.xml?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/lmtp/pom.xml (original)
+++ james/protocols/trunk/lmtp/pom.xml Tue Dec 20 08:20:43 2011
@@ -45,14 +45,6 @@
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.apache.james</groupId>
-            <artifactId>apache-mailet</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.javamail</groupId>
-            <artifactId>geronimo-javamail_1.4_mail</artifactId>
-        </dependency>
 
         <dependency>
             <groupId>junit</groupId>

Modified: james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/LMTPDataLineMessageHookHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/LMTPDataLineMessageHookHandler.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/LMTPDataLineMessageHookHandler.java (original)
+++ james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/LMTPDataLineMessageHookHandler.java Tue Dec 20 08:20:43 2011
@@ -26,6 +26,7 @@ import java.util.List;
 import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.WiringException;
 import org.apache.james.protocols.lmtp.hook.DeliverToRecipientHook;
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.MailEnvelopeImpl;
 import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPRetCode;
@@ -33,7 +34,6 @@ import org.apache.james.protocols.smtp.S
 import org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler;
 import org.apache.james.protocols.smtp.core.DataLineMessageHookHandler;
 import org.apache.james.protocols.smtp.dsn.DSNStatus;
-import org.apache.mailet.MailAddress;
 
 public class LMTPDataLineMessageHookHandler extends DataLineMessageHookHandler{
 

Modified: james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/hook/DeliverToRecipientHook.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/hook/DeliverToRecipientHook.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/hook/DeliverToRecipientHook.java (original)
+++ james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/hook/DeliverToRecipientHook.java Tue Dec 20 08:20:43 2011
@@ -19,11 +19,11 @@
 
 package org.apache.james.protocols.lmtp.hook;
 
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.MailEnvelope;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.hook.Hook;
 import org.apache.james.protocols.smtp.hook.HookResult;
-import org.apache.mailet.MailAddress;
 
 public interface DeliverToRecipientHook extends Hook {
 

Modified: james/protocols/trunk/pom.xml
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pom.xml?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/pom.xml (original)
+++ james/protocols/trunk/pom.xml Tue Dec 20 08:20:43 2011
@@ -98,27 +98,6 @@
                 <scope>test</scope>
             </dependency>
             <dependency>
-                <groupId>org.apache.james</groupId>
-                <artifactId>apache-mailet</artifactId>
-                <version>2.4</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>javax.mail</groupId>
-                        <artifactId>mail</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.specs</groupId>
-                <artifactId>geronimo-activation_1.1_spec</artifactId>
-                <version>1.0.2</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.javamail</groupId>
-                <artifactId>geronimo-javamail_1.4_mail</artifactId>
-                <version>1.6</version>
-            </dependency>
-            <dependency>
                 <groupId>commons-codec</groupId>
                 <artifactId>commons-codec</artifactId>
                 <version>1.5</version>

Modified: james/protocols/trunk/smtp/pom.xml
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/pom.xml?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/pom.xml (original)
+++ james/protocols/trunk/smtp/pom.xml Tue Dec 20 08:20:43 2011
@@ -46,14 +46,6 @@
             <artifactId>commons-codec</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.james</groupId>
-            <artifactId>apache-mailet</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.javamail</groupId>
-            <artifactId>geronimo-javamail_1.4_mail</artifactId>
-        </dependency>
-        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/DNSService.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/DNSService.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/DNSService.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/DNSService.java Tue Dec 20 08:20:43 2011
@@ -24,9 +24,6 @@ package org.apache.james.protocols.smtp;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.Collection;
-import java.util.Iterator;
-
-import org.apache.mailet.HostAddress;
 
 
 /**
@@ -65,26 +62,6 @@ public interface DNSService {
      */
     Collection<String> findTXTRecords(String hostname);
 
-
-    /**
-     * Returns an Iterator over org.apache.mailet.HostAddress, a
-     * specialized subclass of javax.mail.URLName, which provides
-     * location information for servers that are specified as mail
-     * handlers for the given hostname.  This is done using MX records,
-     * and the HostAddress instances are returned sorted by MX priority.
-     * If no host is found for domainName, the Iterator returned will be
-     * empty and the first call to hasNext() will return false.  The
-     * Iterator is a nested iterator: the outer iteration is over the
-     * results of the MX record lookup, and the inner iteration is over
-     * potentially multiple A records for each MX record.  DNS lookups
-     * are deferred until actually needed.
-     *
-     * @since v2.2.0a16-unstable
-     * @param domainName - the domain for which to find mail servers
-     * @return an Iterator over HostAddress instances, sorted by priority
-     * @throws TemporaryResolutionException get thrown on temporary problems
-     */
-    Iterator<HostAddress> getSMTPHostAddresses(String domainName) throws TemporaryResolutionException;
     
     /**
      * @see java.net.InetAddress#getAllByName(String)

Added: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddress.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddress.java?rev=1221135&view=auto
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddress.java (added)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddress.java Tue Dec 20 08:20:43 2011
@@ -0,0 +1,481 @@
+/****************************************************************
+ * 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.protocols.smtp;
+
+import java.util.Locale;
+
+/**
+ * A representation of an email address.
+ * 
+ * <p>This class encapsulates functionality to access different
+ * parts of an email address without dealing with its parsing.</p>
+ *
+ * <p>A MailAddress is an address specified in the MAIL FROM and
+ * RCPT TO commands in SMTP sessions.  These are either passed by
+ * an external server to the mailet-compliant SMTP server, or they
+ * are created programmatically by the mailet-compliant server to
+ * send to another (external) SMTP server.  Mailets and matchers
+ * use the MailAddress for the purpose of evaluating the sender
+ * and recipient(s) of a message.</p>
+ *
+ * <p>MailAddress parses an email address as defined in RFC 821
+ * (SMTP) p. 30 and 31 where addresses are defined in BNF convention.
+ * As the mailet API does not support the aged "SMTP-relayed mail"
+ * addressing protocol, this leaves all addresses to be a {@code <mailbox>},
+ * as per the spec. 
+ *
+ * <p>This class is a good way to validate email addresses as there are
+ * some valid addresses which would fail with a simpler approach
+ * to parsing address. It also removes the parsing burden from
+ * mailets and matchers that might not realize the flexibility of an
+ * SMTP address. For instance, "serge@home"@lokitech.com is a valid
+ * SMTP address (the quoted text serge@home is the local-part and
+ * lokitech.com is the domain). This means all current parsing to date
+ * is incorrect as we just find the first '@' and use that to separate
+ * local-part from domain.</p>
+ *
+ * <p>This parses an address as per the BNF specification for <mailbox>
+ * from RFC 821 on page 30 and 31, section 4.1.2. COMMAND SYNTAX.
+ * http://www.freesoft.org/CIE/RFC/821/15.htm</p>
+ *
+ * <strong>This version is copied from mailet-api with a few changes to not make it depend on javamail</strong>
+ */
+public class MailAddress {
+
+    private final static char[] SPECIAL =
+    {'<', '>', '(', ')', '[', ']', '\\', '.', ',', ';', ':', '@', '\"'};
+
+    private String localPart = null;
+    private String domain = null;
+
+    /**
+     * Strips source routing. According to RFC-2821 it is a valid approach
+     * to handle mails containing RFC-821 source-route information.
+     * 
+     * @param address the address to strip
+     * @param pos current position
+     * @return new pos
+     */
+    private int stripSourceRoute(String address, int pos) {
+        if (pos < address.length()) {
+            if (address.charAt(pos)=='@') { 
+                int i = address.indexOf(':');
+                if (i != -1) {
+                    pos = i+1;
+                }
+            }
+        }
+        return pos;
+    }
+    
+    /**
+     * Constructs a MailAddress by parsing the provided address.
+     *
+     * @param address the email address, compliant to the RFC2822 3.4.1. addr-spec specification
+     * @throws MailAddressException if the parse failed
+     */
+    public MailAddress(String address) throws MailAddressException {
+        address = address.trim();
+        int pos = 0;
+        
+        // Test if mail address has source routing information (RFC-821) and get rid of it!!
+        //must be called first!! (or at least prior to updating pos)
+        stripSourceRoute(address, pos);
+
+        StringBuffer localPartSB = new StringBuffer();
+        StringBuffer domainSB = new StringBuffer();
+        //Begin parsing
+        //<mailbox> ::= <local-part> "@" <domain>
+
+        try {
+            //parse local-part
+            //<local-part> ::= <dot-string> | <quoted-string>
+            if (address.charAt(pos) == '\"') {
+                pos = parseQuotedLocalPart(localPartSB, address, pos);
+                if (localPartSB.toString().length() == 2) {
+                    throw new MailAddressException("No quoted local-part (user account) found at position " + (pos + 2) + " in '" + address + "'",address,pos+2);
+                }
+            } else {
+                pos = parseUnquotedLocalPart(localPartSB, address, pos);
+                if (localPartSB.toString().length() == 0) {
+                    throw new MailAddressException("No local-part (user account) found at position " + (pos + 1) + " in '" + address + "'",address,pos+1);
+                }
+            }
+
+            //find @
+            if (pos >= address.length() || address.charAt(pos) != '@') {
+                throw new MailAddressException("Did not find @ between local-part and domain at position " + (pos + 1) + " in '" + address + "'",address,pos+1);
+            }
+            pos++;
+
+            //parse domain
+            //<domain> ::=  <element> | <element> "." <domain>
+            //<element> ::= <name> | "#" <number> | "[" <dotnum> "]"
+            while (true) {
+                if (address.charAt(pos) == '#') {
+                    pos = parseNumber(domainSB, address, pos);
+                } else if (address.charAt(pos) == '[') {
+                    pos = parseDomainLiteral(domainSB, address, pos);
+                } else {
+                    pos = parseDomain(domainSB, address, pos);
+                }
+                if (pos >= address.length()) {
+                    break;
+                }
+                if (address.charAt(pos) == '.') {
+                    domainSB.append('.');
+                    pos++;
+                    continue;
+                }
+                break;
+            }
+
+            if (domainSB.toString().length() == 0) {
+                throw new MailAddressException("No domain found at position " + (pos + 1) + " in '" + address + "'",address,pos+1);
+            }
+        } catch (IndexOutOfBoundsException ioobe) {
+            throw new MailAddressException("Out of data at position " + (pos + 1) + " in '" + address + "'",address,pos+1);
+        }
+
+        localPart = localPartSB.toString();
+        domain = domainSB.toString();
+    }
+
+    /**
+     * Constructs a MailAddress with the provided local part and domain.
+     *
+     * @param localPart the local-part portion. This is a domain dependent string.
+     *        In addresses, it is simply interpreted on the particular host as a
+     *        name of a particular mailbox. per RFC2822 3.4.1. addr-spec specification
+     * @param domain the domain portion. This identifies the point to which the mail
+     *        is delivered  per RFC2822 3.4.1. addr-spec specification
+     * @throws AddressException if the parse failed
+     */
+    public MailAddress(String localPart, String domain) throws MailAddressException {
+        this(localPart+"@"+domain);
+    }
+
+
+    
+    /**
+     * Returns the domain part per RFC2822 3.4.1. addr-spec specification.
+     *
+     * @return the domain part of this email address. If the domain is of
+     * the domain-literal form  (e.g. [yyy.yyy.yyy.yyy]), the braces will
+     * have been stripped returning the raw IP address.
+     * 
+     */
+    public String getDomain() {
+        if (!(domain.startsWith("[") && domain.endsWith("]"))) {
+            return domain;
+        } 
+        return domain.substring(1, domain.length() -1);
+    }
+
+
+    
+    /**
+     * Returns the local-part per RFC2822 3.4.1. addr-spec specification.
+     *
+     * @return  the local-part of this email address as defined by the
+     *          RFC2822 3.4.1. addr-spec specification. 
+     *          The local-part portion is a domain dependent string.
+     *          In addresses, it is simply interpreted on the particular
+     *          host as a name of a particular mailbox
+     *          (the part before the "@" character)
+     *          
+     * @since Mailet API 2.4
+     */
+    public String getLocalPart() {
+        return localPart;
+    }
+
+    @Override
+    public String toString() {
+        StringBuffer addressBuffer =
+            new StringBuffer(128)
+                    .append(localPart)
+                    .append("@")
+                    .append(domain);
+        return addressBuffer.toString();
+    }
+    
+    
+    /**
+     * Indicates whether some other object is "equal to" this one.
+     * 
+     * Note that this implementation breaks the general contract of the
+     * <code>equals</code> method by allowing an instance to equal to a
+     * <code>String</code>. It is recommended that implementations avoid
+     * relying on this design which may be removed in a future release.
+     * 
+     * @returns true if the given object is equal to this one, false otherwise
+     */
+    @Override
+    public boolean equals(Object obj) {
+        if (obj == null) {
+            return false;
+        } else if (obj instanceof String) {
+            String theString = (String)obj;
+            return toString().equalsIgnoreCase(theString);
+        } else if (obj instanceof MailAddress) {
+            MailAddress addr = (MailAddress)obj;
+            return getLocalPart().equalsIgnoreCase(addr.getLocalPart()) && getDomain().equalsIgnoreCase(addr.getDomain());
+        }
+        return false;
+    }
+
+    /**
+     * Returns a hash code value for this object.
+     * <p>
+     * This method is implemented by returning the hash code of the canonical
+     * string representation of this address, so that all instances representing
+     * the same address will return an identical hash code.
+     *
+     * @return the hashcode.
+     */
+    @Override
+    public int hashCode() {
+        return toString().toLowerCase(Locale.US).hashCode();
+    }
+
+    private int parseQuotedLocalPart(StringBuffer lpSB, String address, int pos) throws MailAddressException {
+        StringBuffer resultSB = new StringBuffer();
+        resultSB.append('\"');
+        pos++;
+        //<quoted-string> ::=  """ <qtext> """
+        //<qtext> ::=  "\" <x> | "\" <x> <qtext> | <q> | <q> <qtext>
+        while (true) {
+            if (address.charAt(pos) == '\"') {
+                resultSB.append('\"');
+                //end of quoted string... move forward
+                pos++;
+                break;
+            }
+            if (address.charAt(pos) == '\\') {
+                resultSB.append('\\');
+                pos++;
+                //<x> ::= any one of the 128 ASCII characters (no exceptions)
+                char x = address.charAt(pos);
+                if (x < 0 || x > 127) {
+                    throw new MailAddressException("Invalid \\ syntaxed character at position " + (pos + 1) + " in '" + address + "'",address,pos+1);
+                }
+                resultSB.append(x);
+                pos++;
+            } else {
+                //<q> ::= any one of the 128 ASCII characters except <CR>,
+                //<LF>, quote ("), or backslash (\)
+                char q = address.charAt(pos);
+                if (q <= 0 || q == '\n' || q == '\r' || q == '\"' || q == '\\') {
+                    throw new MailAddressException("Unquoted local-part (user account) must be one of the 128 ASCI characters exception <CR>, <LF>, quote (\"), or backslash (\\) at position " + (pos + 1) + " in '" + address + "'", address, pos+1);
+                }
+                resultSB.append(q);
+                pos++;
+            }
+        }
+        lpSB.append(resultSB);
+        return pos;
+    }
+
+    private int parseUnquotedLocalPart(StringBuffer lpSB, String address, int pos) throws MailAddressException {
+        StringBuffer resultSB = new StringBuffer();
+        //<dot-string> ::= <string> | <string> "." <dot-string>
+        boolean lastCharDot = false;
+        while (true) {
+            //<string> ::= <char> | <char> <string>
+            //<char> ::= <c> | "\" <x>
+            if (address.charAt(pos) == '\\') {
+                resultSB.append('\\');
+                pos++;
+                //<x> ::= any one of the 128 ASCII characters (no exceptions)
+                char x = address.charAt(pos);
+                if (x < 0 || x > 127) {
+                    throw new MailAddressException("Invalid \\ syntaxed character at position " + (pos + 1) + " in '" + address + "'",address,pos+1);
+                }
+                resultSB.append(x);
+                pos++;
+                lastCharDot = false;
+            } else if (address.charAt(pos) == '.') {
+                resultSB.append('.');
+                pos++;
+                lastCharDot = true;
+            } else if (address.charAt(pos) == '@') {
+                //End of local-part
+                break;
+            } else {
+                //<c> ::= any one of the 128 ASCII characters, but not any
+                //    <special> or <SP>
+                //<special> ::= "<" | ">" | "(" | ")" | "[" | "]" | "\" | "."
+                //    | "," | ";" | ":" | "@"  """ | the control
+                //    characters (ASCII codes 0 through 31 inclusive and
+                //    127)
+                //<SP> ::= the space character (ASCII code 32)
+                char c = address.charAt(pos);
+                if (c <= 31 || c >= 127 || c == ' ') {
+                    throw new MailAddressException("Invalid character in local-part (user account) at position " + (pos + 1) + " in '" + address + "'",address,pos+1);
+                }
+                for (int i = 0; i < SPECIAL.length; i++) {
+                    if (c == SPECIAL[i]) {
+                        throw new MailAddressException("Invalid character in local-part (user account) at position " + (pos + 1) + " in '" + address + "'",address,pos+1);
+                    }
+                }
+                resultSB.append(c);
+                pos++;
+                lastCharDot = false;
+            }
+        }
+        if (lastCharDot) {
+            throw new MailAddressException("local-part (user account) ended with a \".\", which is invalid in address '" + address + "'",address,pos);
+        }
+        lpSB.append(resultSB);
+        return pos;
+    }
+
+    private int parseNumber(StringBuffer dSB, String address, int pos) throws MailAddressException {
+        //<number> ::= <d> | <d> <number>
+
+        StringBuffer resultSB = new StringBuffer();
+        //We keep the position from the class level pos field
+        while (true) {
+            if (pos >= address.length()) {
+                break;
+            }
+            //<d> ::= any one of the ten digits 0 through 9
+            char d = address.charAt(pos);
+            if (d == '.') {
+                break;
+            }
+            if (d < '0' || d > '9') {
+                throw new MailAddressException("In domain, did not find a number in # address at position " + (pos + 1) + " in '" + address + "'",address,pos+1);
+            }
+            resultSB.append(d);
+            pos++;
+        }
+        dSB.append(resultSB);
+        return pos;
+    }
+
+    private int parseDomainLiteral(StringBuffer dSB, String address, int pos) throws MailAddressException {
+        //throw away all irrelevant '\' they're not necessary for escaping of '.' or digits, and are illegal as part of the domain-literal
+        while(address.indexOf("\\")>-1){
+             address= address.substring(0,address.indexOf("\\")) + address.substring(address.indexOf("\\")+1);
+        }
+        StringBuffer resultSB = new StringBuffer();
+        //we were passed the string with pos pointing the the [ char.
+        // take the first char ([), put it in the result buffer and increment pos
+        resultSB.append(address.charAt(pos));
+        pos++;
+
+        //<dotnum> ::= <snum> "." <snum> "." <snum> "." <snum>
+        for (int octet = 0; octet < 4; octet++) {
+            //<snum> ::= one, two, or three digits representing a decimal
+            //                      integer value in the range 0 through 255
+            //<d> ::= any one of the ten digits 0 through 9
+            StringBuffer snumSB = new StringBuffer();
+            for (int digits = 0; digits < 3; digits++) {
+                char d = address.charAt(pos);
+                if (d == '.') {
+                    break;
+                }
+                if (d == ']') {
+                    break;
+                }
+                if (d < '0' || d > '9') {
+                    throw new MailAddressException("Invalid number at position " + (pos + 1) + " in '" + address + "'",address,pos+1);
+                }
+                snumSB.append(d);
+                pos++;
+            }
+            if (snumSB.toString().length() == 0) {
+                throw new MailAddressException("Number not found at position " + (pos + 1) + " in '" + address + "'",address,pos+1);
+            }
+            try {
+                int snum = Integer.parseInt(snumSB.toString());
+                if (snum > 255) {
+                    throw new MailAddressException("Invalid number at position " + (pos + 1) + " in '" + address + "'",address,pos+1);
+                }
+            } catch (NumberFormatException nfe) {
+                throw new MailAddressException("Invalid number at position " + (pos + 1) + " in '" + address + "'",address,pos+1);
+            }
+            resultSB.append(snumSB.toString());
+            if (address.charAt(pos) == ']') {
+                if (octet < 3) {
+                    throw new MailAddressException("End of number reached too quickly at " + (pos + 1) + " in '" + address + "'",address,pos+1);
+                } 
+                break;
+            }
+            if (address.charAt(pos) == '.') {
+                resultSB.append('.');
+                pos++;
+            }
+        }
+        if (address.charAt(pos) != ']') {
+            throw new MailAddressException("Did not find closing bracket \"]\" in domain at position " + (pos + 1) + " in '" + address + "'",address,pos+1);
+        }
+        resultSB.append(']');
+        pos++;
+        dSB.append(resultSB);
+        return pos;
+    }
+
+    private int parseDomain(StringBuffer dSB, String address, int pos) throws MailAddressException {
+        StringBuffer resultSB = new StringBuffer();
+        //<name> ::= <a> <ldh-str> <let-dig>
+        //<ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>
+        //<let-dig> ::= <a> | <d>
+        //<let-dig-hyp> ::= <a> | <d> | "-"
+        //<a> ::= any one of the 52 alphabetic characters A through Z
+        //  in upper case and a through z in lower case
+        //<d> ::= any one of the ten digits 0 through 9
+
+        // basically, this is a series of letters, digits, and hyphens,
+        // but it can't start with a digit or hypthen
+        // and can't end with a hyphen
+
+        // in practice though, we should relax this as domain names can start
+        // with digits as well as letters.  So only check that doesn't start
+        // or end with hyphen.
+        while (true) {
+            if (pos >= address.length()) {
+                break;
+            }
+            char ch = address.charAt(pos);
+            if ((ch >= '0' && ch <= '9') ||
+                (ch >= 'a' && ch <= 'z') ||
+                (ch >= 'A' && ch <= 'Z') ||
+                (ch == '-')) {
+                resultSB.append(ch);
+                pos++;
+                continue;
+            }
+            if (ch == '.') {
+                break;
+            }
+            throw new MailAddressException("Invalid character at " + pos + " in '" + address + "'",address,pos);
+        }
+        String result = resultSB.toString();
+        if (result.startsWith("-") || result.endsWith("-")) {
+            throw new MailAddressException("Domain name cannot begin or end with a hyphen \"-\" at position " + (pos + 1) + " in '" + address + "'",address,pos+1);
+        }
+        dSB.append(result);
+        return pos;
+    }
+}

Added: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddressException.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddressException.java?rev=1221135&view=auto
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddressException.java (added)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddressException.java Tue Dec 20 08:20:43 2011
@@ -0,0 +1,49 @@
+/****************************************************************
+ * 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.protocols.smtp;
+
+public class MailAddressException extends Exception{
+
+    /**
+     * 
+     */
+    private static final long serialVersionUID = -2845113080526615146L;
+    private final String address;
+    private final int pos;
+
+   
+
+    public MailAddressException(String message, String address, int pos) {
+        super(message);
+        this.address = address;
+        this.pos = pos;
+    }
+    
+    public String getAddress() {
+        return address;
+    }
+    
+    public int getPos() {
+        return pos;
+    }
+
+
+}

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelope.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelope.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelope.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelope.java Tue Dec 20 08:20:43 2011
@@ -25,7 +25,6 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.List;
 
-import org.apache.mailet.MailAddress;
 
 /**
  * The MailEnvelope of a SMTP-Transaction

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelopeImpl.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelopeImpl.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelopeImpl.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelopeImpl.java Tue Dec 20 08:20:43 2011
@@ -26,8 +26,6 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.List;
 
-import org.apache.mailet.MailAddress;
-
 /**
  * MailEnvelope implementation which stores everything in memory
  * 

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java Tue Dec 20 08:20:43 2011
@@ -26,7 +26,6 @@ import org.apache.james.protocols.api.Re
 import org.apache.james.protocols.api.handler.LineHandler;
 import org.apache.james.protocols.smtp.SMTPConfiguration;
 import org.apache.james.protocols.smtp.SMTPSession;
-import org.apache.mailet.MailAddress;
 import org.slf4j.Logger;
 
 /**

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAuthRequiredToRelayRcptHook.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAuthRequiredToRelayRcptHook.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAuthRequiredToRelayRcptHook.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAuthRequiredToRelayRcptHook.java Tue Dec 20 08:20:43 2011
@@ -18,13 +18,13 @@
  ****************************************************************/
 package org.apache.james.protocols.smtp.core;
 
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.dsn.DSNStatus;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.RcptHook;
-import org.apache.mailet.MailAddress;
 
 /**
  * Handler which check for authenticated users

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java Tue Dec 20 08:20:43 2011
@@ -20,13 +20,13 @@ package org.apache.james.protocols.smtp.
 
 import java.util.Locale;
 
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.dsn.DSNStatus;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.RcptHook;
-import org.apache.mailet.MailAddress;
 
 /**
  * Handler which check if the authenticated user is the same as the one used as MAIL FROM

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AcceptRecipientIfRelayingIsAllowed.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AcceptRecipientIfRelayingIsAllowed.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AcceptRecipientIfRelayingIsAllowed.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AcceptRecipientIfRelayingIsAllowed.java Tue Dec 20 08:20:43 2011
@@ -18,11 +18,11 @@
  ****************************************************************/
 package org.apache.james.protocols.smtp.core;
 
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.RcptHook;
-import org.apache.mailet.MailAddress;
 
 /**
  * This hook will stop the hook chain if relaying is allowed 

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java Tue Dec 20 08:20:43 2011
@@ -31,13 +31,13 @@ import org.apache.james.protocols.api.ha
 import org.apache.james.protocols.api.handler.ExtensibleHandler;
 import org.apache.james.protocols.api.handler.LineHandler;
 import org.apache.james.protocols.api.handler.WiringException;
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.MailEnvelope;
 import org.apache.james.protocols.smtp.MailEnvelopeImpl;
 import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.dsn.DSNStatus;
-import org.apache.mailet.MailAddress;
 
 
 /**

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java Tue Dec 20 08:20:43 2011
@@ -31,6 +31,7 @@ import java.util.StringTokenizer;
 
 import org.apache.james.protocols.api.Request;
 import org.apache.james.protocols.api.Response;
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
@@ -38,7 +39,6 @@ import org.apache.james.protocols.smtp.d
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.MailHook;
 import org.apache.james.protocols.smtp.hook.MailParametersHook;
-import org.apache.mailet.MailAddress;
 
 /**
  * Handles MAIL command

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java Tue Dec 20 08:20:43 2011
@@ -18,11 +18,11 @@
  ****************************************************************/
 package org.apache.james.protocols.smtp.core;
 
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.RcptHook;
-import org.apache.mailet.MailAddress;
 
 /**
  * Handler which whitelist "postmaster" and "abuse" recipients.

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java Tue Dec 20 08:20:43 2011
@@ -28,13 +28,13 @@ import java.util.StringTokenizer;
 
 import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.CommandHandler;
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.dsn.DSNStatus;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.RcptHook;
-import org.apache.mailet.MailAddress;
 
 /**
  * Handles RCPT command
@@ -214,8 +214,7 @@ public class RcptCmdHandler extends Abst
         if (null != recipientAddress) {
             sb
                     .append(" [to:"
-                            + (recipientAddress).toInternetAddress()
-                                    .getAddress() + "]");
+                            + recipientAddress.toString() + "]");
         } else if (null != recipient) {
             sb.append(" [to:" + recipient + "]");
         }
@@ -223,8 +222,7 @@ public class RcptCmdHandler extends Abst
             sb
                     .append(" [from:"
                             + ((MailAddress) session.getState().get(
-                                    SMTPSession.SENDER)).toInternetAddress()
-                                    .getAddress() + "]");
+                                    SMTPSession.SENDER)).toString() + "]");
         }
         return sb.toString();
     }

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java Tue Dec 20 08:20:43 2011
@@ -28,8 +28,8 @@ import java.util.Locale;
 
 import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.LineHandler;
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPSession;
-import org.apache.mailet.MailAddress;
 
 public class ReceivedDataLineFilter implements DataLineFilter {
 

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java Tue Dec 20 08:20:43 2011
@@ -21,13 +21,13 @@ package org.apache.james.protocols.smtp.
 
 import java.util.Iterator;
 
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.dsn.DSNStatus;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.RcptHook;
-import org.apache.mailet.MailAddress;
 
 
 /**

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java Tue Dec 20 08:20:43 2011
@@ -22,13 +22,13 @@
 
 package org.apache.james.protocols.smtp.core.fastfail;
 
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.dsn.DSNStatus;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.RcptHook;
-import org.apache.mailet.MailAddress;
 
 
 /**

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java Tue Dec 20 08:20:43 2011
@@ -25,12 +25,12 @@ import java.util.Collection;
 import java.util.StringTokenizer;
 
 import org.apache.james.protocols.smtp.DNSService;
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.dsn.DSNStatus;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.RcptHook;
-import org.apache.mailet.MailAddress;
 
 /**
   * Connect handler for DNSRBL processing

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java Tue Dec 20 08:20:43 2011
@@ -22,13 +22,13 @@
 package org.apache.james.protocols.smtp.core.fastfail;
 
 
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.dsn.DSNStatus;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.RcptHook;
-import org.apache.mailet.MailAddress;
 
 public class MaxRcptHandler implements RcptHook {
 

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java Tue Dec 20 08:20:43 2011
@@ -23,6 +23,7 @@ import java.net.UnknownHostException;
 
 
 import org.apache.james.protocols.smtp.DNSService;
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.dsn.DSNStatus;
@@ -30,7 +31,6 @@ import org.apache.james.protocols.smtp.h
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.RcptHook;
-import org.apache.mailet.MailAddress;
 
 
 /**

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java Tue Dec 20 08:20:43 2011
@@ -25,11 +25,11 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.RcptHook;
-import org.apache.mailet.MailAddress;
 
 /**
  * This handler can be used for providing a spam trap. IPAddresses which send emails to the configured

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java Tue Dec 20 08:20:43 2011
@@ -24,13 +24,13 @@ package org.apache.james.protocols.smtp.
 
 import java.util.Collection;
 
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.dsn.DSNStatus;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.RcptHook;
-import org.apache.mailet.MailAddress;
 
 /**
  * 

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandler.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandler.java Tue Dec 20 08:20:43 2011
@@ -21,6 +21,7 @@ package org.apache.james.protocols.smtp.
 import java.util.Collection;
 
 import org.apache.james.protocols.smtp.DNSService;
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.TemporaryResolutionException;
@@ -28,7 +29,6 @@ import org.apache.james.protocols.smtp.d
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.MailHook;
-import org.apache.mailet.MailAddress;
 
 /**
  * Add MFDNSCheck feature to SMTPServer. This handler reject mail from domains which have not an an valid MX record.  

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/hook/MailHook.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/hook/MailHook.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/hook/MailHook.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/hook/MailHook.java Tue Dec 20 08:20:43 2011
@@ -23,8 +23,8 @@
 
 package org.apache.james.protocols.smtp.hook;
 
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPSession;
-import org.apache.mailet.MailAddress;
 
 /**
  * Implement this interfaces to hook in the MAIL Command

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/hook/RcptHook.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/hook/RcptHook.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/hook/RcptHook.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/hook/RcptHook.java Tue Dec 20 08:20:43 2011
@@ -18,8 +18,8 @@
  ****************************************************************/
 package org.apache.james.protocols.smtp.hook;
 
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPSession;
-import org.apache.mailet.MailAddress;
 
 /**
  * Implement this interfaces to hook in the MAIL Command

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/hook/SimpleHook.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/hook/SimpleHook.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/hook/SimpleHook.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/hook/SimpleHook.java Tue Dec 20 08:20:43 2011
@@ -19,9 +19,9 @@
 
 package org.apache.james.protocols.smtp.hook;
 
+import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.MailEnvelope;
 import org.apache.james.protocols.smtp.SMTPSession;
-import org.apache.mailet.MailAddress;
 
 
 /**

Modified: james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/BaseFakeDNSService.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/BaseFakeDNSService.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/BaseFakeDNSService.java (original)
+++ james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/BaseFakeDNSService.java Tue Dec 20 08:20:43 2011
@@ -21,11 +21,9 @@ package org.apache.james.protocols.smtp;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.Collection;
-import java.util.Iterator;
 
 import org.apache.james.protocols.smtp.DNSService;
 import org.apache.james.protocols.smtp.TemporaryResolutionException;
-import org.apache.mailet.HostAddress;
 
 public class BaseFakeDNSService implements DNSService{
 
@@ -59,9 +57,4 @@ public class BaseFakeDNSService implemen
 
     }
 
-    public Iterator<HostAddress> getSMTPHostAddresses(String domainName) throws TemporaryResolutionException {
-        throw new UnsupportedOperationException("Unimplemented in mock");
-
-    }
-
 }

Modified: james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandlerTest.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandlerTest.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandlerTest.java (original)
+++ james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandlerTest.java Tue Dec 20 08:20:43 2011
@@ -20,7 +20,6 @@
 
 package org.apache.james.protocols.smtp.core.fastfail;
 
-import java.net.Inet4Address;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.UnknownHostException;
@@ -30,16 +29,16 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import javax.mail.internet.ParseException;
 
 import junit.framework.TestCase;
 
 import org.apache.james.protocols.smtp.BaseFakeDNSService;
 import org.apache.james.protocols.smtp.BaseFakeSMTPSession;
 import org.apache.james.protocols.smtp.DNSService;
+import org.apache.james.protocols.smtp.MailAddress;
+import org.apache.james.protocols.smtp.MailAddressException;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.core.fastfail.DNSRBLHandler;
-import org.apache.mailet.MailAddress;
 
 public class DNSRBLHandlerTest extends TestCase {
 
@@ -154,7 +153,7 @@ public class DNSRBLHandlerTest extends T
     }
 
     // ip is blacklisted and has txt details
-    public void testBlackListedTextPresent() throws ParseException {
+    public void testBlackListedTextPresent() throws MailAddressException {
         DNSRBLHandler rbl = new DNSRBLHandler();
        
         setupMockedSMTPSession(new MailAddress("any@domain"));
@@ -169,7 +168,7 @@ public class DNSRBLHandlerTest extends T
     }
 
     // ip is blacklisted and has txt details but we don'T want to retrieve the txt record
-    public void testGetNoDetail() throws ParseException {
+    public void testGetNoDetail() throws MailAddressException {
         DNSRBLHandler rbl = new DNSRBLHandler();
         setupMockedSMTPSession(new MailAddress("any@domain"));
         rbl.setDNSService(mockedDnsServer);
@@ -182,7 +181,7 @@ public class DNSRBLHandlerTest extends T
     }
 
     // ip is allowed to relay
-    public void testRelayAllowed() throws ParseException {
+    public void testRelayAllowed() throws MailAddressException {
         DNSRBLHandler rbl = new DNSRBLHandler();
         setRelayingAllowed(true);
         setupMockedSMTPSession(new MailAddress("any@domain"));
@@ -197,7 +196,7 @@ public class DNSRBLHandlerTest extends T
     }
 
     // ip not on blacklist
-    public void testNotBlackListed() throws ParseException {
+    public void testNotBlackListed() throws MailAddressException {
         DNSRBLHandler rbl = new DNSRBLHandler();
 
         setRemoteIp("192.168.0.1");
@@ -213,7 +212,7 @@ public class DNSRBLHandlerTest extends T
     }
 
     // ip on blacklist without txt details
-    public void testBlackListedNoTxt() throws ParseException {
+    public void testBlackListedNoTxt() throws MailAddressException {
         DNSRBLHandler rbl = new DNSRBLHandler();
 
         setRemoteIp("127.0.0.3");
@@ -229,7 +228,7 @@ public class DNSRBLHandlerTest extends T
     }
 
     // ip on whitelist
-    public void testWhiteListed() throws ParseException {
+    public void testWhiteListed() throws MailAddressException {
         DNSRBLHandler rbl = new DNSRBLHandler();
 
         setRemoteIp("127.0.0.2");

Modified: james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandlerTest.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandlerTest.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandlerTest.java (original)
+++ james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandlerTest.java Tue Dec 20 08:20:43 2011
@@ -25,15 +25,15 @@ package org.apache.james.protocols.smtp.
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.mail.internet.ParseException;
 
 import junit.framework.TestCase;
 
 import org.apache.james.protocols.smtp.BaseFakeSMTPSession;
+import org.apache.james.protocols.smtp.MailAddress;
+import org.apache.james.protocols.smtp.MailAddressException;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.core.fastfail.MaxRcptHandler;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
-import org.apache.mailet.MailAddress;
 
 
 
@@ -59,7 +59,7 @@ public class MaxRcptHandlerTest extends 
         return session;
     }
     
-    public void testRejectMaxRcpt() throws ParseException {
+    public void testRejectMaxRcpt() throws MailAddressException {
         SMTPSession session = setupMockedSession(3);
         MaxRcptHandler handler = new MaxRcptHandler();
         
@@ -70,7 +70,7 @@ public class MaxRcptHandlerTest extends 
     }
   
     
-    public void testNotRejectMaxRcpt() throws ParseException {
+    public void testNotRejectMaxRcpt() throws MailAddressException {
         SMTPSession session = setupMockedSession(3);
         MaxRcptHandler handler = new MaxRcptHandler();    
 

Modified: james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java (original)
+++ james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java Tue Dec 20 08:20:43 2011
@@ -23,9 +23,9 @@ package org.apache.james.protocols.smtp.
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.mail.internet.ParseException;
 
 import org.apache.james.protocols.smtp.BaseFakeSMTPSession;
+import org.apache.james.protocols.smtp.MailAddressException;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 
@@ -34,7 +34,7 @@ import junit.framework.TestCase;
 public class MaxUnknownCmdHandlerTest extends TestCase{
 
     
-    public void testRejectAndClose() throws ParseException {
+    public void testRejectAndClose() throws MailAddressException {
         SMTPSession session = new BaseFakeSMTPSession() {
             private final HashMap<String,Object> state = new HashMap<String,Object>();
 

Modified: james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java (original)
+++ james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java Tue Dec 20 08:20:43 2011
@@ -26,17 +26,17 @@ import java.net.UnknownHostException;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.mail.internet.ParseException;
 
 import junit.framework.TestCase;
 
 import org.apache.james.protocols.smtp.BaseFakeDNSService;
 import org.apache.james.protocols.smtp.BaseFakeSMTPSession;
 import org.apache.james.protocols.smtp.DNSService;
+import org.apache.james.protocols.smtp.MailAddress;
+import org.apache.james.protocols.smtp.MailAddressException;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.core.fastfail.ResolvableEhloHeloHandler;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
-import org.apache.mailet.MailAddress;
 
 public class ResolvableEhloHeloHandlerTest extends TestCase {
 
@@ -91,7 +91,7 @@ public class ResolvableEhloHeloHandlerTe
         return dns;
     }
     
-    public void testRejectInvalidHelo() throws ParseException {
+    public void testRejectInvalidHelo() throws MailAddressException {
         MailAddress mailAddress = new MailAddress("test@localhost");
         SMTPSession session = setupMockSession(INVALID_HOST,false,false,null,mailAddress);
         ResolvableEhloHeloHandler handler = new ResolvableEhloHeloHandler();
@@ -105,7 +105,7 @@ public class ResolvableEhloHeloHandlerTe
     }
     
     
-    public void testNotRejectValidHelo() throws ParseException {
+    public void testNotRejectValidHelo() throws MailAddressException {
         MailAddress mailAddress = new MailAddress("test@localhost");
         SMTPSession session = setupMockSession(VALID_HOST,false,false,null,mailAddress);
         ResolvableEhloHeloHandler handler = new ResolvableEhloHeloHandler();
@@ -120,7 +120,7 @@ public class ResolvableEhloHeloHandlerTe
     }
    
     
-    public void testRejectInvalidHeloAuthUser() throws ParseException {
+    public void testRejectInvalidHeloAuthUser() throws MailAddressException {
         MailAddress mailAddress = new MailAddress("test@localhost");
         SMTPSession session = setupMockSession(INVALID_HOST,false,true,"valid@user",mailAddress);
         ResolvableEhloHeloHandler handler = new ResolvableEhloHeloHandler();
@@ -137,7 +137,7 @@ public class ResolvableEhloHeloHandlerTe
     
    
     
-    public void testRejectRelay() throws ParseException {
+    public void testRejectRelay() throws MailAddressException {
         MailAddress mailAddress = new MailAddress("test@localhost");
         SMTPSession session = setupMockSession(INVALID_HOST,true,false,null,mailAddress);
         ResolvableEhloHeloHandler handler = new ResolvableEhloHeloHandler();

Modified: james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandlerTest.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandlerTest.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandlerTest.java (original)
+++ james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandlerTest.java Tue Dec 20 08:20:43 2011
@@ -23,13 +23,12 @@ package org.apache.james.protocols.smtp.
 import java.net.InetSocketAddress;
 import java.util.ArrayList;
 
-import javax.mail.internet.ParseException;
-
 import org.apache.james.protocols.smtp.BaseFakeSMTPSession;
+import org.apache.james.protocols.smtp.MailAddress;
+import org.apache.james.protocols.smtp.MailAddressException;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.core.fastfail.SpamTrapHandler;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
-import org.apache.mailet.MailAddress;
 
 import junit.framework.TestCase;
 
@@ -51,7 +50,7 @@ public class SpamTrapHandlerTest extends
         };
     }
     
-    public void testSpamTrap() throws ParseException {
+    public void testSpamTrap() throws MailAddressException {
         String ip = "192.168.100.1";
         String ip2 = "192.168.100.2";
         long blockTime = 2000;

Modified: james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java?rev=1221135&r1=1221134&r2=1221135&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java (original)
+++ james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java Tue Dec 20 08:20:43 2011
@@ -24,17 +24,17 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.mail.internet.ParseException;
 
 import junit.framework.TestCase;
 
 import org.apache.james.protocols.smtp.BaseFakeDNSService;
 import org.apache.james.protocols.smtp.BaseFakeSMTPSession;
 import org.apache.james.protocols.smtp.DNSService;
+import org.apache.james.protocols.smtp.MailAddress;
+import org.apache.james.protocols.smtp.MailAddressException;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.core.fastfail.ValidSenderDomainHandler;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
-import org.apache.mailet.MailAddress;
 
 public class ValidSenderDomainHandlerTest extends TestCase {
     
@@ -83,7 +83,7 @@ public class ValidSenderDomainHandlerTes
         assertEquals("Not blocked cause its a nullsender",response,HookReturnCode.DECLINED);
     }
 
-    public void testInvalidSenderDomainReject() throws ParseException {
+    public void testInvalidSenderDomainReject() throws MailAddressException {
         ValidSenderDomainHandler handler = new ValidSenderDomainHandler();
         SMTPSession session = setupMockedSession(new MailAddress("invalid@invalid"));
         handler.setDNSService(setupDNSServer());



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