Find JSRs
Submit this Search


Ad Banner
 
 
 
 



JNLP Specification version 6.0 change log

This change log represents the proposed changes to The Java Network Launching Protocol (JNLP) from version 1.5.0 to version 6.0

  1. To allow implementation of a flexible update policy

  • Change the table of contents, to insert a section 3.6 called “Application Updates”.

  • Modify Section 3, to insert the following section, and to renumber the current sections 3.6 and above.

    3.6 Application Update

update element: The update element is used to indicate the preferences for how application updates should be handled by the JNLP Client. The update element can contain the following two optional attributes:

check attributes: The check attribute indicates the preference for when the JNLP Client should check for updates, and can have one of the three values: "always", "timeout", and "background".

A value of "always" means to always check for updates before launching the application.

A value of "timeout" (default) means to check for updates until timeout before launching the application. If the update check is not completed before the timeout, the application is launched, and the update check will continue in the background.

A value of "background" means to launch the application while checking for updates in the background.

policy attributes: The policy attribute indicates the preference for how the JNLP Client should handle an application update when it is known an update is available before the application is launched, and can have one of the following three values: "always", "prompt-update", and "prompt-run".

A value of "always" (default) means to always download updates without any prompt.

A value of "prompt-update" means to ask the user if he/she wants to download and run the updated version, or launch the cached version.

A value of "prompt-run" means to ask the user if he/she wants to download and run the updated version, or cancel and abort running the application.

For example:

<update check="always" policy="prompt-update"/>
  • Modify the DTD in Appendix C to include the update element in the list of jnlp sub-elements

    <!ELEMENT jnlp (information+, security?, update?, resources*, (application-desc | applet-desc | component-desc | installer-desc))>

  • Modify the DTD in Appendix C to include the update element and it's attributes.

<!--
The update element contains the applications preference for application update.
-->

<!ELEMENT update>

<!--
The check attribute of the update element indicates the applications preference for when to check for updates.
-->

<!ATTLIST update check (always | timeout | background) "timeout">

<!--
The policy attribute of the update element indicates the applications preference for what to do when updates are available.
--><

!ATTLIST update policy (always | prompt-update | prompt-run) "always">

  1. To allow the DownloadService api's to access resources that are not listed in the jnlp file, but are resident within the same codebase.

  • Modify text in section 7.2 to replace the third, forth and sixth paragraphs with the following three paragraphs

The following three query methods return true if a given resource, a given part, or a given part of a given extension is currently cached, respectively. In an untrusted environment, these methods must always return false for resources that are not from the codebase of current application, and are not mentioned in the JNLP file(s) of the application.

The following three methods instruct the JNLP Client to download a given resource, a given part, or a given part of a given extension, respectively. The methods block until the download is completed or an error occurs. In an untrusted environment, these methods must always fail for resources that are not from the codebase of current application, and are not mentioned in the JNLP file(s) of the application.

The following three methods instruct the JNLP Client to remove a given resource, a given part, or a given part of a given extension from the cache, respectively. The remove request is a hint to the JNLP Client that the given resource is no longer needed. In an untrusted environment, these methods must do nothing if a resource is not from the codebase of the current application, and is not mentioned in the JNLP file(s) of the application.

  1. To allow jnlp file to specify icon and description sub-elements of an association element.

  • Modify section to contain the following definition of the association element:

association element: The optional association element is a hint to the JNLP client that it wishes to be registered with the operating system as the primary handler of certain extensions and a certain mime-type. The association element must have the extensions and mime-type attributes, and may contain the two optional sub elements description, and icon.

description element: A short discription of the association.

icon element: The icon can be registered with the operating system as the default icon for items of this mime-type

  • Modify the DTD in appendix c to include these sub-elements of an association element

<!ELEMENT association (description?, icon?)>

  1. To clarify that the default sandbox is the default set of permissions granted to an untrusted app, and that the jnlp client may extend that set with the users permission.

  • Add a paragraph at the end of section 5.5 to make this clarification:

The sandbox environment described above is also the default initial set of permissions granted to an untrusted application or applet. The JNLP Client may allow the user to grant additional permissions interactivly. For example, the JNLP Client may intercept requests for printer access, socket connections, or clipboard access in the Security Manager, and display dialogs asking the user to grant such additional permissions.

  1. To fix typos in the document, and make certain other clarifications.

  • Change the DTD section C.1 to the following:

<!DOCTYPE jnlp PUBLIC "-//Sun Microsystems, Inc//DTD JNLP Descriptor 6.0//EN">
  • Fix the definition of related-content element in the DTD to only allow one description and icon:

<!ELEMENT related-content (title?, description?, icon?)>

  • In section 4.1, replace “In This Section” with “below”, and remove the nonexistant “part” element from the example:

The resources element has 6 different possible subelements: jar, nativelib, j2se, property, package, and extension. These are all described in detail below.

A resources definition can be restricted to a specific operating system, architecture, or locale using the os, arch, and locale attributes. For example:

<resources>
  <j2se version="1.2"/>
  <jar href="lib/myjar.jar" version="1.2"/>
  <extension
    name="coolaudio" version="1.0"
    href="http://www.mysite.com/ext/coolaudio">
  </extension>
  <property name="key1" value="value1"/>
  <property name="key2" value="value2"/>
