Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Build warnings regarding using Sun proprietary API

I am trying to clean up my build environment and have discovered a couple of warnings reported around usage of Sun proprietary API's.

[javac] /workspace/<path-to-files>/Handler.java:18: warning: sun.net.www.protocol.http.Handler is Sun proprietary API and may be removed in a future release
[javac] public class Handler extends sun.net.www.protocol.http.Handler {
[javac]                                                       ^
[javac] /workspace/<path-to-files>/HttpClient.java:16: warning: sun.net.www.http.HttpClient is Sun proprietary API and may be removed in a future release 
[javac] public class HttpClient extends sun.net.www.http.HttpClient {
[javac]
[javac] /workspace/<path-to-files>/HttpURLConnection.java:19: warning: sun.net.www.protocol.http.HttpURLConnection is Sun proprietary API and may be removed in a future release
[javac] public class HttpURLConnection extends sun.net.www.protocol.http.HttpURLConnection {
[javac]                                                                 ^

and...

[javac] /workspace/<path-to-files>/JavaFile.java:17: warning: sun.misc.BASE64Decoder is Sun proprietary API and may be removed in a future release
[javac] import sun.misc.BASE64Decoder;
[javac]                ^
[javac] /workspace/<path-to-files>/JavaFile.java:338: warning: sun.misc.BASE64Encoder is Sun proprietary API and may be removed in a future release
[javac]          BASE64Encoder encoder = new BASE64Encoder();
[javac]          ^

Can anyone suggest a good alternative to these API's? Or can these be replaced with the official Java API's? I realise that these are just warnings, but this is something I plan on resolving.

like image 736
MeanwhileInHell Avatar asked Nov 20 '12 14:11

MeanwhileInHell


3 Answers

It's not clear why you're declaring your own HttpURLConnection and Handler classes in the first place - are you sure you want to compile those?

As for Base64 - I like this public domain implementation myself.

like image 175
Jon Skeet Avatar answered Oct 24 '22 02:10

Jon Skeet


If you have written a http client then you've reinvented the wheel. There's a really good one already in apache http client.

If you want Base64 encoding/decoding there's an class for that in apache commons codec.

like image 6
Qwerky Avatar answered Oct 24 '22 01:10

Qwerky


Apache Commons Codec include Base64 class.

like image 3
CAMOBAP Avatar answered Oct 24 '22 01:10

CAMOBAP