JDK-8267535 : Remove the css Selector and ShapeConverter constructors
  • Type: CSR
  • Component: javafx
  • Sub-Component: scenegraph
  • Priority: P4
  • Status: Closed
  • Resolution: Approved
  • Fix Versions: openjfx17
  • Submitted: 2021-05-21
  • Updated: 2021-05-26
  • Resolved: 2021-05-26
Related Reports
CSR :  
Description
Summary
-------
Remove the deprecated public constructors javafx.css.Selector and javafx.css.converter.ShapeConverter

Problem
-------

- Constructor for class javafx.css.Selector was deprecated for removal in openjfx16. It needs to be removed in openjfx17.
- Constructor for class javafx.css.converter.ShapeConverter was deprecated for removal in openjfx16.  It needs to be removed in openjfx17.


Solution
--------

 - Constructor for class javafx.css.Selector is made package scoped as it is only extended by classes in the same package.
 - Constructor for class javafx.css.converter.ShapeConverter is made private as it is a singleton class. No javadoc is needed for this simple private constructor.


Specification
-------------

     abstract public class Selector {
     
         /**
    -     * @deprecated This constructor was exposed erroneously and will be removed in the next version. Use {@link #createSelector(String)} instead.
    +     * Package scoped constructor.
          */
    -    @Deprecated(since="16", forRemoval=true)
    -    public Selector() {
    +    Selector() {
         }
    
     
    public class ShapeConverter extends StyleConverter<String, Shape> {
     
    -    /**
    -     * @deprecated This constructor was exposed erroneously and will be removed in the next version. Use {@link #getInstance()} instead.
    -     */
    -    @Deprecated(since="16", forRemoval=true)
    -    public ShapeConverter() {
    +    private ShapeConverter() {
         }




Comments
Moving to Approved.
26-05-2021

Moving to Provisional.
26-05-2021

[~kcr] Thanks for having a look at this. I have modified the Specification to show the removed lines (marked with -) and added lines (marked with +) in the two classes. I have copy pasted from the diffs.
21-05-2021

Package-scoped constructors and methods aren't specification, since it isn't part of the generated API docs (only public and protected methods are part of the API). In this case, the Specification should list the removed public constructors, possibly by pasting the diffs. The rest looks good to me.
21-05-2021