How to access com.sun.webkit.network.CookieManager at JDK 10?

Kevin Rushforth kevin.rushforth at oracle.com
Fri Aug 24 14:18:34 UTC 2018


You probably already know this, but using internal interfaces is fragile 
and can change or break at any time and without notice.

-- Kevin


On 8/24/2018 7:11 AM, Nir Lisker wrote:
> Sorry, my reply was not phrased well. Whether you declare a
> module-info.java or not, you still have to add-exports either via command
> line or during runtime. What I meant with not needing to declare a
> dependency in module-info.java is that you don't need a 'requires' (or
> add-reads) because the unnamed module reads everything be default.
>
> So, in your case you need a command line "--add-exports
> javafx.web/com.sun.webkit.network=my.app.Test" (or the equivalent runtime
> code) and "requires javafx.web" in the module-info.java. The latter is
> what's not needed if you don't declare a module.
>
> - Nir
>
> On Fri, Aug 24, 2018 at 4:43 PM Miroslav Nachev <
> mnachev.nscenter.eu at gmail.com> wrote:
>
>> Now I adopted the application to be module, adding this:
>> module my.app.Test {
>>      requires controlsfx;
>>      requires javafx.base;
>>      requires javafx.controls;
>> }
>>
>> What is the next step?
>>
>>
>> On Fri, Aug 24, 2018 at 4:02 PM Nir Lisker <nlisker at gmail.com> wrote:
>>
>>> Hi Miro,
>>>
>>> Can I use the 2nd option with declaration in the source code, or the only
>>>> possible option is to pass as parameter when starting the application?
>>>>
>>> If your app is not a module then you don't have a module-info.java in
>>> your source code to declare the dependency. What you can do is export a
>>> package during runtime with the addExports method [1].
>>>
>>> [1]
>>> https://docs.oracle.com/javase/10/docs/api/java/lang/Module.html#addExports(java.lang.String,java.lang.Module)
>>>
>>> On Fri, Aug 24, 2018 at 12:38 PM Miroslav Nachev <
>>> mnachev.nscenter.eu at gmail.com> wrote:
>>>
>>>> Hi Arun,
>>>>
>>>> Thank you. I'm already using the first option, but then I need to access
>>>> other methods and classes that are not available.
>>>> Can I use the 2nd option with declaration in the source code, or the only
>>>> possible option is to pass as parameter when starting the application?
>>>>
>>>>
>>>> Miro.
>>>>
>>>> On Fri, Aug 24, 2018 at 12:04 PM Arunprasad Rajkumar <
>>>> arunprasad.rajkumar at oracle.com> wrote:
>>>>
>>>>> Hello Miro,
>>>>>
>>>>> CookieManager is a module private class, which is not exposed to
>>>> outside.
>>>>> I could think of two options,
>>>>>
>>>>> 1. com.sun.webkit.network.CookieManager is a type of
>>>>> java.net.CookieHandler, that means after instantiating WebEngine, you
>>>> can
>>>>> call CookieHandler.getDefault() to get the instance of CookieManager.
>>>>>          new WebEngine();
>>>>>          CookieHandler cookieHandler = CookieHandler.getDefault(); //
>>>> This
>>>>> will be an instance of com.sun.webkit.network.CookieManager
>>>>>
>>>>> 2. Export the module private implementation using
>>>>> "--add-exports=javafx.web/com.sun.webkit.network=ALL-UNNAMED”
>>>>>
>>>>> Thanks,
>>>>> Arun
>>>>>
>>>>>> On 24-Aug-2018, at 12:27 PM, Miroslav Nachev <
>>>>> mnachev.nscenter.eu at gmail.com> wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I have apps that work well on JDK8, but on JDK10 I do not have
>>>> access to
>>>>>> some classes, for example, com.sun.webkit.network.CookieManager. This
>>>>> class
>>>>>> is the only one, that is up to date (RFC 6265) and is part of Java.
>>>> The
>>>>>> java.net.CookieManager class is obsolete: RFC 2965. The Cookie
>>>> solution
>>>>> in
>>>>>> Apache HttpComponents is very complicated, difficult to use, and is
>>>>> mostly
>>>>>> not compatible with JDK and JavaFX.
>>>>>> In fact, I use JavaFX CookieManager in the following 3 scenarios:
>>>>>>
>>>>>>    - When using WebEngine (JavaFX 8).
>>>>>>    - JavaFX Desktop App to store frequently used words in text and
>>>> other
>>>>>>    fields (TextField, etc.).
>>>>>>    - To store session parameters in JavaFX Desktop Clients that uses
>>>> REST
>>>>>>    WS or Web Sockets to connect to the Web Server (App Server).
>>>>>>
>>>>>> Is there any way to enable access to
>>>> com.sun.webkit.network.CookieManager
>>>>>> at JDK 10?
>>>>>>
>>>>>>
>>>>>> Regards,
>>>>>> Miro.
>>>>>



More information about the openjfx-dev mailing list