[9] RFR 8130181: Deprecate java.security.Provider(String, double, String), add Provider(String, String, String)

Valerie Peng valerie.peng at oracle.com
Wed Jun 22 19:47:59 UTC 2016


Max,

Thanks for the comments~

The String.valueOf() calls are for handling null values.
The name and id fields are also of type String and they use the 
String.valueOf() calls when putting in the Provider.id attribute values, 
so I follow the same convention. I also updated the 
parseVersionStr(String) utility method to handle null or invalid version 
strings though, and assign 0d if parsing fails.

According to the Verona JEP, "java.specification.version" should be 
$VNUM which is a non-empty sequence of non- negative integer numerals, 
without leading zeros, separated by period characters.
I am not sure if we can assume the same format for supplied version 
string though. So, the current impl of parsing of version string can 
take the $VSTR (again in Verona JEP) which consists of $VUM optionally 
followed by pre-release and build info, i.e. 
$VNUM(-$PRE)?(\+$BUILD)?(-$OPT)?

Webrev updated:
http://cr.openjdk.java.net/~valeriep/8130181/webrev.01

Valerie

On 6/15/2016 8:33 PM, Wang Weijun wrote:
> You used String.valueOf(provider.getVersionStr()) on lines 70 and 861. Why not just provider.getVersionStr()?
>
> For parseVersionStr(), where is the spec for "java.specification.version"? Can we just use regex /(^\d+(\.\d+)?)/ to match the substring and turn it into a double?
>
> --Max
>
>> On Jun 16, 2016, at 8:48 AM, Valerie Peng<valerie.peng at oracle.com>  wrote:
>>
>>
>> Any one has cycles to review this? Although the number of updated files are not trivial, but the key changes are in only 2 files, i.e.
>> src/java.base/share/classes/java/security/Provider.java and src/java.base/share/classes/java/security/AuthProvider.java.
>>
>> The rest of files are all very trivial, just changing the double version number to string.
>> Instead of hardcoded values, I make most of them refer to the new PROVIDER_VER field of the sun.security.util.SecurityConstants class, so the providers would be automatically updated and use the "java.specification.version" system property value as its version string.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8130181
>> Webrev: http://cr.openjdk.java.net/~valeriep/8130181/webrev.00/
>>
>> Valerie



More information about the security-dev mailing list