JDK-8093068 : Eliminate split packages across JavaFX modules
  • Type: Bug
  • Component: javafx
  • Sub-Component: other
  • Affected Version: 8
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2015-02-06
  • Updated: 2016-03-03
  • Resolved: 2015-02-07
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.
JDK 8
8u60Fixed
Related Reports
Blocks :  
Relates :  
Relates :  
Relates :  
Description
After removing the builders (see RT-39785) the following implementation packages are the only ones that appear in more than one module, thus violating the restriction that prohibits split packages:

com.sun.javafx (base, graphics)
com.sun.javafx.sg.prism (graphics, web)
com.sun.webkit.dom (graphics, web)

The split packages need to be eliminated by refactoring the classes to be in a different package (or, in the latter case, moving the one class in question to the web module, since that is where it belongs).

Comments
The webview part looks good to me (sorry for the later response).
13-02-2015

Note that I had to temporarily revert part 3 of this fix. See RT-40006 for details. I have filed RT-40007 to redo part 3.
07-02-2015

http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/47219ef639a0
07-02-2015

+1. Looks good to me. I have also verified clean build and sanity testing.
06-02-2015

Please review: http://cr.openjdk.java.net/~kcr/RT-40000/webrev.00/ 1. Refactored the graphics:com.sun.javafx package to com.sun.javafx.util (a new package). 2. Refactored the web:com.sun.javafx.sg.prism package to com.sun.javafx.sg.prism.web (a new package). 3. Moved the com.sun.webkit.dom.JSObject class to the web module, keeping it in the same package. All changes were done with NetBeans. I did a full, clean build / test run with the patch applied.
06-02-2015

Proposed fix: 1. Refactor the graphics:com.sun.javafx classes to move them to a different package in the graphics module This case is just accidental in that we have some general purpose utility classes that just happen to be in a 'com.sun.javafx' pacakge in both the base and graphics modules. We will likely resolve this by renaming the package in the graphics module, there are no package-scope methods, classes, or fields in the base:com.sun.javafx classes, so the refactoring will be trivial. 2. Refactor the one class in web:com.sun.javafx.sg.prism (NGWebView) to be a different package unique to the web module. There is already a similar example in media (NGMediaView) which is in a different package, so there should be no issues in moving the NGWebView class to be in a different package from the other other NG* classes in the graphics module. 3. Move the one class, graphics:com.sun.webkit.dom.JSObject, from the graphics module to the web module. This class is only used in the web module, so it looks like it was just a mistake to put this into the graphics module in the first place. I will confirm this.
06-02-2015

This is required for FX 9, but is best to just fix in 8u60 since we haven't forked 9 yet and there is no reason not to just do it in 8u.
06-02-2015