|
Version 3.0 -- 24 Oct 2005
Bug fix in ByteString.indexOf(int).
New support for RFC
2231. DispositionType has new methods
DispositionType.filenameU() and
DispostionType.setFilenameU(String) that correctly add the
filename parameter according to RFC 2231.
New capabilities in the classes in the mail namespace. These
classes now handle HTML email much better, including HTML email with inline
images.
Many "properties" were changed from ByteString to
String. Most of these properties should take values that
consist of only ASCII characters. By changing these properties to
String, we lose the ability to enforce the ASCII restriction,
but we gain much in ease of use. Some examples include
Mailbox.localPart, Mailbox.domain,
MediaType.type, MediaType.subtype,
Parameter.name, and Parameter.value.
The naming convention for "getters" and "setters" is made completely
consistent. The getter omits the "get" prefix. The setter always has the
"set" prefix. For example, for the Mailbox.domain property,
the getter is Mailbox.domain() and the setter is
Mailbox.setDomain(String). While it's true that the "get"
prefix is a common naming convention, and is part of the Java Beans naming
convention, the getter without the "get" prefix is more economical and
appears more pleasing when functions are chained together. Consider
msg.getHeaders().getContentType().getType();
versus
msg.headers().contentType().type();
The character encoding conversion capability of Mailbox is
greatly improved. The methods Mailbox.getDecodedDisplayName
and Mailbox.setDecodedDisplayName are gone, because it is
almost impossible to create the encoded words correctly. The changes are
based assumptions that the programmer works with Unicode internally in the
application, and converts to an alternative character encoding only when
importing to or exporting from the internal environment.
The character encoding and decoding implementation in Text is
improved and more thoroughly tested.
The BinHex was rewritten and is now more robust and more
thoroughly tested.
Version 2.2.4 -- 6 Nov 2003
- Bug fix: parameters in headers fields that contain spaces are delimited
by quotation marks
- Improved code in Uuencode class
Version 2.2.3 -- 20 Aug 2003
- Bug fix: Parent node of headers and body not set in Entity copy constructor
Version 2.2.2 -- 7 May 2003
- Changes to the documentation
- Internal changes to Text class
- New method: Text.getCharset()
Version 2.2.1 -- 21 February 2003
- Bug fix: IndexOutOfBoundsException thrown when parsing a multipart
message that contains two consecutive boundary lines
Version 2.2 -- 30 January 2003
- Bug fix: MsgId.createDomain() sets domain to empty string instead of null
on failure
- Bug fix: EncodedWord.bEncode()
- Bug fix: AppleFile.setBackupTime() changed to public
- Parts of Text class rewritten. Includes new method
Text.setUnicodeText(String unicodeText, String charset) which correctly
encodes 8-bit character sets, plus non-modal multibyte character
encodings (UTF-8, BIG5, EUC-CN, EUC-JP, EUC-KR, EUC-TW, GB2312, GBK,
Shift_JIS) and modal multibyte character encodings (ISO-2022-JP,
ISO-2022-KR, ISO-2022-CN). Note that these encodings depend on the Java
implementation for conversion.
- Changes to TextUtil:
Added: CRLF_EOL, LF_EOL, toCrLf(), toLf(), toDefaultEol()
Removed: isSpace(), skipWhiteSpace(), skipNonWhiteSpace(), skipComment(),
character constants (HT, LF, etc)
- Base64Encoder[W], Base64Decoder[W] rewritten to encode/decode faster
- Base64Decoder[W].decodeSegment() and Base64Decoder[W].decode() throw
a DecodeException if an error occurs
- New method: QuotedPrintableDecoder[W].errorDetected().
QuotedPrintableDecoder[W] now does the right thing with decoding errors.
- Parts of BinHex rewritten
- AppleFile.unpack() throws a DecodeException if an error occurs
- New method: ByteStringBuffer.setLength()
- DecodeException has an integer error code
- Removed method: Headers.contentLanguage().
(Use hdrs.fieldBody(Headers.CONTENT_LANGUAGE).)
Version 2.1 -- 12 November 2002
- Bug fix: FieldBody.getText() incorrectly returned empty ByteString after
AddressList.parse()
- Bug fix: FieldBody.setText(ByteString) incorrectly set the is-modified
flag in the FieldBody object
- Bug fix: Field.fieldBody() did not set the parent of the new FieldBody
object
- Added new methods Entity.setHeaders(Headers) and Entity.setBody(Body)
- Added new convenience methods MediaType.getCharset() and
MediaType.setCharset(ByteString)
- Added new constant Headers.CONTENT_LANGUAGE
- Added "How To" document: How-To.htm
- Added how-to subdirectory with additional, short examples
|