You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mime4j-dev@james.apache.org by ol...@apache.org on 2013/01/02 16:38:20 UTC
svn commit: r1427827 - in
/james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message:
BasicBodyFactory.java BasicTextBody.java StringBody.java
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