http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 20ddced..a5f045b 100644 --- a/pom.xml +++ b/pom.xml @@ -525,6 +525,7 @@ <modules> <module>backends-common</module> + <module>core</module> <module>mailbox</module> <module>mailet</module> <module>mdn</module> @@ -945,6 +946,11 @@ </dependency> <dependency> <groupId>${project.groupId}</groupId> + <artifactId>james-core</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>${project.groupId}</groupId> <artifactId>james-mdn</artifactId> <version>${project.version}</version> </dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/lmtp/src/main/java/org/apache/james/protocols/lmtp/core/DataLineMessageHookHandler.java ---------------------------------------------------------------------- diff --git a/protocols/lmtp/src/main/java/org/apache/james/protocols/lmtp/core/DataLineMessageHookHandler.java b/protocols/lmtp/src/main/java/org/apache/james/protocols/lmtp/core/DataLineMessageHookHandler.java index 5df57f9..51251de 100644 --- a/protocols/lmtp/src/main/java/org/apache/james/protocols/lmtp/core/DataLineMessageHookHandler.java +++ b/protocols/lmtp/src/main/java/org/apache/james/protocols/lmtp/core/DataLineMessageHookHandler.java @@ -23,11 +23,11 @@ import java.util.Collection; import java.util.Iterator; import java.util.List; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.api.Response; import org.apache.james.protocols.api.handler.WiringException; import org.apache.james.protocols.lmtp.LMTPMultiResponse; 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; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/lmtp/src/main/java/org/apache/james/protocols/lmtp/hook/DeliverToRecipientHook.java ---------------------------------------------------------------------- diff --git a/protocols/lmtp/src/main/java/org/apache/james/protocols/lmtp/hook/DeliverToRecipientHook.java b/protocols/lmtp/src/main/java/org/apache/james/protocols/lmtp/hook/DeliverToRecipientHook.java index abfde07..7053cf8 100644 --- a/protocols/lmtp/src/main/java/org/apache/james/protocols/lmtp/hook/DeliverToRecipientHook.java +++ b/protocols/lmtp/src/main/java/org/apache/james/protocols/lmtp/hook/DeliverToRecipientHook.java @@ -19,7 +19,7 @@ package org.apache.james.protocols.lmtp.hook; -import org.apache.james.protocols.smtp.MailAddress; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.smtp.MailEnvelope; import org.apache.james.protocols.smtp.SMTPSession; import org.apache.james.protocols.smtp.hook.Hook; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java ---------------------------------------------------------------------- diff --git a/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java b/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java index dee82d3..b2978c2 100644 --- a/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java +++ b/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java @@ -34,6 +34,7 @@ import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.net.smtp.RelayPath; import org.apache.commons.net.smtp.SMTPClient; import org.apache.commons.net.smtp.SMTPReply; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.api.Protocol; import org.apache.james.protocols.api.ProtocolServer; import org.apache.james.protocols.api.handler.ProtocolHandler; @@ -41,7 +42,6 @@ import org.apache.james.protocols.api.handler.WiringException; import org.apache.james.protocols.api.utils.ProtocolServerUtils; import org.apache.james.protocols.lmtp.hook.DeliverToRecipientHook; import org.apache.james.protocols.smtp.AbstractSMTPServerTest; -import org.apache.james.protocols.smtp.MailAddress; import org.apache.james.protocols.smtp.MailEnvelope; import org.apache.james.protocols.smtp.SMTPProtocol; import org.apache.james.protocols.smtp.SMTPSession; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/pom.xml ---------------------------------------------------------------------- diff --git a/protocols/pom.xml b/protocols/pom.xml index 7110834..0f58e8b 100644 --- a/protocols/pom.xml +++ b/protocols/pom.xml @@ -83,6 +83,11 @@ </dependency> <dependency> <groupId>org.apache.james</groupId> + <artifactId>james-core</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.james</groupId> <artifactId>james-server-data-api</artifactId> <version>${project.version}</version> </dependency> http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/pom.xml ---------------------------------------------------------------------- diff --git a/protocols/smtp/pom.xml b/protocols/smtp/pom.xml index 497ff47..14af535 100644 --- a/protocols/smtp/pom.xml +++ b/protocols/smtp/pom.xml @@ -35,6 +35,10 @@ <dependencies> <dependency> + <groupId>org.apache.james</groupId> + <artifactId>james-core</artifactId> + </dependency> + <dependency> <groupId>${project.groupId}</groupId> <artifactId>protocols-api</artifactId> </dependency> @@ -59,7 +63,6 @@ <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> - <scope>test</scope> </dependency> <dependency> <groupId>commons-codec</groupId> http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddress.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddress.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddress.java index 8cdd964..d420602 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddress.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddress.java @@ -17,10 +17,10 @@ * under the License. * ****************************************************************/ - package org.apache.james.protocols.smtp; -import java.util.Locale; +import javax.mail.internet.AddressException; +import javax.mail.internet.InternetAddress; /** * A representation of an email address. @@ -57,465 +57,24 @@ import java.util.Locale; * 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> + * + * @Deprecated Use james-core {@link org.apache.james.core.MailAddress} instead. */ -public class MailAddress { - - private final static char[] SPECIAL = - {'<', '>', '(', ')', '[', ']', '\\', '.', ',', ';', ':', '@', '\"'}; - - private String localPart = null; - private String domain = null; - - private static final MailAddress NULL_SENDER = new MailAddress() { - - @Override - public String getDomain() { - return ""; - } - - @Override - public String getLocalPart() { - return ""; - } - - @Override - public String toString() { - return ""; - } - - @Override - public boolean isNullSender() { - return true; - } - - }; - - /** - * 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; - } - - public static MailAddress nullSender() { - return NULL_SENDER; - } - - private MailAddress() { - - } - /** - * 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); +@Deprecated +public class MailAddress extends org.apache.james.core.MailAddress { + public MailAddress(String address) throws AddressException { + super(address); } - - - /** - * 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 (char aChar : SPECIAL) { - if (c == aChar) { - 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; + public MailAddress(String localPart, String domain) throws AddressException { + super(localPart, domain); } - 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.contains("\\")){ - 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; + public MailAddress(InternetAddress address) throws AddressException { + super(address); } - 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; - } - - /** - * Return <code>true</code> if the {@link MailAddress} should represent a null sender (<>) - * - * @return nullsender - */ - public boolean isNullSender() { - return false; + public MailAddress(org.apache.james.core.MailAddress address) throws AddressException { + super(address.asString()); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddressException.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddressException.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddressException.java index e3a3b29..dc94811 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddressException.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddressException.java @@ -17,20 +17,17 @@ * under the License. * ****************************************************************/ - package org.apache.james.protocols.smtp; +/** + * @Deprecated see {@link org.apache.james.protocols.smtp.MailAddress} for more details. + */ +@Deprecated 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; @@ -45,5 +42,4 @@ public class MailAddressException extends Exception{ return pos; } - } http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelope.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelope.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelope.java index b463ed1..f85d861 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelope.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelope.java @@ -24,6 +24,8 @@ import java.io.InputStream; import java.io.OutputStream; import java.util.List; +import org.apache.james.core.MailAddress; + /** * The MailEnvelope of a SMTP-Transaction * http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelopeImpl.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelopeImpl.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelopeImpl.java index a3a0342..c30d81e 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelopeImpl.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelopeImpl.java @@ -26,6 +26,8 @@ import java.io.InputStream; import java.io.OutputStream; import java.util.List; +import org.apache.james.core.MailAddress; + /** * MailEnvelope implementation which stores everything in memory * http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java index c5fad00..570075b 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java @@ -20,6 +20,7 @@ package org.apache.james.protocols.smtp; import java.util.Collection; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.api.ProtocolSessionImpl; import org.apache.james.protocols.api.ProtocolTransport; import org.apache.james.protocols.api.Response; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAuthRequiredToRelayRcptHook.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAuthRequiredToRelayRcptHook.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAuthRequiredToRelayRcptHook.java index 1ea59ec..57dde32 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAuthRequiredToRelayRcptHook.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAuthRequiredToRelayRcptHook.java @@ -18,7 +18,7 @@ ****************************************************************/ package org.apache.james.protocols.smtp.core; -import org.apache.james.protocols.smtp.MailAddress; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.smtp.SMTPRetCode; import org.apache.james.protocols.smtp.SMTPSession; import org.apache.james.protocols.smtp.dsn.DSNStatus; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java index f625f2b..baa390f 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java @@ -20,8 +20,8 @@ package org.apache.james.protocols.smtp.core; import java.util.Locale; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.api.ProtocolSession; -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; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AcceptRecipientIfRelayingIsAllowed.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AcceptRecipientIfRelayingIsAllowed.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AcceptRecipientIfRelayingIsAllowed.java index 373a133..70289bf 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AcceptRecipientIfRelayingIsAllowed.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AcceptRecipientIfRelayingIsAllowed.java @@ -20,7 +20,7 @@ package org.apache.james.protocols.smtp.core; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; -import org.apache.james.protocols.smtp.MailAddress; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.smtp.SMTPSession; import org.apache.james.protocols.smtp.hook.HookResult; import org.apache.james.protocols.smtp.hook.RcptHook; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java index d20c1d0..485cb21 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java @@ -30,6 +30,7 @@ import javax.inject.Inject; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; +import org.apache.james.core.MailAddress; import org.apache.james.metrics.api.MetricFactory; import org.apache.james.metrics.api.TimeMetric; import org.apache.james.protocols.api.ProtocolSession; @@ -39,7 +40,6 @@ import org.apache.james.protocols.api.handler.CommandHandler; 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; @@ -49,7 +49,6 @@ import org.apache.james.protocols.smtp.dsn.DSNStatus; import org.apache.james.util.MDCBuilder; import com.google.common.base.Throwables; - import com.google.common.collect.ImmutableSet; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java index a47726f..4d3cb54 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java @@ -30,11 +30,11 @@ import javax.inject.Inject; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; +import org.apache.james.core.MailAddress; import org.apache.james.metrics.api.MetricFactory; import org.apache.james.protocols.api.ProtocolSession.State; 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; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java index 6c9f54e..dcc9151 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java @@ -20,7 +20,7 @@ package org.apache.james.protocols.smtp.core; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; -import org.apache.james.protocols.smtp.MailAddress; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.smtp.SMTPSession; import org.apache.james.protocols.smtp.hook.HookResult; import org.apache.james.protocols.smtp.hook.RcptHook; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java index 719cabc..7e00dc8 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java @@ -28,11 +28,11 @@ import javax.inject.Inject; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; +import org.apache.james.core.MailAddress; import org.apache.james.metrics.api.MetricFactory; import org.apache.james.protocols.api.ProtocolSession.State; 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; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java index af4cac2..6960d6d 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java @@ -28,8 +28,8 @@ import java.util.Locale; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.api.ProtocolSession.State; -import org.apache.james.protocols.smtp.MailAddress; import org.apache.james.protocols.smtp.SMTPSession; /** http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java index 2fe36b0..c69b5f2 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java @@ -21,7 +21,7 @@ package org.apache.james.protocols.smtp.core.fastfail; import java.util.Iterator; -import org.apache.james.protocols.smtp.MailAddress; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.smtp.SMTPRetCode; import org.apache.james.protocols.smtp.SMTPSession; import org.apache.james.protocols.smtp.dsn.DSNStatus; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java index 8a148ba..54233ec 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java @@ -17,12 +17,9 @@ * under the License. * ****************************************************************/ - - - package org.apache.james.protocols.smtp.core.fastfail; -import org.apache.james.protocols.smtp.MailAddress; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.smtp.SMTPRetCode; import org.apache.james.protocols.smtp.SMTPSession; import org.apache.james.protocols.smtp.dsn.DSNStatus; @@ -32,7 +29,6 @@ import org.apache.james.protocols.smtp.hook.RcptHook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - /** * Handler which want todo an recipient check should extend this * http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java index 312708e..bd2b65f 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java @@ -26,8 +26,8 @@ import java.util.StringTokenizer; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.api.ProtocolSession.State; -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; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java index 43c4b5b..de38ac1 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java @@ -24,7 +24,7 @@ package org.apache.james.protocols.smtp.core.fastfail; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; -import org.apache.james.protocols.smtp.MailAddress; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.smtp.SMTPRetCode; import org.apache.james.protocols.smtp.SMTPSession; import org.apache.james.protocols.smtp.dsn.DSNStatus; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java index b3a47eb..5450773 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java @@ -22,11 +22,10 @@ package org.apache.james.protocols.smtp.core.fastfail; import java.net.InetAddress; import java.net.UnknownHostException; - import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.api.ProtocolSession.State; -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; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java index 73df529..4b77129 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java @@ -28,7 +28,7 @@ import java.util.Map; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; -import org.apache.james.protocols.smtp.MailAddress; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.smtp.SMTPSession; import org.apache.james.protocols.smtp.hook.HookResult; import org.apache.james.protocols.smtp.hook.RcptHook; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java index 69c823e..8424f48 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java @@ -17,17 +17,14 @@ * under the License. * ****************************************************************/ - - - package org.apache.james.protocols.smtp.core.fastfail; import java.util.Collection; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.api.ProtocolSession.State; -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; @@ -38,7 +35,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * * This handler can be used to just ignore duplicated recipients. */ public class SupressDuplicateRcptHandler implements RcptHook { http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandler.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandler.java index 1118f3f..c1341bb 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandler.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandler.java @@ -18,7 +18,7 @@ ****************************************************************/ package org.apache.james.protocols.smtp.core.fastfail; -import org.apache.james.protocols.smtp.MailAddress; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.smtp.SMTPRetCode; import org.apache.james.protocols.smtp.SMTPSession; import org.apache.james.protocols.smtp.dsn.DSNStatus; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/MailHook.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/MailHook.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/MailHook.java index 8548ef0..a0feafa 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/MailHook.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/MailHook.java @@ -17,13 +17,9 @@ * under the License. * ****************************************************************/ - - - - package org.apache.james.protocols.smtp.hook; -import org.apache.james.protocols.smtp.MailAddress; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.smtp.SMTPSession; /** http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/RcptHook.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/RcptHook.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/RcptHook.java index 8ab2b2f..bbc65b1 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/RcptHook.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/RcptHook.java @@ -18,7 +18,7 @@ ****************************************************************/ package org.apache.james.protocols.smtp.hook; -import org.apache.james.protocols.smtp.MailAddress; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.smtp.SMTPSession; /** http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/SimpleHook.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/SimpleHook.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/SimpleHook.java index ffc3bc6..fd43d40 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/SimpleHook.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/SimpleHook.java @@ -19,9 +19,9 @@ package org.apache.james.protocols.smtp.hook; -import org.apache.commons.configuration.Configuration; -import org.apache.commons.configuration.ConfigurationException; -import org.apache.james.protocols.smtp.MailAddress; +import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.smtp.MailEnvelope; import org.apache.james.protocols.smtp.SMTPSession; @@ -34,16 +34,16 @@ import org.apache.james.protocols.smtp.SMTPSession; */ public class SimpleHook implements HeloHook, MailHook, RcptHook, MessageHook { - @Override - public void init(Configuration config) throws ConfigurationException { - - } - - @Override - public void destroy() { - - } - + @Override + public void init(Configuration config) throws ConfigurationException { + + } + + @Override + public void destroy() { + + } + /** * Return {@link HookResult} with {@link HookReturnCode#OK} */ http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java index bae1991..e92676b 100644 --- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java +++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java @@ -35,6 +35,7 @@ import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.net.smtp.SMTPClient; import org.apache.commons.net.smtp.SMTPReply; +import org.apache.james.core.MailAddress; import org.apache.james.metrics.api.NoopMetricFactory; import org.apache.james.protocols.api.Protocol; import org.apache.james.protocols.api.ProtocolServer; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandlerTest.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandlerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandlerTest.java index fb798e4..8496bee 100644 --- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandlerTest.java +++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandlerTest.java @@ -31,9 +31,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.api.ProtocolSession.State; -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.utils.BaseFakeSMTPSession; import org.junit.Before; @@ -172,7 +171,7 @@ public class DNSRBLHandlerTest { // ip is blacklisted and has txt details @Test - public void testBlackListedTextPresent() throws MailAddressException { + public void testBlackListedTextPresent() throws Exception { DNSRBLHandler rbl = createHandler(); setupMockedSMTPSession(new MailAddress("any@domain")); @@ -187,7 +186,7 @@ public class DNSRBLHandlerTest { // ip is blacklisted and has txt details but we don'T want to retrieve the txt record @Test - public void testGetNoDetail() throws MailAddressException { + public void testGetNoDetail() throws Exception { DNSRBLHandler rbl = createHandler(); setupMockedSMTPSession(new MailAddress("any@domain")); @@ -200,7 +199,7 @@ public class DNSRBLHandlerTest { // ip is allowed to relay @Test - public void testRelayAllowed() throws MailAddressException { + public void testRelayAllowed() throws Exception { DNSRBLHandler rbl = createHandler(); setRelayingAllowed(true); setupMockedSMTPSession(new MailAddress("any@domain")); @@ -214,7 +213,7 @@ public class DNSRBLHandlerTest { // ip not on blacklist @Test - public void testNotBlackListed() throws MailAddressException { + public void testNotBlackListed() throws Exception { DNSRBLHandler rbl = createHandler(); setRemoteIp("192.168.0.1"); @@ -229,7 +228,7 @@ public class DNSRBLHandlerTest { // ip on blacklist without txt details @Test - public void testBlackListedNoTxt() throws MailAddressException { + public void testBlackListedNoTxt() throws Exception { DNSRBLHandler rbl = createHandler(); setRemoteIp("127.0.0.3"); @@ -244,7 +243,7 @@ public class DNSRBLHandlerTest { // ip on whitelist @Test - public void testWhiteListed() throws MailAddressException { + public void testWhiteListed() throws Exception { DNSRBLHandler rbl = createHandler(); setRemoteIp("127.0.0.2"); http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandlerTest.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandlerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandlerTest.java index 345cf09..b715049 100644 --- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandlerTest.java +++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandlerTest.java @@ -24,8 +24,7 @@ import static org.junit.Assert.assertEquals; import java.util.HashMap; import java.util.Map; -import org.apache.james.protocols.smtp.MailAddress; -import org.apache.james.protocols.smtp.MailAddressException; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.smtp.SMTPSession; import org.apache.james.protocols.smtp.hook.HookReturnCode; import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession; @@ -53,7 +52,7 @@ public class MaxRcptHandlerTest { } @Test - public void testRejectMaxRcpt() throws MailAddressException { + public void testRejectMaxRcpt() throws Exception { SMTPSession session = setupMockedSession(3); MaxRcptHandler handler = new MaxRcptHandler(); @@ -65,7 +64,7 @@ public class MaxRcptHandlerTest { @Test - public void testNotRejectMaxRcpt() throws MailAddressException { + public void testNotRejectMaxRcpt() throws Exception { SMTPSession session = setupMockedSession(3); MaxRcptHandler handler = new MaxRcptHandler(); http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java index 70606f9..9f5f68c 100644 --- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java +++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java @@ -25,7 +25,6 @@ import static org.junit.Assert.assertEquals; import java.util.HashMap; import java.util.Map; -import org.apache.james.protocols.smtp.MailAddressException; import org.apache.james.protocols.smtp.SMTPSession; import org.apache.james.protocols.smtp.hook.HookReturnCode; import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession; @@ -35,7 +34,7 @@ public class MaxUnknownCmdHandlerTest { @Test - public void testRejectAndClose() throws MailAddressException { + public void testRejectAndClose() throws Exception { SMTPSession session = new BaseFakeSMTPSession() { private final HashMap<String,Object> map = new HashMap<>(); http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java index ec7ea8a..e5cee47 100644 --- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java +++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java @@ -28,9 +28,8 @@ import java.net.UnknownHostException; import java.util.HashMap; import java.util.Map; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.api.ProtocolSession.State; -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.hook.HookReturnCode; import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession; @@ -120,7 +119,7 @@ public class ResolvableEhloHeloHandlerTest { } @Test - public void testRejectInvalidHelo() throws MailAddressException { + public void testRejectInvalidHelo() throws Exception { MailAddress mailAddress = new MailAddress("test@localhost"); SMTPSession session = setupMockSession(INVALID_HOST,false,false,null,mailAddress); ResolvableEhloHeloHandler handler = createHandler(); @@ -133,7 +132,7 @@ public class ResolvableEhloHeloHandlerTest { } @Test - public void testNotRejectValidHelo() throws MailAddressException { + public void testNotRejectValidHelo() throws Exception { MailAddress mailAddress = new MailAddress("test@localhost"); SMTPSession session = setupMockSession(VALID_HOST,false,false,null,mailAddress); ResolvableEhloHeloHandler handler = createHandler(); @@ -147,7 +146,7 @@ public class ResolvableEhloHeloHandlerTest { } @Test - public void testRejectInvalidHeloAuthUser() throws MailAddressException { + public void testRejectInvalidHeloAuthUser() throws Exception { MailAddress mailAddress = new MailAddress("test@localhost"); SMTPSession session = setupMockSession(INVALID_HOST,false,true,"valid@user",mailAddress); ResolvableEhloHeloHandler handler = createHandler(); @@ -163,7 +162,7 @@ public class ResolvableEhloHeloHandlerTest { @Test - public void testRejectRelay() throws MailAddressException { + public void testRejectRelay() throws Exception { MailAddress mailAddress = new MailAddress("test@localhost"); SMTPSession session = setupMockSession(INVALID_HOST,true,false,null,mailAddress); ResolvableEhloHeloHandler handler = createHandler(); http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandlerTest.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandlerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandlerTest.java index c12df5a..8eff79e 100644 --- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandlerTest.java +++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandlerTest.java @@ -17,7 +17,6 @@ * under the License. * ****************************************************************/ - package org.apache.james.protocols.smtp.core.fastfail; import static org.junit.Assert.assertEquals; @@ -26,8 +25,7 @@ import static org.junit.Assert.fail; import java.net.InetSocketAddress; import java.util.ArrayList; -import org.apache.james.protocols.smtp.MailAddress; -import org.apache.james.protocols.smtp.MailAddressException; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.smtp.SMTPSession; import org.apache.james.protocols.smtp.hook.HookReturnCode; import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession; @@ -52,7 +50,7 @@ public class SpamTrapHandlerTest { } @Test - public void testSpamTrap() throws MailAddressException { + public void testSpamTrap() throws Exception { String ip = "192.168.100.1"; String ip2 = "192.168.100.2"; long blockTime = 2000; http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java index 9dee55c..794cc5b 100644 --- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java +++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java @@ -26,9 +26,8 @@ import java.util.Map; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; +import org.apache.james.core.MailAddress; import org.apache.james.protocols.api.ProtocolSession.State; -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.hook.HookReturnCode; import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession; @@ -116,7 +115,7 @@ public class ValidSenderDomainHandlerTest { } @Test - public void testInvalidSenderDomainReject() throws MailAddressException { + public void testInvalidSenderDomainReject() throws Exception { ValidSenderDomainHandler handler = createHandler(); SMTPSession session = setupMockedSession(new MailAddress("invalid@invalid")); int response = handler.doMail(session,(MailAddress) session.getAttachment(SMTPSession.SENDER, State.Transaction)).getResult(); http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/server/container/core/src/main/java/org/apache/james/core/InternetHeadersInputStream.java ---------------------------------------------------------------------- diff --git a/server/container/core/src/main/java/org/apache/james/core/InternetHeadersInputStream.java b/server/container/core/src/main/java/org/apache/james/core/InternetHeadersInputStream.java deleted file mode 100644 index a94dd5e..0000000 --- a/server/container/core/src/main/java/org/apache/james/core/InternetHeadersInputStream.java +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************** - * 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.core; - -import java.io.IOException; -import java.io.InputStream; -import java.io.UnsupportedEncodingException; -import java.util.Enumeration; - -import javax.mail.internet.InternetHeaders; - -/** - * Provide an {@link InputStream} over an {@link InternetHeaders} instance. When - * the end of {@link InternetHeaders} are reached a {@link #LINE_SEPERATOR} is - * append - */ -public class InternetHeadersInputStream extends InputStream { - - private final static String LINE_SEPERATOR = "\r\n"; - - private final Enumeration<String> headerLines; - private byte[] currLine; - private int pos = 0; - - @SuppressWarnings("unchecked") - public InternetHeadersInputStream(InternetHeaders headers) { - this(headers.getAllHeaderLines()); - } - - public InternetHeadersInputStream(Enumeration<String> headerLines) { - this.headerLines = headerLines; - } - - @Override - public int read() throws IOException { - if (currLine == null || pos == currLine.length) { - if (!readNextLine()) { - return -1; - } - } - return currLine[pos++]; - } - - /** - * Load the next header line if possible - * - * @return true if there was an headerline which could be read - * - * @throws IOException - */ - private boolean readNextLine() throws IOException { - if (headerLines.hasMoreElements()) { - try { - pos = 0; - String line = (headerLines.nextElement() + LINE_SEPERATOR); - // Add seperator to show that headers are complete - if (!headerLines.hasMoreElements()) { - line += LINE_SEPERATOR; - } - currLine = line.getBytes("US-ASCII"); - return true; - } catch (UnsupportedEncodingException e) { - // should never happen - throw new IOException("US-ASCII encoding not supported by this platform ?!"); - } - } else { - return false; - } - } - - @Override - public void close() throws IOException { - currLine = null; - } - -} http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/server/container/core/src/main/java/org/apache/james/core/JamesServerResourceLoader.java ---------------------------------------------------------------------- diff --git a/server/container/core/src/main/java/org/apache/james/core/JamesServerResourceLoader.java b/server/container/core/src/main/java/org/apache/james/core/JamesServerResourceLoader.java deleted file mode 100644 index 4b3e5cb..0000000 --- a/server/container/core/src/main/java/org/apache/james/core/JamesServerResourceLoader.java +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************** - * 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.core; - -import org.apache.james.filesystem.api.JamesDirectoriesProvider; - -public class JamesServerResourceLoader implements JamesDirectoriesProvider { - - private final String rootDirectory; - - public JamesServerResourceLoader(String rootDirectory) { - this.rootDirectory = rootDirectory; - } - - /** - * @see org.apache.james.container.spring.resource.JamesResourceLoader#getAbsoluteDirectory() - */ - public String getAbsoluteDirectory() { - return "/"; - } - - /** - * @see - * org.apache.james.container.spring.resource.JamesResourceLoader#getConfDirectory() - */ - public String getConfDirectory() { - return getRootDirectory() + "/conf/"; - } - - /** - * @see - * org.apache.james.container.spring.resource.JamesResourceLoader#getVarDirectory() - */ - public String getVarDirectory() { - return getRootDirectory() + "/var/"; - } - - /** - * Return the directory where the external jar libraries must be placed - * by the administrator. The jars may contain mailets, jdbc drivers,... - * - * @return externalLibraryDirectory - */ - public String getExternalLibraryDirectory() { - return getRootDirectory() + "/conf/lib/"; - } - - /** - * @see - * org.apache.james.container.spring.resource.JamesResourceLoader#getRootDirectory() - */ - public String getRootDirectory() { - return rootDirectory; - } - -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/james-project/blob/936746b9/server/container/core/src/main/java/org/apache/james/core/MailHeaders.java ---------------------------------------------------------------------- diff --git a/server/container/core/src/main/java/org/apache/james/core/MailHeaders.java b/server/container/core/src/main/java/org/apache/james/core/MailHeaders.java deleted file mode 100644 index 9603bc2..0000000 --- a/server/container/core/src/main/java/org/apache/james/core/MailHeaders.java +++ /dev/null @@ -1,187 +0,0 @@ -/**************************************************************** - * 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.core; - -import java.io.ByteArrayOutputStream; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.Serializable; -import java.util.Enumeration; - -import javax.mail.MessagingException; -import javax.mail.internet.InternetHeaders; - -import org.apache.mailet.base.RFC2822Headers; - -/** - * This interface defines a container for mail headers. Each header must use - * MIME format: - * - * <pre> - * name: value - * </pre> - */ -public class MailHeaders extends InternetHeaders implements Serializable, Cloneable { - - private static final long serialVersionUID = 238748126601L; - private boolean modified = false; - private long size = -1; - - /** - * No argument constructor - * - * @throws MessagingException - * if the super class cannot be properly instantiated - */ - public MailHeaders() { - super(); - } - - /** - * Constructor that takes an InputStream containing the contents of the set - * of mail headers. - * - * @param in - * the InputStream containing the header data - * - * @throws MessagingException - * if the super class cannot be properly instantiated based on - * the stream - */ - public MailHeaders(InputStream in) throws MessagingException { - super(); - load(in); - } - - /** - * Write the headers to an output stream - * - * @param out - * the OutputStream to which to write the headers - */ - @SuppressWarnings("unchecked") - public void writeTo(OutputStream out) throws MessagingException { - MimeMessageUtil.writeHeadersTo(getAllHeaderLines(), out); - } - - /** - * Generate a representation of the headers as a series of bytes. - * - * @return the byte array containing the headers - */ - public byte[] toByteArray() throws MessagingException { - ByteArrayOutputStream headersBytes = new ByteArrayOutputStream(); - writeTo(headersBytes); - return headersBytes.toByteArray(); - } - - /** - * Check if a particular header is present. - * - * @return true if the header is present, false otherwise - */ - public boolean isSet(String name) { - String[] value = super.getHeader(name); - return (value != null && value.length != 0); - } - - /** - * If the new header is a Return-Path we get sure that we add it to the top - * Javamail, at least until 1.4.0 does the wrong thing if it loaded a stream - * with a return-path in the middle. - * - * @see javax.mail.internet.InternetHeaders#addHeader(java.lang.String, - * java.lang.String) - */ - @SuppressWarnings("unchecked") - public synchronized void addHeader(String arg0, String arg1) { - if (RFC2822Headers.RETURN_PATH.equalsIgnoreCase(arg0)) { - headers.add(0, new InternetHeader(arg0, arg1)); - } else { - super.addHeader(arg0, arg1); - } - modified(); - } - - /** - * If the new header is a Return-Path we get sure that we add it to the top - * Javamail, at least until 1.4.0 does the wrong thing if it loaded a stream - * with a return-path in the middle. - * - * @see javax.mail.internet.InternetHeaders#setHeader(java.lang.String, - * java.lang.String) - */ - public synchronized void setHeader(String arg0, String arg1) { - if (RFC2822Headers.RETURN_PATH.equalsIgnoreCase(arg0)) { - super.removeHeader(arg0); - } - super.setHeader(arg0, arg1); - - modified(); - } - - @Override - public synchronized void removeHeader(String name) { - super.removeHeader(name); - modified(); - } - - @Override - public synchronized void addHeaderLine(String line) { - super.addHeaderLine(line); - modified(); - } - - private void modified() { - modified = true; - size = -1; - } - - /** - * Check if all REQUIRED headers fields as specified in RFC 822 are present. - * - * @return true if the headers are present, false otherwise - */ - public boolean isValid() { - return (isSet(RFC2822Headers.DATE) && isSet(RFC2822Headers.TO) && isSet(RFC2822Headers.FROM)); - } - - /** - * Return the size of the headers - * - * @return size - */ - @SuppressWarnings("unchecked") - public synchronized long getSize() { - if (size == -1 || modified) { - long c = 0; - Enumeration<String> headerLines = getAllHeaderLines(); - while (headerLines.hasMoreElements()) { - c += headerLines.nextElement().length(); - // CRLF - c += 2; - } - size = c; - modified = false; - } - return size; - - } -} --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
