JavaFX Plugin - Web Start Specification
| Document Status | Initial Draft |
Introduction
Java Web Start provides a way to package a JavaFX application in a platform-independent way using the JNLP protocol, publish updates of the application on a web server, and enable both signed applications with unrestricted access as well as unsigned applications in a secure sandbox.
The project properties dialog let the user Enable Web Start and configure Web Start properties.
Java Web Start Customizer Panel
Components:
- Enable Java Web Start checkbox will enable Java Web Start support for the project.
- Icon is used to represent webstartable application e.g. on desktop or in a menu. Will be empty by default.
- Codebase combobox will offer three values: Local execution, HTTP deployment. The text field under the combo box will show local file URL for the Local execution (non-editable). And for HTTP deployment it will show editable empty space for user to provide own codebase for deployment.
- Allow Offline checkbox set if the application can be run without network connection.
- Self-signed checkbox means that project will be signed with self-signed certificate, that is generated during the project build. Keystore is stored in nbproject/build folder, default alias is "nb-jws", storepass is "storepass" and keypass is "keypass". All other dependent jar files are signed with the same certificate as the main jar file as long as they are not already signed. If dependent jar files are already signed by different certificate then special jnlp (component) file is created for each such jar file and reference to that file is included in main jnlp file (called launch.jnlp) instead of the jar file itself. Special component files are stored along with main jnlp file.
- Compress JARs with Pack 200 checkbox means that created JARs will be compressed with Pack 200.
Run Customizer Panel
Figure shows current customizer panel with added control for enabling execution using javaws client.
Components:
- Run with Java Web Start check box will be enabled only if the project is Java Web Start enabled. By checking it selected configuration will run the project using Java Web Start client.
Default Java Web Start configuration will be created for the Java FX Project by enabling Java Web Start and will be selected for given project.
JNLP File Content
Following elements and atributes in JNLP file will be set either from UI or from project properties:
| JNLP Element or attribute | Value |
| el: jnlp, attr: spec | default value 1.0+ |
| el: jnlp, attr: codebase | local dist folder under project folder or user provided string from Codebase text field |
| el: jnlp, attr: href | link to jnlp file relative to codebase |
| el: title | user provided string from Title text field |
| el: vendor | user provided string from Vendor text field |
| el: homepage, attr: href | user provided string from Homepage text field |
| el: description | user provided string from Description text area |
| el: description, attr: one-line | first sentence from Description text area |
| el: icon | file provided by user in Icon text field |
| el: icon, attr: splash | file provided by user in Splashscreen text field |
| el: offline-allowed | will be set according to Allow Offline checkbox |
| el: security, subel: all-permissions | will be present if user checks Sign JAR Files checkbox |
| el: j2se, attr: version | according to Source Level set for the project |
| el: j2se, attr: java-vm-args | according to VM args set in selected configuration |
| el: j2se, attr: initial-heap-size | value of property jnlp.initial-heap-size set in property file |
| el: j2se, attr: max-heap-size | value of property jnlp.max-heap-size set in property file |
| el: j2se, attr: href | default location for downloading JRE |
| el: jar, attr: href | jar file according to project run classpath; download=eager for all jars; main=true for application jar |
| el: application-desc, attr: main-class | main class |
| el: application-desc, subel: argument | extra arguments |
Other
TBD