Author: imario
Date: Tue Jan 16 04:54:32 2007
New Revision: 496675
URL: http://svn.apache.org/viewvc?view=rev&rev=496675
Log:
deliver mail content only (no header) with inputStream, adjusted contentInfo to
determine the correct content type/encoding
Modified:
jakarta/commons/proper/vfs/trunk/sandbox/src/main/java/org/apache/commons/vfs/provider/mime/MimeFileContentInfoFactory.java
jakarta/commons/proper/vfs/trunk/sandbox/src/main/java/org/apache/commons/vfs/provider/mime/MimeFileObject.java
Modified:
jakarta/commons/proper/vfs/trunk/sandbox/src/main/java/org/apache/commons/vfs/provider/mime/MimeFileContentInfoFactory.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/sandbox/src/main/java/org/apache/commons/vfs/provider/mime/MimeFileContentInfoFactory.java?view=diff&rev=496675&r1=496674&r2=496675
==============================================================================
---
jakarta/commons/proper/vfs/trunk/sandbox/src/main/java/org/apache/commons/vfs/provider/mime/MimeFileContentInfoFactory.java
(original)
+++
jakarta/commons/proper/vfs/trunk/sandbox/src/main/java/org/apache/commons/vfs/provider/mime/MimeFileContentInfoFactory.java
Tue Jan 16 04:54:32 2007
@@ -23,7 +23,10 @@
import org.apache.commons.vfs.impl.DefaultFileContentInfo;
import javax.mail.MessagingException;
+import javax.mail.Part;
+import javax.mail.Message;
import javax.mail.internet.ContentType;
+import java.io.IOException;
/**
* get access to the content info stuff for mime objects
@@ -36,33 +39,56 @@
public FileContentInfo create(FileContent fileContent) throws
FileSystemException
{
MimeFileObject mimeFile = (MimeFileObject)
fileContent.getFile();
-
- ContentType contentType;
try
{
- String contentTypeString =
mimeFile.getPart().getContentType();
- contentType = new ContentType(contentTypeString);
+ if (mimeFile.isMultipart())
+ {
+ // if this is a multipart message we deliver
the preamble instead of an inupt string
+ // the preamble will be delivered in UTF-8 -
fixed
+ return new DefaultFileContentInfo("text/plain",
MimeFileSystem.PREAMBLE_CHARSET); // NON-NLS
+ }
}
catch (MessagingException e)
{
throw new FileSystemException(e);
}
- String charset = contentType.getParameter("charset");
+ String contentTypeString = null;
+
+ Part part = mimeFile.getPart();
try
{
- if (mimeFile.isMultipart())
+ Object content = part.getContent();
+ if (content instanceof Message)
{
- // if this is a multipart message we deliver
the preamble instead of an inupt string
- // the preamble will be delivered in UTF-8 -
fixed
- charset = MimeFileSystem.PREAMBLE_CHARSET;
+ contentTypeString = ((Message)
content).getContentType();
+ }
+ else
+ {
+ contentTypeString = part.getContentType();
}
}
+ catch (IOException e)
+ {
+ throw new FileSystemException(e);
+ }
+ catch (MessagingException e)
+ {
+ throw new FileSystemException(e);
+ }
+
+ ContentType contentType;
+ try
+ {
+ contentType = new ContentType(contentTypeString);
+ }
catch (MessagingException e)
{
- throw new FileSystemException(e);
+ throw new FileSystemException(e);
}
- return new DefaultFileContentInfo(contentType.getBaseType(),
charset);
+ return new DefaultFileContentInfo(
+ contentType.getBaseType(),
+ contentType.getParameter("charset")); // NON-NLS
}
}
Modified:
jakarta/commons/proper/vfs/trunk/sandbox/src/main/java/org/apache/commons/vfs/provider/mime/MimeFileObject.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/sandbox/src/main/java/org/apache/commons/vfs/provider/mime/MimeFileObject.java?view=diff&rev=496675&r1=496674&r2=496675
==============================================================================
---
jakarta/commons/proper/vfs/trunk/sandbox/src/main/java/org/apache/commons/vfs/provider/mime/MimeFileObject.java
(original)
+++
jakarta/commons/proper/vfs/trunk/sandbox/src/main/java/org/apache/commons/vfs/provider/mime/MimeFileObject.java
Tue Jan 16 04:54:32 2007
@@ -244,10 +244,20 @@
{
if (isMultipart())
{
+ // deliver the preamble as the only content
+
String preamble = ((MimeMultipart)
part.getContent()).getPreamble();
return new
ByteArrayInputStream(preamble.getBytes(MimeFileSystem.PREAMBLE_CHARSET));
}
+ // try to deliver the content only
+ Object content = part.getContent();
+ if (content instanceof Message)
+ {
+ return ((Message) content).getInputStream();
+ }
+
+ // hmmm ... dont know, deliver the plain stream
return part.getInputStream();
}
@@ -296,4 +306,4 @@
{
return part.getAllHeaders();
}
-}
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]