</resources>
<resources os="SunOS">
  <jar href="lib/motif-plaf.jar"/>
</resources>
  1. To add the new jnlp element <java> to replace <j2se> for declaring the java version to use, and reflecting the name change of java from "Java 2 Standard Edition" or "J2SE" to "Java[TM] Standard Edition" or "Java[TM] SE", and to update various examples.

  • in section 0:

Change "http://java.sun.com/j2se" to "http://java.sun.com/javase" (twice).

Change "http://java.sun.com/j2se/1.5.0/" to "http://java.sun.com/javase/6".

  • in section 0.3:

Change "Java 2 Platform Standard Edition (J2SE)" to "Java Platform, Standard Edition".

Change "http://java.sun.com/j2se/" to "http://java.sun.com/javase" (twice).

Change "Java 2 Platform Enterprise Edition (J2EE)." to "Java Platform, Enterprise Edition."

Change "http://java.sun.com/j2ee/" to "http://java.sun.com/javaee" twice).

  • in section 1:

Change "Java 2 Technology-based applications." to "Java applications".

  • in section 1.1:

Change "Java 2 Platform (JRE)" to "Java Runtime Environment (JRE)"

  • in section 1.2.1:

Change "Java 2 platform" to "JRE".

  • in section 1.3:

Change "Java 2 Platform Standard Edition" to "JRE"

  • in section 1.4:

Change "<j2se version=" to "<java version=".

Change "Java 2 platform" to "Java platform".

  • in section 1.5:

Change "Java 2 SE" to "Java Platform, Standard Edition".

  • in section 2:

Change "Java 2 Standard Edition" to "Java Platform, Standard Edition".

Change "e.g., 1.2." to "e.g., 1.6.0.".

Change the sentence: “For example, "1.2.2* 1.3.0" is a Version string that will match the version-id's 1.2.2-w, 1.2.2.0, 1.3.0, and so forth.” to “For example, "1.5.0* 1.6.0" is a Version string that will match the version-id's 1.5.0, 1.5.0_01, 1.5.0_02, ..., and 1.6.0.”

  • in section 3.8.1:

Change "<j2se " to "<java ".

  • in section 4.1:

Change "6" to "7", and insert "java, " before "j2se, ".

In the example change '<j2se version="1.2"/>' to '<java version="1.6"/>'.

  • in section 4.6:

Change "The j2se element" to "The java element (or the j2se element)".

Change "Java 2 SE Runtime Environment (JRE)" to "Java Runtime Environment (JRE)".

Change (in the example) "j2se" to "java" (three times).

Change "j2se" to "java" in the two sentences following the example.

Add sentence before version attribute: "The j2se element can be used interchangeably with java element for backward compatibility."

Change "j2se element" to "java element" (three more times).

  • in section 4.6.1:

Change example from '<j2se version="1.2"/>' to '<java version="1.6"/>'.

Change example from <j2se href="http://java.sun.com/products/j2se" version="1.2.2+"/> to <java href="http://java.sun.com/products/autodl/javase" version="1.6+"/>

  • in section 4.6.2:

Change example from: <j2se href="http://java.sun.com/..." version="1.2.2-w"> to <java href="http://java.sun.com/..." version="1.4.2_07">, and change <j2se version="1.3" initial-heap-size="64m"/> to <j2se version="1.6" initial-heap-size="64m"/>

Change "Sun's Java 2 SE JRE, version 1.2.2-w" to "Sun's JRE, version 1.4.2_07".

Change "the Java 2 platform, version 1.3" to "the Java Platform, Standard Edition, version 6"

Change "j2se element" to "java element". (twice).

Change "Sun's 1.2.2-w JRE" to "Sun's 1.4.2_07 JRE".

  • in section 6:

Change "j2se" to "java" (in table).

  • in section 6.1.2:

Change "j2se" to "java" (in table).

  • in section 6.4:

Change "j2se element" to "java element" (in table).

Change "The j2se element contains" to "The java element contains".

Change '<j2se version="1.3"' to '<java version="1.3"'(twice).

  • in Appendix C:

In resource element:

Change "j2se | jar | nativelib" to "java | j2se | jar | nativelib".

Before the j2se element insert the java element and all of it's attributes as follows:

<!-- The java element describes a supported JRE version and an optional resources element to be used by the particular JRE.-->

<!ELEMENT java (resources*)>

<!-- The version attribute of the java element describes the versions of the JRE that this application is supported on. -->

<!ATTLIST java version CDATA #REQUIRED>

<!-- The href attribute of the java element specifies the location where the JRE should be downloaded from. -->

<!ATTLIST java href CDATA #IMPLIED>

<!-- The initial-heap-size attribute of the java element specifies the initial size of the object heap. -->

<!ATTLIST java initial-heap-size CDATA #IMPLIED>

<!-- The max-heap-size attribute of the java element specifies the preferred maximum size of the object heap. -->

<!ATTLIST java max-heap-size CDATA #IMPLIED>

<!-- The java-vm-args attribute of the java element specifies a preferred set of virtual machine arguments to use when launching java.-->

<!ATTLIST java java-vm-args CDATA #IMPLIED>