| Release 0.9.0 |
| ------------------- |
| |
| Fix MIME4J-262 without breaking compatibility with old code by deprecating MessageBuilder and adding Message.Builder |
| |
| Message.Builder produce message for which the getDate method return null if and only if the message do not have a "Date" |
| header. Whereas MessageBuilder will produce message for which the getDate method never return null: if the message has |
| no "Date" header the returned value is "new Date()" result when the message has been instantiated |
| |
| Release 0.7.2 |
| ------------------- |
| |
| Mime4J is a flexible MIME parsing library written in Java. SAX, DOM and pull parsing styles are |
| supported. |
| |
| The 0.7.2 release fixes several non-critical bugs found since release 0.7.1. |
| |
| |
| Release 0.7.1 |
| ------------------- |
| |
| Mime4J is a flexible MIME parsing library written in Java. SAX, DOM and pull parsing styles are |
| supported. |
| |
| The 0.7.1 release fixes several non-critical bugs found since release 0.7. |
| |
| |
| Release 0.7 |
| ------------------- |
| |
| Mime4J is a flexible MIME parsing library written in Java. SAX, DOM and pull parsing styles are |
| supported. |
| |
| The 0.7 release brings another round of API enhancements, bug fixes and performance optimizations. |
| A major effort has been put in code reorganization, separating parsing code from DOM manipulation |
| code. Mime4J has been restructured into three separate modules: 'core', 'dom' and 'storage'. |
| The 'core' package provides an event-driven SAX style parser that relies on a callback mechanism |
| to report parsing events such as the start of an entity header the start of a body, etc. |
| The 'dom' package contains base/abstract classes and interfaces for MIME-DOM manipulation aiming |
| to provide the base for a full featured traversable DOM. Per default the Mime4J DOM builder stores |
| content of individual body parts in memory. The 'storage' package provides support for more |
| complex storage backends such on-disk storage systems, overflow on max limit, or encrypted storage |
| through JSSE API. |
| |
| Mime4J 0.7 improves support for headless messages, malformed separation between headers and body |
| and adds support for "obsolete" rfc822 syntax (e.g: "Header<somespace>: " style). Parsing |
| performance for quoted printable streams have been considerably improved. A "DecodeMonitor" object |
| has been introduced in most code to define how to deal with malformed input (Lenient vs Strict |
| behaviours). Mime4J 0.7 also provides LenientFieldParser as an alternative to DefaultFieldParser |
| when a higher degree of tolerance to non-severe MIME field format violations is desired. |
| |
| Upgrade Notes |
| ------------- |
| |
| * The default field parsing logic has been moved from AbstractField to DefaultFieldParser. |
| * Low level MIME stream classes have been moved from org.apache.james.mime4j.parser to |
| org.apache.james.mime4j.stream package (Field, RawField, MimeTokenStream, ...) |
| * "dom" classes/interfaces have been moved from the .message and .field package to the .dom |
| package tree. |
| * The method decodeBaseQuotedPrintable() of class o.a.j.mime4j.codec.DecoderUtil has been renamed |
| in decodeQuotedPrintable(). |
| * Preamble and Epilogue are now correctly handled as optionals and the parser invoke their |
| tokens/events only when they are present in the message. So if your code rely on that events |
| being always called make sure to fix it. |
| * preamble and epilogue Strings in Multipart DOM object are now nullable: an empty preamble is |
| different from no preamble, so we had to update the dom contract to support this difference. |
| Make sure to add null checks if code using multipart.getPreamble and multipart.getEpilogue. |
| * the first event for headless parsing in MimeTokenStream is not the first BODY event. |
| You should not expect T_START_HEADER/T_END_HEADER any more. |
| |
| Please also note that as of this release Mime4j requires a Java 1.5 compatible runtime. |
| |
| Release 0.6 |
| ------------------- |
| |
| Mime4J is a flexible MIME parsing library written in Java. SAX, DOM and pull parsing styles are |
| supported. |
| |
| The 0.6 release brings another round of API enhancements and performance optimizations. There has |
| been a number of notable improvements in the DOM support. MIME stream parser is expected to be |
| 50% faster when line counting is disabled. Please also note that as of this release Mime4j |
| requires a Java 1.5 compatible runtime. |
| |
| Notes |
| ----- |
| |
| * Mime4j API is still considered unstable and is likely to change in future releases |
| * The DOM API has been now been comprehensively refactored and the known limitations |
| addressed. Please report any remaining issues to |
| https://issues.apache.org/jira/browse/MIME4J. |
| * Some low level functions are available only in the pull parser (recommended for |
| advanced users) |
| * 0.6 contains a mixture of approaches to the parsing of advanced MIME field types. |
| Limitations are known with these approaches with some relatively uncommon use cases. |
| A consistent and comprehensive rewrite is planned for 0.7 which should consolidate |
| and address these. |
| * The former interfaces TextBody and BinaryBody have been changed into abstract subclasses |
| of class SingleBody. Code that implements these interfaces has to be changed accordingly. |
| [https://issues.apache.org/jira/browse/MIME4J-111] |
| * A dedicated class for writing a message has been introduced. Class MessageWriter has now |
| to be used instead of Body.writeTo(OutputStream, int). A short-cut method |
| Message.writeTo(OutputStream) without a mode parameter is also available. |
| [https://issues.apache.org/jira/browse/MIME4J-110] |
| * Class NamedMailbox has been removed. Class Mailbox now has an additional name property. |
| [https://issues.apache.org/jira/browse/MIME4J-107] |
| * Class MessageUtils has been removed. The methods and constants can now be found in class |
| CharsetUtil in the same package. |
| [https://issues.apache.org/jira/browse/MIME4J-106] |
| * Package org.apache.james.mime4j.decoder has been renamed in org.apache.james.mime4j.codec. |
| [https://issues.apache.org/jira/browse/MIME4J-105] |
| * Class AbstractBody has been superseded by SingleBody. AbstractBody has been removed. |
| * BodyFactory introduced allowing more flexible storage for Message parts. TempFileTextBody |
| and TempFileBinaryBody removed. |
| [https://issues.apache.org/jira/browse/MIME4J-87] |
| * Mime4j now has a more flexible mechanism for storing message bodies. Class TempStorage |
| has been superseded by StorageProvider in package org.apache.james.mime4j.storage. |
| The classes TempStorage, TempPath, TempFile and SimpleTempStorage have been removed. |
| [https://issues.apache.org/jira/browse/MIME4J-83] |
| * Temporary text body storage for Message parts now defaults to US-ASCII (was ISO-8859-1) |
| |
| Detailed change log can be found here: |
| |
| http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310521&styleName=Html&version=12313434 |
| |
| |
| Release 0.5 |
| ------------------- |
| |
| Mime4J is a flexible MIME parsing library written in Java. SAX, DOM and pull parsing |
| styles are supported. |
| |
| |
| The 0.5 release addresses a number of important issues discovered since 0.4. In |
| particular, it improves Mime4j ability to deal with malformed data streams including |
| those intentionally crafted to cause excessive CPU and memory utilization that can |
| lead to DoS conditions. |
| |
| This release also fixes a serious bug that can prevent Mime4j from correctly |
| processing binary content. |
| |
| Detailed change log can be found here: |
| |
| https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310521&styleName=Html&version=12313178 |
| |
| Notes |
| ----- |
| * Mime4j API is still considered unstable and is likely to change in future releases |
| * DOM support has known limitations and some roundtrip issues remain to be resolved |
| * Some low level functions are available only in the pull parser (recommended for |
| advanced users) |
| |
| |
| |
| Release 0.4 |
| ------------------- |
| |
| Mime4J is a flexible MIME parsing library written in Java. SAX, DOM and pull parsing |
| styles are supported. |
| |
| The 0.4 release brings a number of significant improvements in terms of |
| supported capabilities, flexibility and performance: |
| |
| * Revised and improved public API with support for pull parsing |
| |
| * Support for parsing of 'headless' messages transmitted using non SMTP |
| transports such as HTTP |
| |
| * Reduced external dependencies. Mime4j is no longer directly dependent on log4j |
| and commons-io |
| |
| * Improved parsing performance (up to 10x for large messages) |
| |
| * More comprehensive header parsing including support for RFC1864, RFC2045, |
| RFC2183, RFC2557 and RFC3066 |
| |
| * Revised packaging and exception hierarchy. MimeException now extends |
| IOException. |
| |
| Detailed change log can be found here: |
| |
| http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310521&styleName=Html&version=12312483 |
| |
| Notes |
| ----- |
| * 0.4 contains numerous API improvements and is not binary compatible with 0.3 |
| * Mime4j API is still considered unstable and is likely to change in future releases |
| * DOM support has known limitations and some roundtrip issues remain to be resolved |
| * Some low level functions are available only in the pull parser (recommended for |
| advanced users) |