FeaturesPluginsDocs & SupportCommunityPartners

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.

Use Cases and Scenarios

Existing Java Application Project

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

Editing JNLP properties

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

Running a project using Java Web Start client

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

Specification

Application 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.

Java Web Start Customizer Panel

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.

Run Customizer Panel

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 JNLP Files

Editing of JNLP files will be supported by XML editor with syntax coloring and code completion.

Library Manager

Library Manager will contain prepared library called JNLP API, that will contain JNLP API (javax.jnlp.*).

JNLP File content

Following elements and atributes in JNLP file will be set either from UI or from project properties:
JNLP element or attributeValue
el: jnlp, attr: specdefault value 1.0+
el: jnlp, attr: codebaselocal dist folder under project folder or user provided string from Codebase text field
el: jnlp, attr: hreflink to jnlp file relative to codebase
el: titleuser provided string from Title text field
el: vendoruser provided string from Vendor text field
el: homepage, attr: hrefuser provided string from Homepage text field
el: descriptionuser provided string from Description text area
el: description, attr: one-linefirst sentence from Description text area
el: iconfile provided by user in Icon text field
el: icon, attr: splashfile provided by user in Splashscreen text field
el: offline-allowedwill be set according to Allow Offline checkbox
el: security, subel: all-permissionswill be present if user checks Sign JAR Files checkbox
el: j2se, attr: versionaccording to Source Level set for the project
el: j2se, attr: java-vm-argsaccording to VM args set in selected configuration
el: j2se, attr: initial-heap-sizevalue of property jnlp.initial-heap-size set in property file
el: j2se, attr: max-heap-sizevalue of property jnlp.max-heap-size set in property file
el: j2se, attr: hrefdefault location for downloading JRE
el: jar, attr: hrefjar 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-classmain class set in selected configuration

Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Open ESB - The Open Enterprise Service Bus Powered by