Review/comment needed for the new public java.util.Base64 class

Xueming Shen xueming.shen at oracle.com
Thu Oct 11 03:15:25 UTC 2012


There is no plan yet. The sun.misc.BASE64En/Decoder should already 
trigger a compiler
warning for it's a sun private API. @Deprecated annotation might be a 
good fit.

-Sherman

On 10/10/12 1:40 PM, Joe Darcy wrote:
> Hello,
>
> On 10/10/2012 1:03 PM, Iris Clark wrote:
>> Hi, Sherman.
>>
>> I'm glad to see this coming in.  As you said, long overdue.
>>
>> I'm curious.  What are the plans are to encourage migration from the 
>> JDK private and unsupported sun.misc.BASE64{En,DE}coder classes?  
>> Compile-time warning?  Documentation?  Something else?
>
> On that point, sun.misc.BASE64{En,DE}coder may present a fine 
> opportunity to use the @Deprecated annotation...
>
> -Joe
>
>>
>> Thanks,
>> iris
>>
>> -----Original Message-----
>> From: Xueming Shen
>> Sent: Wednesday, October 10, 2012 10:55 AM
>> To: core-libs-dev
>> Subject: Review/comment needed for the new public java.util.Base64 class
>>
>>
>> A standard/public API for Base64 encoding and decoding has been long 
>> overdue. JDK8  has a JEP [1] for this particular request.
>>
>> Here is the draft proposal to add a public Base64 utility class for 
>> JDK8.
>>
>> http://cr.openjdk.java.net/~sherman/4235519/webrev
>>
>> This class basically provides 4 variants of Base64 encoding scheme,
>>
>> (1) the default RFC 4648, which uses standard mapping, no line breaks,
>> (2) the URL-safe RFE 4648, no line breaks, use "-" and "_" to replace 
>> "+" and
>>       "/" for the mapping
>> (3) the default MIME style, as in RFC 2045 (and its earlier 
>> versions), which uses
>>       "standard" base64 mapping, a 76 characters per line limit and 
>> uses crlf pair
>>        \r\n for line break.
>> (4) an extend-able MIME base64, with the char-per-line and the line
>> separator(s)
>>        specified by developer.
>>
>> The encoder/decoder now provides encoding and decoding for byte[], 
>> String, ByteBuffer and a pair of "EncoderInputStream" and 
>> "DecoderOutputStrream", which we believe/hope should satisfy most of 
>> the common use cases.
>> Additional
>> method(s) can be added if strongly desired.
>>
>> We tried couple slightly different styles of design for such this 
>> "simple" utility class [2].  We kinda concluded that the version 
>> proposed probably provides the best balance among readability, 
>> usability and extensibility.
>>
>> Please help review and comment on the API and implementation.
>>
>> Thanks!
>> -Sherman
>>
>> [1] http://openjdk.java.net/jeps/135
>> [2] http://cr.openjdk.java.net/~sherman/base64/
>




More information about the core-libs-dev mailing list