> Use "JOpt Simple" from > [jdk.internal.joptsimple](https://github.com/openjdk/jdk/tree/master/src/jdk.internal.opt/share/classes/jdk/internal/joptsimple) > package to parse jpackage command line. > > All command-line parsing code is placed in a new "jdk.jpackage.internal.cli" > package with 92% unit test coverage. > > ### Error reporting improved > > 1. In case of multiple command-line errors, all are reported, unlike > previously, only the first one was reported. > > Command line (Windows): > > jpackage --linux-shortcut --mac-package-name foo -p m1 --linux-menu-group grp > -p m2 --app-image dir > > Old error output: > > Error: Option [--linux-shortcut] is not valid on this platform > > > New error output: > > Error: Option [--linux-shortcut] is not valid on this platform > Error: Option [--mac-package-name] is not valid on this platform > Error: Option [-p] is not valid with type [exe] > Error: Option [--linux-menu-group] is not valid on this platform > > > 2. Fix misleading error messages. > > Command line (Windows): > > jpackage --input no --main-jar no.jar > > Old error output: > > jdk.jpackage.internal.model.ConfigException: The configured main jar does not > exist no.jar in the input directory > > > New error output: > > The value "no" provided for parameter --input is not a directory > > > > > ### Help output fixed > > Options in the original help output were out of order. On macOS, options were > placed in wrong sections. There were trailing whitespaces. > > The old help output is captured in the > cd7bca2bb665556f314170c81129ef53de91f135 commit. > > The reordered and filtered old help output is captured in the > 10dc3792e6896cfa4bbe8693ee33e4c5df45d952 commit. > > Help output in this PR is captured in the > 58c2d944e2e14b1cf35786162ad2a5f9a8ccfee6 commit. Use it to see the diff > between the new and old filtered and reordered help output. > > ### Functional changes > > Old tool provider implementation > [jdk.jpackage.internal.JPackageToolProvider](https://github.com/openjdk/jdk/blob/5fccabff15ae8bcc3d03156fa331bbc0fefb0cbe/src/jdk.jpackage/share/classes/jdk/jpackage/internal/JPackageToolProvider.java#L48) > had lousy thread-safety protection that didn't work when multiple instances > of jpackage tool provider are created and invoked asynchronously. This patch > fixes this issue. It is safe to invoke the same jpackage tool provider > instance asynchronously, and also safe to invoke multiple instances of > jpackage tool provider. > > Like other JDK tools, jpackage will print help output if the `-?` option is > specified on the command line. > > In addition to `--opt...
Alexey Semenyuk has updated the pull request incrementally with one additional commit since the last revision: MainResources.properties: remove unreferenced L10N key ------------- Changes: - all: https://git.openjdk.org/jdk/pull/28163/files - new: https://git.openjdk.org/jdk/pull/28163/files/0448168a..f7de2646 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=28163&range=05 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=28163&range=04-05 Stats: 4 lines in 1 file changed: 0 ins; 4 del; 0 mod Patch: https://git.openjdk.org/jdk/pull/28163.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/28163/head:pull/28163 PR: https://git.openjdk.org/jdk/pull/28163
