RFR: JDK-8212780: JEP 343: Packaging Tool Implementation

Kevin Rushforth kevin.rushforth at oracle.com
Thu Oct 25 13:09:09 UTC 2018

Andy added the a comment [1] to the JEP with the command line options. 
I'll format it and add it to the JEP itself soon, but until then you can 
see it in the comments to help you review it.

The tests will come shortly (Andy can comment on the state of this). 
They will be a mix of automated tests and (especially for the 
installers) manual tests.

The module with the API is meant to be a small runtime module that would 
be jlinked in with the application (whereas the tool itself typically 
wouldn't be). The working name is jdk.packager.services (inherited from 
javapacakger). An alternative name we had considered was 
jdk.packager.runtime? Or maybe jdk.packager.support? Do you have any 

The exported package is named jdk.packager.services.singleton, since the 
singleton app feature is the only one that currently needs runtime 
support. The intention would be to add other packages as new features 
that require runtime support are added in the future (e.g., daemon 
services or JRE argument support). We haven't given any thought to 
alternative names, other than if we change the module name to something 
like jdk.packager.runtime, we would likely want to use that to inform 
the name of the package. Do you have any recommendations?

Perhaps we can discuss the JNLPConverter demo in a separate thread, 
since I see Erik raised a similar question?

Andy can reply to anything I missed or to clarify further.

-- Kevin


On 10/24/2018 7:22 AM, Alan Bateman wrote:
> On 23/10/2018 16:49, Andy Herrick wrote:
>> This patch implements the Java Packager Tool (jpackager) as described 
>> in JEP 343: Packaging Tool 
>> <https://bugs.openjdk.java.net/browse/JDK-8200758>
>> jpackager is a simple packaging tool, based on the JavaFX 
>> |javapackager| tool, that:
>>  * Supports native packaging formats to give the end user a natural
>>    installation experience. These formats include |msi| and |exe| on
>>    Windows, |pkg| and |dmg| on MacOS, and |deb| and |rpm| on Linux.
>>  * Allows launch-time parameters to be specified at packaging time.
>>  * Can be invoked directly, from the command line, or programmatically,
>>    via the |ToolProvider| API.
>> Webrev:
>> http://cr.openjdk.java.net/~herrick/8212780/webrev.01/
> cc'ing build-dev as it's important to get it reviewed there.
> What is the plan for tests to go with this tool? I see there is one 
> test in the webrev to do some argument validation but I don't see 
> anything else right now.
> What is the status of the JNLPConverter tool? I see it is included as 
> a "demo" but maybe it would be better to host somewhere else as this 
> is for developers migrating Java Web Start applications.
> Would it be possible to update the JEP with all the CLI options? That 
> would be useful for review and also useful for those invoking it with 
> the ToolProvider API.
> If I read the webrev correctly then it adds two modules, one with the 
> jpackager tool and the other with an API. It would be useful to get a 
> bit more information on the split. Also I think the name of the API 
> module and the package that it exports needs discussion to make sure 
> that the right names are chosen.
> -Alan

More information about the core-libs-dev mailing list