Return-Path: X-Original-To: apmail-james-mime4j-dev-archive@minotaur.apache.org Delivered-To: apmail-james-mime4j-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 85FBDEE2D for ; Wed, 2 Jan 2013 15:38:44 +0000 (UTC) Received: (qmail 27578 invoked by uid 500); 2 Jan 2013 15:38:44 -0000 Delivered-To: apmail-james-mime4j-dev-archive@james.apache.org Received: (qmail 27506 invoked by uid 500); 2 Jan 2013 15:38:43 -0000 Mailing-List: contact mime4j-dev-help@james.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: mime4j-dev@james.apache.org Delivered-To: mailing list mime4j-dev@james.apache.org Received: (qmail 27498 invoked by uid 99); 2 Jan 2013 15:38:43 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 02 Jan 2013 15:38:43 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 02 Jan 2013 15:38:40 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 3151C23889D7; Wed, 2 Jan 2013 15:38:20 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1427827 - in /james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message: BasicBodyFactory.java BasicTextBody.java StringBody.java Date: Wed, 02 Jan 2013 15:38:20 -0000 To: mime4j-dev@james.apache.org From: olegk@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130102153820.3151C23889D7@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: olegk Date: Wed Jan 2 15:38:19 2013 New Revision: 1427827 URL: http://svn.apache.org/viewvc?rev=1427827&view=rev Log: MIME4J-218: made it easier to map a charset name to Charset implementation (added BasicBodyFactory#resolveCharset method) Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/BasicBodyFactory.java james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/BasicTextBody.java james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/StringBody.java Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/BasicBodyFactory.java URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/BasicBodyFactory.java?rev=1427827&r1=1427826&r2=1427827&view=diff ============================================================================== --- james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/BasicBodyFactory.java (original) +++ james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/BasicBodyFactory.java Wed Jan 2 15:38:19 2013 @@ -24,7 +24,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; -import java.nio.charset.UnsupportedCharsetException; import org.apache.james.mime4j.dom.BinaryBody; import org.apache.james.mime4j.dom.TextBody; @@ -39,8 +38,12 @@ public class BasicBodyFactory implements return new BasicBinaryBody(bufferContent(is)); } + protected Charset resolveCharset(final String mimeCharset) { + return mimeCharset != null ? Charset.forName(mimeCharset) : null; + } + public TextBody textBody(final InputStream is, final String mimeCharset) throws IOException { - return new BasicTextBody(bufferContent(is), mimeCharset); + return new BasicTextBody(bufferContent(is), resolveCharset(mimeCharset)); } private static byte[] bufferContent(final InputStream is) throws IOException { @@ -60,12 +63,7 @@ public class BasicBodyFactory implements if (text == null) { throw new IllegalArgumentException("Text may not be null"); } - Charset charset = Charset.forName(mimeCharset); - try { - return new StringBody(text, charset); - } catch (UnsupportedCharsetException ex) { - throw new UnsupportedEncodingException(ex.getMessage()); - } + return new StringBody(text, resolveCharset(mimeCharset)); } public TextBody textBody(final String text, final Charset charset) { Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/BasicTextBody.java URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/BasicTextBody.java?rev=1427827&r1=1427826&r2=1427827&view=diff ============================================================================== --- james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/BasicTextBody.java (original) +++ james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/BasicTextBody.java Wed Jan 2 15:38:19 2013 @@ -24,16 +24,18 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; +import java.nio.charset.Charset; import org.apache.james.mime4j.dom.SingleBody; import org.apache.james.mime4j.dom.TextBody; +import org.apache.james.mime4j.util.CharsetUtil; class BasicTextBody extends TextBody { private final byte[] content; - private final String charset; + private final Charset charset; - BasicTextBody(final byte[] content, final String charset) { + BasicTextBody(final byte[] content, final Charset charset) { super(); this.content = content; this.charset = charset; @@ -41,12 +43,13 @@ class BasicTextBody extends TextBody { @Override public String getMimeCharset() { - return this.charset; + return this.charset != null ? this.charset.name() : null; } @Override public Reader getReader() throws IOException { - return new InputStreamReader(getInputStream(), this.charset); + return new InputStreamReader(getInputStream(), + this.charset != null ? this.charset : CharsetUtil.DEFAULT_CHARSET); } @Override Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/StringBody.java URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/StringBody.java?rev=1427827&r1=1427826&r2=1427827&view=diff ============================================================================== --- james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/StringBody.java (original) +++ james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/StringBody.java Wed Jan 2 15:38:19 2013 @@ -27,6 +27,7 @@ import java.nio.charset.Charset; import org.apache.james.mime4j.dom.SingleBody; import org.apache.james.mime4j.dom.TextBody; +import org.apache.james.mime4j.util.CharsetUtil; class StringBody extends TextBody { @@ -41,7 +42,7 @@ class StringBody extends TextBody { @Override public String getMimeCharset() { - return this.charset.name(); + return this.charset != null ? this.charset.name() : null; } @Override @@ -51,7 +52,8 @@ class StringBody extends TextBody { @Override public InputStream getInputStream() throws IOException { - return new StringInputStream(this.content, this.charset, 2048); + return new StringInputStream(this.content, + this.charset != null ? this.charset : CharsetUtil.DEFAULT_CHARSET, 2048); } @Override