1 | Next Release |
---|
2 | ------------ |
---|
3 | |
---|
4 | Mime4J storage contains support for encrypted storage through the standard Java cryptography |
---|
5 | API. When used in conjunction with a JRE with strong cryptography enabled, this library will |
---|
6 | use strong cryptography. See README. |
---|
7 | |
---|
8 | Release 0.7 |
---|
9 | ------------------- |
---|
10 | |
---|
11 | Mime4J is a flexible MIME parsing library written in Java. SAX, DOM and pull parsing styles are |
---|
12 | supported. |
---|
13 | |
---|
14 | The 0.7 release brings another round of API enhancements, bug fixes and performance optimizations. |
---|
15 | A major effort has been put in code reorganization, separating parsing code from DOM manipulation |
---|
16 | code. Mime4J 0.7 introduces the "dom" package collecting base/abstract classes and interfaces for |
---|
17 | MIME-DOM manipulation aiming to provide the base for a full featured traversable DOM. |
---|
18 | Mime4J 0.7 improve support for headless messages, malformed separation between headers and body |
---|
19 | and adds support for "obsolete" rfc822 syntax (e.g: "Header<somespace>: " style). |
---|
20 | Parsing performance for quoted printable streams have been considerably improved. |
---|
21 | A "DecodeMonitor" object has been introduced in most code to define how to deal with malformed |
---|
22 | input (Lenient vs Strict behaviours). |
---|
23 | |
---|
24 | Upgrade Notes |
---|
25 | ------------- |
---|
26 | |
---|
27 | * The defualt field parsing logic has been moved from AbstractField to DefaultFieldParser. |
---|
28 | * many classes have been moved from org.apache.james.mime4j.parser to |
---|
29 | org.apache.james.mime4j.stream package (ContentHandler, DefaultBodyDescriptor, RawField..) |
---|
30 | * "dom" classes/interfaces have been moved from the .message and .field package to the .dom |
---|
31 | package tree. |
---|
32 | * The method decodeBaseQuotedPrintable() of class o.a.j.mime4j.codec.DecoderUtil has been renamed |
---|
33 | in decodeQuotedPrintable(). |
---|
34 | * Preamble and Epilogue are now correctly handled as optionals and the parser invoke their |
---|
35 | tokens/events only when they are present in the message. So if your code rely on that events |
---|
36 | being always called make sure to fix it. |
---|
37 | * preamble and epilogue Strings in Multipart DOM object are now nullable: an empty preamble is |
---|
38 | different from no preamble, so we had to update the dom contract to support this difference. |
---|
39 | Make sure to add null checks if code using multipart.getPreamble and multipart.getEpilogue. |
---|
40 | * the first event for headless parsing in MimeTokenStream is not the first BODY event. |
---|
41 | You should not expect T_START_HEADER/T_END_HEADER any more. |
---|
42 | |
---|
43 | Please also note that as of this release Mime4j requires a Java 1.5 compatible runtime. |
---|
44 | |
---|
45 | Release 0.6 |
---|
46 | ------------------- |
---|
47 | |
---|
48 | Mime4J is a flexible MIME parsing library written in Java. SAX, DOM and pull parsing styles are |
---|
49 | supported. |
---|
50 | |
---|
51 | The 0.6 release brings another round of API enhancements and performance optimizations. There has |
---|
52 | been a number of notable improvements in the DOM support. MIME stream parser is expected to be |
---|
53 | 50% faster when line counting is disabled. Please also note that as of this release Mime4j |
---|
54 | requires a Java 1.5 compatible runtime. |
---|
55 | |
---|
56 | Notes |
---|
57 | ----- |
---|
58 | |
---|
59 | * Mime4j API is still considered unstable and is likely to change in future releases |
---|
60 | * The DOM API has been now been comprehensively refactored and the known limitations |
---|
61 | addressed. Please report any remaining issues to |
---|
62 | https://issues.apache.org/jira/browse/MIME4J. |
---|
63 | * Some low level functions are available only in the pull parser (recommended for |
---|
64 | advanced users) |
---|
65 | * 0.6 contains a mixture of approaches to the parsing of advanced MIME field types. |
---|
66 | Limitations are known with these approaches with some relatively uncommon use cases. |
---|
67 | A consistent and comprehensive rewrite is planned for 0.7 which should consolidate |
---|
68 | and address these. |
---|
69 | * The former interfaces TextBody and BinaryBody have been changed into abstract subclasses |
---|
70 | of class SingleBody. Code that implements these interfaces has to be changed accordingly. |
---|
71 | [https://issues.apache.org/jira/browse/MIME4J-111] |
---|
72 | * A dedicated class for writing a message has been introduced. Class MessageWriter has now |
---|
73 | to be used instead of Body.writeTo(OutputStream, int). A short-cut method |
---|
74 | Message.writeTo(OutputStream) without a mode parameter is also available. |
---|
75 | [https://issues.apache.org/jira/browse/MIME4J-110] |
---|
76 | * Class NamedMailbox has been removed. Class Mailbox now has an additional name property. |
---|
77 | [https://issues.apache.org/jira/browse/MIME4J-107] |
---|
78 | * Class MessageUtils has been removed. The methods and constants can now be found in class |
---|
79 | CharsetUtil in the same package. |
---|
80 | [https://issues.apache.org/jira/browse/MIME4J-106] |
---|
81 | * Package org.apache.james.mime4j.decoder has been renamed in org.apache.james.mime4j.codec. |
---|
82 | [https://issues.apache.org/jira/browse/MIME4J-105] |
---|
83 | * Class AbstractBody has been superseded by SingleBody. AbstractBody has been removed. |
---|
84 | * BodyFactory introduced allowing more flexible storage for Message parts. TempFileTextBody |
---|
85 | and TempFileBinaryBody removed. |
---|
86 | [https://issues.apache.org/jira/browse/MIME4J-87] |
---|
87 | * Mime4j now has a more flexible mechanism for storing message bodies. Class TempStorage |
---|
88 | has been superseded by StorageProvider in package org.apache.james.mime4j.storage. |
---|
89 | The classes TempStorage, TempPath, TempFile and SimpleTempStorage have been removed. |
---|
90 | [https://issues.apache.org/jira/browse/MIME4J-83] |
---|
91 | * Temporary text body storage for Message parts now defaults to US-ASCII (was ISO-8859-1) |
---|
92 | |
---|
93 | Detailed change log can be found here: |
---|
94 | |
---|
95 | http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310521&styleName=Html&version=12313434 |
---|
96 | |
---|
97 | |
---|
98 | Release 0.5 |
---|
99 | ------------------- |
---|
100 | |
---|
101 | Mime4J is a flexible MIME parsing library written in Java. SAX, DOM and pull parsing |
---|
102 | styles are supported. |
---|
103 | |
---|
104 | |
---|
105 | The 0.5 release addresses a number of important issues discovered since 0.4. In |
---|
106 | particular, it improves Mime4j ability to deal with malformed data streams including |
---|
107 | those intentionally crafted to cause excessive CPU and memory utilization that can |
---|
108 | lead to DoS conditions. |
---|
109 | |
---|
110 | This release also fixes a serious bug that can prevent Mime4j from correctly |
---|
111 | processing binary content. |
---|
112 | |
---|
113 | Detailed change log can be found here: |
---|
114 | |
---|
115 | https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310521&styleName=Html&version=12313178 |
---|
116 | |
---|
117 | Notes |
---|
118 | ----- |
---|
119 | * Mime4j API is still considered unstable and is likely to change in future releases |
---|
120 | * DOM support has known limitations and some roundtrip issues remain to be resolved |
---|
121 | * Some low level functions are available only in the pull parser (recommended for |
---|
122 | advanced users) |
---|
123 | |
---|
124 | |
---|
125 | |
---|
126 | Release 0.4 |
---|
127 | ------------------- |
---|
128 | |
---|
129 | Mime4J is a flexible MIME parsing library written in Java. SAX, DOM and pull parsing |
---|
130 | styles are supported. |
---|
131 | |
---|
132 | The 0.4 release brings a number of significant improvements in terms of |
---|
133 | supported capabilities, flexibility and performance: |
---|
134 | |
---|
135 | * Revised and improved public API with support for pull parsing |
---|
136 | |
---|
137 | * Support for parsing of 'headless' messages transmitted using non SMTP |
---|
138 | transports such as HTTP |
---|
139 | |
---|
140 | * Reduced external dependencies. Mime4j is no longer directly dependent on log4j |
---|
141 | and commons-io |
---|
142 | |
---|
143 | * Improved parsing performance (up to 10x for large messages) |
---|
144 | |
---|
145 | * More comprehensive header parsing including support for RFC1864, RFC2045, |
---|
146 | RFC2183, RFC2557 and RFC3066 |
---|
147 | |
---|
148 | * Revised packaging and exception hierarchy. MimeException now extends |
---|
149 | IOException. |
---|
150 | |
---|
151 | Detailed change log can be found here: |
---|
152 | |
---|
153 | http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310521&styleName=Html&version=12312483 |
---|
154 | |
---|
155 | Notes |
---|
156 | ----- |
---|
157 | * 0.4 contains numerous API improvements and is not binary compatible with 0.3 |
---|
158 | * Mime4j API is still considered unstable and is likely to change in future releases |
---|
159 | * DOM support has known limitations and some roundtrip issues remain to be resolved |
---|
160 | * Some low level functions are available only in the pull parser (recommended for |
---|
161 | advanced users) |
---|