JDK-8089907 : [FXML] Replace legacy WebViewBuilder with more generic builder class
  • Type: Enhancement
  • Component: javafx
  • Sub-Component: fxml
  • Affected Version: 9
  • Priority: P3
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2015-02-11
  • Updated: 2018-09-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdUnresolved
Related Reports
Blocks :  
Description
This is a follow-on to RT-39785.

The fix for RT-39785 removed the legacy builders "module" (which wasn't a proper module anyway, since it violated the prohibition against split packages across modules). The one special case where the old legacy builders are still being used is in FXMLLoader when a WebView object is loaded from a .fxml file. JavaFXBuilderFactory forces the use of the legacy WebViewBuilder class to take advantage of the fact that WebViewBuilder provides setters for some properties from WebEngine, and delegates those properties to an instance of WebEngineBuilder constructed by the WebViewBuilder in its build() method.

For RT-39785 I implemented the brute-force solution of moving the existing WebViewBuilder, ParentBuilder, NodeBuilder, and WebEngineBuilder classes to an internal package in the web module, and continuing to use them only when a WebView class is encountered during fxml parsing.

These remaining legacy builder classes need to be replaced by JavaFXWebViewBuilder (a stub for this class was added as part of the fix for RT-39785) both for further cleanup, and more importantly so that fxml can recognize any new properties in Node or WebView without having to add explicit builder code in the legacy builder classes.
Comments
See JDK-8092861 for more information. The stub class that can be used as a starting point is: modules/web/src/main/java/com/sun/javafx/fxml/builder/web/JavaFXWebViewBuilder.java
07-08-2015