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...@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 <nlis...@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...@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.rajku...@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...@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.


Reply via email to