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`, ...

-------------

Commit messages:
 - 8236919: Delete superseded `CommandLine` classes
 - 8236919: Refactor com.sun.tools.javac.main.CommandLine into a reusable 
module for other JDK tools

Changes: https://git.openjdk.org/jdk/pull/11272/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=11272&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8236919
  Stats: 514 lines in 10 files changed: 35 ins; 472 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/11272.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/11272/head:pull/11272

PR: https://git.openjdk.org/jdk/pull/11272

Reply via email to