On Fri, 14 Nov 2025 20:35:34 GMT, Alexey Semenyuk <[email protected]> wrote:
>> 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 JD... > > Alexey Semenyuk has updated the pull request incrementally with five > additional commits since the last revision: > > - Removed commented out code > - Fix typo and trailing whitespace > - Fix findings in the code review > - StandardValidator: expose > - Validator: formatting Pushed commits addressing all findings in the review. Additionally: - Fix minor code formatting issue in src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/Validator.java - Remove unreferenced keys from share\classes\jdk\jpackage\internal\resources\MainResources.properties ------------- PR Comment: https://git.openjdk.org/jdk/pull/28163#issuecomment-3534486280
