> 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 with a new target base due to a 
merge or a rebase. The incremental webrev excludes the unrelated changes 
brought in by the merge/rebase. The pull request contains 56 additional commits 
since the last revision:

 - AsyncTest: call javac and jar tool providers only once for all async 
jpackage invocations instead of per each of them
 - Merge branch 'master' into JDK-8333727
 - the cli: Options: add copyWithDefaultValue(WithOptionIdentifier withId, 
Supplier<Object> valueSupplier)
 - PackageType: minor
 - "main.option." -> "help.option."
 - StandardValidator: rename IS_EXISTENT_NOT_DIRECTORY into IS_FILE_OR_SYMLINK.
 - Removed commented out code
 - Fix typo and trailing whitespace
 - Fix findings in the code review
 - StandardValidator: expose
 - ... and 46 more: https://git.openjdk.org/jdk/compare/1f94aae3...bee331c4

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/28163/files
  - new: https://git.openjdk.org/jdk/pull/28163/files/862285d6..bee331c4

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=28163&range=07
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=28163&range=06-07

  Stats: 180068 lines in 1231 files changed: 122174 ins; 27892 del; 30002 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

Reply via email to