On 13 Feb 2015, at 16:11, Alan Bateman wrote:
> On 10/02/2015 16:20, Chris Hegarty wrote:
>> On 10 Feb 2015, at 11:35, Alan Bateman wrote:
>>
>>> On 09/02/2015 14:57, Chris Hegarty wrote:
:
Updated webrev [ spec and implementation] :
http://cr.openjdk.java.net/~chegar/8064924/04/
>>> The updated javadoc looks good. I haven't had a chance yet to look at the
>>> implementation but I think you will need to update
>>> /make/common/CORE_PKGS.gmk for the spi package.
>> Sorry, I have the change locally but forgot it. I updated the webrev with
>> the changes to the top level repo ( below ):
>>
> I think the approach is good.
>
> One thing in the implementation is detection for recursive initialization. In
> other areas of the platforms (ClassLoader.getSystemClassLoader and
> FileSystem.getDefault) then an exception is thrown.
In an earlier revision recursion detection threw an Exception, but I was
inspired by the the lookup mechanism in Charset, which returns null when it
encounters recursion. I chose the latter as it means that we do not need to
filter out specific protocols from lookup, like ‘jar’. Returning null just
falls back to searching the built-in handlers.
> I wonder if we need this here too. If the initialization of a
> URLStreamHandlerFactory is dependent on the deployment of another then it
> could be very tricky to diagnose as there isn't (yet) any control on the
> ordering.
I had not thought of that scenario, and I’m not sure how it would work, at
least with ServiceLoader. Do you think it is important ?
> I'd probably use isOverridable or canOverride for the method name.
I’ll update from overrideable(String) -> isOverridable(String)
> In the spi package-info.java then I assume it time that the second paragraph
> will need to change as there will be other provider interfaces.
Right. I think it is ok for now, and when additional providers are added it can
be updated then.
Thanks,
-Chris.
> -Alan.
>