JDK-8155757 : Encapsulate impl_ methods in animation, canvas, image, input, layout, paint, and text packages
  • Type: Enhancement
  • Component: javafx
  • Sub-Component: graphics
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2016-04-29
  • Updated: 2016-05-14
  • Resolved: 2016-05-12
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.
Related Reports
Blocks :  
Relates :  
This is to make JDK-8144585 more manageable and easier for reviewer by breaking it into pieces of work. This work is to fix the remaining straightforward encapsulation work in a number of smaller packages before we address the challenging ones in transform, stage and scene packages.
Changeset: 2d7d51e9a9ac Author: ckyang Date: 2016-05-11 21:16 -0700 URL: http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/2d7d51e9a9ac

Version .02 looks good +1

1) Moved FontHelper class from com.sun.javafx.text to the com.sun.javafx.scene.text package as suggested 2) Clean up all XXXHelper classes that were touched in this change to use Utils.forceInit(). 3) Passed dev-build-full run with and without JIGSAW_HOME set Here is webrev.02: http://cr.openjdk.java.net/~ckyang/JDK-8155757/webrev.02/index.html And here is the delta between webrev.01 and webrev.02 http://cr.openjdk.java.net/~ckyang/JDK-8155757/webrev01-02.diff/

* Note that if you move the FontHelper class to the com.sun.javafx.scene.text package (which is where it logically belongs) then you won't need any additional qualified exports. One other comment on the .01 webrev: * The following in the new Helper classes can be replaced with calls to Utils.forceInit, which you created for this purpose. private static void forceInit(final Class<?> classToInit)

You will need additional qualified exports in (at least) the module-info.java for the javafx.graphics module since UI controls programs fail without it when your patch is applied and run in Jigsaw mode with a local build of the JDK. Also, you will likely need additional addExports for testing (in module/*/src/test/addExports).

Here is the revised version that makes impl_XXXX methods from public to package scope rather than private when possible. http://cr.openjdk.java.net/~ckyang/JDK-8155757/webrev.01/index.html

This webrev will fix all impl_ methods in the classes of those packages listed in the summary except classes that extend from Node and GridPane where we have plan to make the methods as public API ( JDK-8091874 ): http://cr.openjdk.java.net/~ckyang/JDK-8155757/webrev.00/ I have done a complete full-build run on Windows with this webrev.