Author: rdonkin
Date: Tue Jun 17 11:52:48 2008
New Revision: 668792
URL: http://svn.apache.org/viewvc?rev=668792&view=rev
Log:
Parse and store Content-Description Content-ID
Modified:
james/mime4j/trunk/src/main/java/org/apache/james/mime4j/MaximalBodyDescriptor.java
james/mime4j/trunk/src/main/java/org/apache/james/mime4j/util/MimeUtil.java
james/mime4j/trunk/src/test/java/org/apache/james/mime4j/ExampleMail.java
james/mime4j/trunk/src/test/java/org/apache/james/mime4j/MaximalBodyDescriptorTest.java
james/mime4j/trunk/src/test/java/org/apache/james/mime4j/MimeTokenStreamReaderTest.java
Modified:
james/mime4j/trunk/src/main/java/org/apache/james/mime4j/MaximalBodyDescriptor.java
URL:
http://svn.apache.org/viewvc/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/MaximalBodyDescriptor.java?rev=668792&r1=668791&r2=668792&view=diff
==============================================================================
---
james/mime4j/trunk/src/main/java/org/apache/james/mime4j/MaximalBodyDescriptor.java
(original)
+++
james/mime4j/trunk/src/main/java/org/apache/james/mime4j/MaximalBodyDescriptor.java
Tue Jun 17 11:52:48 2008
@@ -32,10 +32,14 @@
private static final int DEFAULT_MINOR_VERSION = 0;
private static final int DEFAULT_MAJOR_VERSION = 1;
- private boolean mimeVersionSet;
+ private boolean isMimeVersionSet;
private int mimeMinorVersion;
private int mimeMajorVersion;
private MimeException mimeVersionException;
+ private String contentId;
+ private boolean isContentIdSet;
+ private String contentDescription;
+ private boolean isContentDescriptionSet;
protected MaximalBodyDescriptor() {
this(null);
@@ -43,22 +47,46 @@
protected MaximalBodyDescriptor(BodyDescriptor parent) {
super(parent);
- mimeVersionSet = false;
+ isMimeVersionSet = false;
mimeMajorVersion = DEFAULT_MAJOR_VERSION;
mimeMinorVersion = DEFAULT_MINOR_VERSION;
+ this.contentId = null;
+ this.isContentIdSet = false;
+ this.contentDescription = null;
+ this.isContentDescriptionSet = false;
}
-
-
public void addField(String name, String value) {
name = name.trim().toLowerCase();
- if (MimeUtil.MIME_HEADER_MIME_VERSION.equals(name) && !mimeVersionSet)
{
+ if (MimeUtil.MIME_HEADER_MIME_VERSION.equals(name) &&
!isMimeVersionSet) {
parseMimeVersion(value);
+ } else if (MimeUtil.MIME_HEADER_CONTENT_ID.equals(name) &&
!isContentIdSet) {
+ parseContentId(value);
+ } else if (MimeUtil.MIME_HEADER_CONTENT_DESCRIPTION.equals(name) &&
!isContentDescriptionSet) {
+ parseContentDescription(value);
} else {
super.addField(name, value);
}
}
+ private void parseContentDescription(String value) {
+ if (value == null) {
+ contentDescription = "";
+ } else {
+ contentDescription = value.trim();
+ }
+ isContentDescriptionSet = true;
+ }
+
+ private void parseContentId(final String value) {
+ if (value == null) {
+ contentId = "";
+ } else {
+ contentId = value.trim();
+ }
+ isContentIdSet = true;
+ }
+
private void parseMimeVersion(String value) {
final StringReader reader = new StringReader(value);
final MimeVersionParser parser = new MimeVersionParser(reader);
@@ -75,7 +103,7 @@
} catch (MimeException e) {
this.mimeVersionException = e;
}
- mimeVersionSet = true;
+ isMimeVersionSet = true;
}
/**
@@ -103,4 +131,24 @@
public MimeException getMimeVersionParseException() {
return mimeVersionException;
}
+
+ /**
+ * Gets the value of the <a
href='http://www.faqs.org/rfcs/rfc2045'>RFC</a>
+ * <code>Content-Description</code> header.
+ * @return value of the <code>Content-Description</code> when present,
+ * null otherwise
+ */
+ public String getContentDescription() {
+ return contentDescription;
+ }
+
+ /**
+ * Gets the value of the <a
href='http://www.faqs.org/rfcs/rfc2045'>RFC</a>
+ * <code>Content-ID</code> header.
+ * @return value of the <code>Content-ID</code> when present,
+ * null otherwise
+ */
+ public String getContentId() {
+ return contentId;
+ }
}
Modified:
james/mime4j/trunk/src/main/java/org/apache/james/mime4j/util/MimeUtil.java
URL:
http://svn.apache.org/viewvc/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/util/MimeUtil.java?rev=668792&r1=668791&r2=668792&view=diff
==============================================================================
--- james/mime4j/trunk/src/main/java/org/apache/james/mime4j/util/MimeUtil.java
(original)
+++ james/mime4j/trunk/src/main/java/org/apache/james/mime4j/util/MimeUtil.java
Tue Jun 17 11:52:48 2008
@@ -56,6 +56,10 @@
/** <code>MIME-Version</code> header name (lowercase) */
public static final String MIME_HEADER_MIME_VERSION = "mime-version";
+ /** <code>Content-ID</code> header name (lowercase) */
+ public static final String MIME_HEADER_CONTENT_ID = "content-id";
+ /** <code>Content-Description</code> header name (lowercase) */
+ public static final String MIME_HEADER_CONTENT_DESCRIPTION =
"content-description";
private MimeUtil() {
// this is an utility class to be used statically.
Modified:
james/mime4j/trunk/src/test/java/org/apache/james/mime4j/ExampleMail.java
URL:
http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/java/org/apache/james/mime4j/ExampleMail.java?rev=668792&r1=668791&r2=668792&view=diff
==============================================================================
--- james/mime4j/trunk/src/test/java/org/apache/james/mime4j/ExampleMail.java
(original)
+++ james/mime4j/trunk/src/test/java/org/apache/james/mime4j/ExampleMail.java
Tue Jun 17 11:52:48 2008
@@ -22,6 +22,8 @@
public class ExampleMail {
+ public static final String CONTENT_DESCRIPTION = "Blah blah blah";
+ public static final String CONTENT_ID = "<[EMAIL PROTECTED]>";
public static final Charset US_ASCII = Charset.forName("US-ASCII");
public static final Charset LATIN1 = Charset.forName("ISO-8859-1");
@@ -258,6 +260,8 @@
"Content-Type: text/plain; charset=ISO-8859-1\r\n" +
"Content-Transfer-Encoding: 8bit\r\n" +
"Content-Disposition: inline\r\n" +
+ "Content-ID: " + CONTENT_ID + "\r\n" +
+ "Content-Description: " + CONTENT_DESCRIPTION + "\r\n" +
"Delivered-To: [EMAIL PROTECTED]" +
"\r\n" +
ONE_PART_MIME_8859_BODY;
Modified:
james/mime4j/trunk/src/test/java/org/apache/james/mime4j/MaximalBodyDescriptorTest.java
URL:
http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/java/org/apache/james/mime4j/MaximalBodyDescriptorTest.java?rev=668792&r1=668791&r2=668792&view=diff
==============================================================================
---
james/mime4j/trunk/src/test/java/org/apache/james/mime4j/MaximalBodyDescriptorTest.java
(original)
+++
james/mime4j/trunk/src/test/java/org/apache/james/mime4j/MaximalBodyDescriptorTest.java
Tue Jun 17 11:52:48 2008
@@ -49,6 +49,21 @@
assertNull(descriptor.getMimeVersionParseException());
}
+ public void testContentId() throws Exception {
+ MaximalBodyDescriptor descriptor =
describe(ExampleMail.ONE_PART_MIME_8859_BYTES);
+ assertEquals(1, descriptor.getMimeMajorVersion());
+ assertEquals(0, descriptor.getMimeMinorVersion());
+ assertNull(descriptor.getMimeVersionParseException());
+ assertEquals(ExampleMail.CONTENT_ID, descriptor.getContentId());
+ }
+
+ public void testContentDescription() throws Exception {
+ MaximalBodyDescriptor descriptor =
describe(ExampleMail.ONE_PART_MIME_8859_BYTES);
+ assertEquals(1, descriptor.getMimeMajorVersion());
+ assertEquals(0, descriptor.getMimeMinorVersion());
+ assertNull(descriptor.getMimeVersionParseException());
+ assertEquals(ExampleMail.CONTENT_DESCRIPTION,
descriptor.getContentDescription());
+ }
public void testMimeVersionHeaderBreak() throws Exception {
MaximalBodyDescriptor descriptor =
describe(ExampleMail.ONE_PART_MIME_ASCII_MIME_VERSION_SPANS_TWO_LINES_BYTES);
Modified:
james/mime4j/trunk/src/test/java/org/apache/james/mime4j/MimeTokenStreamReaderTest.java
URL:
http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/java/org/apache/james/mime4j/MimeTokenStreamReaderTest.java?rev=668792&r1=668791&r2=668792&view=diff
==============================================================================
---
james/mime4j/trunk/src/test/java/org/apache/james/mime4j/MimeTokenStreamReaderTest.java
(original)
+++
james/mime4j/trunk/src/test/java/org/apache/james/mime4j/MimeTokenStreamReaderTest.java
Tue Jun 17 11:52:48 2008
@@ -55,7 +55,7 @@
public void testShouldReadOnePartMime8859Body() throws Exception {
byte[] bytes = ExampleMail.ONE_PART_MIME_8859_BYTES;
String body = ExampleMail.ONE_PART_MIME_8859_BODY;
- checkSimpleMail(bytes, body, 11);
+ checkSimpleMail(bytes, body, 13);
}
public void testShouldReadOnePartMimeBase64ASCIIBody() throws Exception {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]