RFR: 8288838: jpackage: file association additional arguments

Alexey Semenyuk asemenyuk at openjdk.org
Mon Jun 27 18:01:40 UTC 2022


On Tue, 21 Jun 2022 09:30:30 GMT, Alex Kasko <akasko at openjdk.org> wrote:

> jpackage implementation of file association on Windows currently passes a selected filename as an only argument to associated executable.
> 
> It is proposed to introduce additional option in file association property file to allow optionally support additional arguments using `%*` batch wildcard.
> 
> Note, current implementation, while fully functional, is only a **DRAFT** one, it is not ready for integration in this form. I would appreciate any guidance on the following points:
> 
>  - option naming inside a properties file, currently `pass-all-args` is used
>  - option naming in a bundler parameter implementation, it is not clear if it should introduce a new group of "file association windows specific options" next to the existing "file association mac specific options" group
>  - test organization to cover the new option: currently it is included inside `FileAssociationTest` and piggybacks on the existing (and unrelated) `includeDescription` parameter; it is not clear whether it should be done in a separate test and whether to include runs for every parameter combination
>  - test run implementation: currently arguments are checked when a file with associated extension is invoked from command line; it is not clear whether it would be more appropriate instead to create a desktop shortcut with the same command as a target and to invoke it with `java.awt.Desktop`
> 
> Also please note, that full install/uninstall run is currently enabled in `FileAssociationTest`, it is intended to be used only in a draft code during the development and to be removed (to use the same "install or unpack" logic as other tests) in a final version.
> 
> Testing:
>  
> - [x] test to cover new logic is included
> - [x] ran jtreg:jdk/tools/jpackage with no new failures

src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WixAppImageFragmentBuilder.java line 533:

> 531:                 xml.writeAttribute("Command", "Open");
> 532:                 if (fa.passAllArguments) {
> 533:                     xml.writeAttribute("Argument", "\"%1\" %*");

Wondering if simple `"%*"` would be sufficient to preserve arguments with spaces.

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

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


More information about the core-libs-dev mailing list