--- old/modules/javafx.web/src/main/java/javafx/scene/web/WebEngine.java 2017-05-03 15:27:13.601615460 -0700 +++ new/modules/javafx.web/src/main/java/javafx/scene/web/WebEngine.java 2017-05-03 15:27:13.481615457 -0700 @@ -298,13 +298,34 @@ * * *

- * The Java class and method must both be declared public. If the class is in a - * named module, then the module must {@link Module#isOpen(String,Module) open} - * the containing package to at least the {@code javafx.web} module - * (or {@link Module#isExported(String) export} the containing package - * unconditionally). Otherwise, the method will not be called, and no error or + * The Java class and method must both be declared public. + *

+ * + *

Deploying an Application as a Module

+ *

+ * If any Java class passed to JavaScript is in a named module, then it must + * be reflectively accessible to the {@code javafx.web} module. + * A class is reflectively accessible if the module + * {@link Module#isOpen(String,Module) opens} the containing package to at + * least the {@code javafx.web} module. + * Otherwise, the method will not be called, and no error or * warning will be produced. *

+ *

+ * For example, if {@code com.foo.MyClass} is in the {@code foo.app} module, + * the {@code module-info.java} might + * look like this: + *

+ * +
{@code module foo.app {
+    opens com.foo to javafx.web;
+}}
+ * + *

+ * Alternatively, a class is reflectively accessible if the module + * {@link Module#isExported(String) exports} the containing package + * unconditionally. + *

* *

Threading

*

{@code WebEngine} objects must be created and accessed solely from the