On 11/04/2020 14:20, Sean Mullan wrote:
On 4/11/20 6:31 AM, Weijun Wang wrote:
If the rule is that an API must be labeled forRemoval=true before it's really 
removed, then I cannot remove them in JDK 15.

Here is what JEP 277 [1] says:

    The following elements are to be added to the java.lang.Deprecated 
annotation type:

    A method forRemoval() returning a boolean. If true, it means that this
    API element is earmarked for removal in a future release. If false, the
    API element is deprecated, but there is currently no intention to remove
    it in a future release. The default value of this element is false.

Since these are JDK and not standard SE APIs, maybe we don't have to abide by that, but I think as a best practice we probably should. You could check with Joe Darcy and Stuart Marks if you want to be more sure.

There is a JDK-specific API and command line options on the table here. Removing these without notice may surprise some. For the APIs then you could terminally deprecate them in JDK 15 and remove them in a future release. I don't think JEP 277 has been updated to provide guidance in the context of the new release cadence so use your best judgement (JDK 16 might be too soon to remove). As regards the CLI options then you could add a warning to jarsigner so that anyone using this tool with existing content signers (compiled for JDK 8 for example) has some chance of seeing that the options will be going away in the future.

-Alan.

Reply via email to