Java Web Start UI Specification
Author: Milan Kubec
$Revision: 1.15 $
$Date: 2007/05/25 09:46:57 $
The specification will describe UI of module for supporting Java Web Start technology.
UI is tightly integrated with existing Java Project infrastructure.
User already has a Java Application project and wants to make it Web Start enabled.
Scenario:
- User opens Project Properties and explicitly invokes action that enables Java Web Start support, no other action is required
- JNLP file is generated during Build Project action. Required properties are taken from the project properties (main.class, run.classpath, ...)
- User is able to run and debug the project as regular Java Application Project and also
is able to run and debug the project using Java Web Start on the desktop
Related figures to this scenario: Java Web Start Customizer Panel
User wants to edit JNLP Properties to customize JNLP deployment
Scenario:
-
User opens Project Properties on panel Application or Packaging where it's possible to edit selected JNLP properties. Other properties
are defined by project properties or have default values.
Related figures to this scenario: Java Web Start Customizer Panel
User wants to execute and debug a project using Java Web Start client
Scenario:
- User selects a Java Application project and Configuration that uses Java Web Start execution
- User invokes actions Run and Debug, application is executed using javaws client
Related figures to this scenario: Run Customizer Panel
General information about the project are on separate panel under category Application.
The information is shared in all subcategories.
Figure: General Application Information Customizer Panel of Java Project Application
Components:
-
Title is name of the application that will be presented to user
when downloading the application. Will be pre-set to name of the Java Project.
-
Vendor is presented to user when downloading the application.
Will be pre-set to username.
-
Description, Homepage and Splash Screen will be empty by default. If Description
contains more sentences, the first one can be used as one-line description for Web Start. Description provided by user will be without
atribute in jnlp file or it can have attribute short. Splash screen image will be used also as java application splash screen defined
in jar file (JDK 6 feature).
All data in this panel can be set as info about the application without being used in Web Start module.
Figure: Java Web Start Customizer Panel of Java Project Application
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, Web Application deployment, HTTP deployment.
The text field under the combo box will show local file URL for the Local execution (non-editable). For
Web Application deployment it will show $$codebase (non-editable). And for HTTP deployment it will show
editable empty space for user to provide own codebase for deployment. Question mark will show tooltip
like hint about all three options.
-
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.
Signing of the jar files will be done differently once there is integration with Security manager: (this version is not part of NB 6.0)

Components:
-
Do not Sign (JAR Signing) radiobutton says that no JAR files will be signed.
Sign with Keystore radiobutton says the JARs will be signed with selected keystore. Keystore management
will be done by Security Manager known from J2ME (see RFE #89177), where user can create keystores and keys for signing.
Enabling signing of JAR files automaticaly generates element security with subelement all-permissions.
Figure: Java Application Project Run Panel with Configurations
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 and debug the project using Java Web Start client.
Default Java Web Start configuration will be created for the Java Project by enabling Java Web Start and will be selected for given project.
Editing of JNLP files will be supported by XML editor with syntax coloring and code completion.
Library Manager will contain prepared library called JNLP API, that will contain JNLP API (javax.jnlp.*).
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, without javaws.jar; download=eager for all jars; main=true for jar created by the project |
| el: application-desc, attr: main-class | main class set in selected configuration |