How to check for an internal class in another module from java.base?
Wang Weijun
weijun.wang at oracle.com
Tue Nov 1 15:29:28 UTC 2016
> On Nov 1, 2016, at 11:18 PM, Wang Weijun <weijun.wang at oracle.com> wrote:
>
>
>> On Nov 1, 2016, at 11:10 PM, Alan Bateman <Alan.Bateman at oracle.com> wrote:
>>
>>
>>
>> On 01/11/2016 15:02, Wang Weijun wrote:
>>> HTTP Negotiate uses
>>>
>>> Class.forName("sun.net.www.protocol.http.spnego.NegotiatorImpl", true, null);
>>>
>>> to check if the implementation in java.security.jgss module is provided. It looks like this call is throwing a ClassNotFoundException now. Shall I export the package to java.base or is there any other trick? I remember there used to be an addReads method but seems no one is using it now.
>>>
>>> Or I must use a service loader?
>>>
>> This is just visibility. The jdk.security.jgss module is defined to the platform class loader but but you have specified "null" (= bootstrap class loader) to Class.forName.
>
> Wow. I changed it to ClassLoaders.platformClassLoader() and it runs.
>
>>
>> There is an issue in JIRA to track change the HTTP protocol handler to use services for authentication mechanism, I don't think anyone has had time to work on that yet.
>
> So before making this big change, do you think I can make the small change above to make them at least start working?
i forgot i also exported the internal package to java.base. that is ugly.
thanks
max
p.s. have to use only hand so the other hand can grab my daughter.
>
> Thanks
> Max
>
>>
>> -Alan.
>
More information about the jigsaw-dev
mailing list