RFR: 8236919: Refactor com.sun.tools.javac.main.CommandLine into a reusable module for other JDK tools [v2]
Jonathan Gibbons
jjg at openjdk.org
Tue Nov 22 17:19:28 UTC 2022
On Tue, 22 Nov 2022 15:57:57 GMT, Christian Stein <cstein at openjdk.org> wrote:
>> This PR copies the `CommandLine.java` file from module `jdk.compiler` (package `com.sun.tools.javac.main`) into the `jdk.internal.opt` module, creating a new package with name `jdk.internal.opt`. That new `jdk.internal.opt` package is then exported to the following modules:
>> - `jdk.jartool`
>> - `jdk.jlink`
>> - `jdk.jpackage`
>>
>> Now, `jar`, `jlink`, and `jpackage` use a shared `CommandLine` class. In a future commit (presumable for JDK 21) the original `CommandLine.java` file in `jdk.compiler` can and will be replaced with this new one in `jdk.internal.opt`. Same goes for the `jdk.javadoc` module.
>>
>> - [x] Keep `CommandLine.java` in `jdk.compiler` module for the time being due to "JDK N-1 rule".
>> - [x] Keep `CommandLine.java` in `jdk.javadoc` module for the time being due to "JDK N-1 rule".
>> - [x] Remove `CommandLine.java` from `jdk.jartool` module
>> - [x] Remove `CommandLine.java` from `jdk.jlink` module
>> - [x] Remove `CommandLine.java` from `jdk.jpackage` module
>> - [x] Check for related but renamed(?) usages of `CommandLine.java` in other JDK tools: `jshell`, `jdeps`, `jfr`, ...
>
> Christian Stein has updated the pull request incrementally with one additional commit since the last revision:
>
> Remove superseded comment
Marked as reviewed by jjg (Reviewer).
src/jdk.internal.opt/share/classes/jdk/internal/opt/CommandLine.java line 49:
> 47: *
> 48: * <p><b>This is NOT part of any supported API.
> 49: * If you write code that depends on this, you do so at your own risk.</b>
I think this entire paragraph can be removed. It is "just" the "scary warning" meant to warn people about using not-really-public classes in javac, before we had a module system for the encapsulation.
-------------
PR: https://git.openjdk.org/jdk/pull/11272
More information about the core-libs-dev
mailing list