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