<i18n dev> [9] RFR: 8172365: Provide a better migration path for ResourceBundleControlProvider

Mandy Chung mandy.chung at oracle.com
Tue Jan 24 05:06:27 UTC 2017


+1

Mandy

> On Jan 23, 2017, at 2:07 PM, Naoto Sato <naoto.sato at oracle.com> wrote:
> 
> More concise version:
> 
> --- a/src/java.base/share/classes/java/util/ResourceBundle.java
> +++ b/src/java.base/share/classes/java/util/ResourceBundle.java
> @@ -972,7 +972,9 @@
>      * equivalent to calling {@link #getBundle(String, Locale, ClassLoader)
>      * getBundle(baseName, targetLocale, module.getClassLoader()} to load
>      * resource bundles that are visible to the class loader of the given
> -     * unnamed module.
> +     * unnamed module. Custom {@link * ResourceBundleControlProvider}
> +     * implementations, if present, will only be invoked if the specified
> +     * module is an unnamed module.
>      *
>      * @param baseName the base name of the resource bundle,
>      *                 a fully qualified class name
> 
> Naoto
> 
> On 01/23/2017 01:51 PM, Naoto Sato wrote:
>> OK, I will clarify the method description of getBundle(String, Locale,
>> Module) as follows:
>> 
>> diff -r 290145dc2c96
>> src/java.base/share/classes/java/util/ResourceBundle.java
>> --- a/src/java.base/share/classes/java/util/ResourceBundle.java
>> +++ b/src/java.base/share/classes/java/util/ResourceBundle.java
>> @@ -972,7 +972,11 @@
>>      * equivalent to calling {@link #getBundle(String, Locale,
>> ClassLoader)
>>      * getBundle(baseName, targetLocale, module.getClassLoader()} to load
>>      * resource bundles that are visible to the class loader of the given
>> -     * unnamed module.
>> +     * unnamed module. The <a href="#default_behavior">default
>> behavior</a>
>> +     * of resource bundle loading can be modified with custom {@link
>> +     * ResourceBundleControlProvider} implementations. Refer to the
>> +     * description of <a href="#modify_default_behavior">modifying the
>> default
>> +     * behavior</a>.
>>      *
>>      * @param baseName the base name of the resource bundle,
>>      *                 a fully qualified class name
>> 
>> Naoto
>> 
>> On 01/23/2017 10:51 AM, Mandy Chung wrote:
>>> 
>>>> On Jan 23, 2017, at 9:14 AM, Naoto Sato <naoto.sato at oracle.com> wrote:
>>>> 
>>>> http://cr.openjdk.java.net/~naoto/8172365/webrev.05/
>>>> 
>>>>> 
>>>>> The fix is to reinstate the code that has been removed with 8171189,
>>>>> with modification to load implementations with ServiceLoader.load()
>>>>> method. That way, SPI implementations can be searched on application's
>>>>> class path.
>>> 
>>> This change is reasonable.  The custom control provider can only be
>>> used for loading of resource bundles in unnamed modules which
>>> maintains JDK 8 behavior.
>>> 
>>> For the getBundle factory methods taking Module parameter, I suggest
>>> to explain the spec to clarify that the custom control provider will
>>> be used to load the resource bundle if the specified module is unnamed
>>> module.
>>> 
>>> Otherwise looks good.
>>> Mandy
>>> 
>> 
> 



More information about the i18n-dev mailing list