Find JSRs
Submit this Search

Ad Banner

This is the proposed change log for a Maintenance Review of JSR-056 version 8.20

The proposed new version number will be 8.20

Change 1 - bump the specification version number to 8.20

In the title page (index.html) replace section 0 Preface with:

This document, the Java? Network Launching Protocol and API Specification, v8.20, is also known as the JNLP Specification. In addition to this specification, the Java Network Launching API has Javadoc documentation (referred to as the JNLP API Reference, v8.20) and a reference implementation for public download at the following location:

The reference implementation provides a behavioral benchmark. In the case of a discrepancy, the order of resolution is this specification, then the JNLP API Reference, v8.20, and finally the reference implementation.

Change 2 - add this revision history to section 0.7:

Add section 0.7.7 as follows:

0.7.7 Changes since release 7.0

This is a minor update of the version 7.0 specification. The changes are described below:

?        Modify section 5.5 to remove the second line in the table, socketPermissions.

?        Modify Section 4.3.1 Use of Manifest Files.

?        Modify section 3.5, and the DTD in section Appendix C to remove obsolete ?platform? attribute

?        Modify the DTD in section Appendix C to remove requirement that all information elements contain a vendor sub-element.


This revision introduces the version number (8.2) for the JNLP file and the JNLP API. Version 8.2 is a proper superset of version 1.0, and of version 7.0. A JNLP Client implementing this specification must be able to run a JNLP file which requires 1.0, 1.5, 6.0, 6.0.10, 6.0.18, 7.0, or 8.2; i.e., the spec attribute in the jnlp element is set to any of 1.0, 1.5, 6.0, 6.0.10, 6.0.18, 7.0 or 8.2.

A complete list of changes for v8.2 can be found at:

?        {include URL to where this change log is posted on}

Change 3 ? remove requirement for SocketPermission in untrusted environments.

In section 5.5, remove the second line of the table:


Change 4 ? remove requirement for JNLP Client to ignore unlisted Manifest Attributes .

Replace section 4.3.1 with:

4.3.1 Use of Manifest Files

A JNLP Client ignores all manifest entries in a signed JAR file specified with the jar element, except the following:

    The manifest entries used to sign a JAR file are recognized and validated.

    The Main-Class entry in the JAR file specified as main is used to determine the main class of an application (if it is not specified explicitly in the JNLP file).

    The manifest entries used to seal a package are recognized, and the sealing of packages are verified according to the Extension Mechanism Architecture8. These are the name and sealed entries.

    The following manifest entries described by the Optional Package Versioning documentation: Extension-Name, Specification-Vendor, Specification-Version, Implementation-Vendor-Id, Implementation-Vendor, and Implementation-Version are recognized and will be available through the java.lang.Package class. They are otherwise not used by a JNLP Client.

    The Permissions attribute:  The "Permissions" attribute is used to express the intent of the signer of a jar how the jar can be used.  A JNLP Client is allowed to require a "Permissions" attribute but is not required to do so.  A JNLP Client may block any app when a jar is used in contradiction to the intent expressed by the signer in the "Permissions" attribute.

    A JNLP client may interpret other implementation-specific manifest entries as long as they restrict rather than expand what a JAR file is allowed do to under the specified entries described above.

For a JAR file containing native libraries, i.e., specified with the nativelib element, all manifest entries are ignored except the entries used to sign the JAR file.

Change 5 ? remove platform attribute of information element.

In section 3.5 remove the following lines describing the platform attribute of the information element:

platform attribute: Specifies the platform for which the information element should be considered. If the value is a prefix of the os.platform system property, then the information element can be used. If the attribute is not specified, it matches all platforms.

In DTD in Appendix C, remove:

The platform attribute of the information element specifies for what platform this element should be considered.

<!ATTLIST information platform CDATA #IMPLIED>

Change 6 ? remove requirement that each information element contain a vendor element.

In Appendix C

<!ELEMENT information (title?, vendor, homepage?, description*, icon*, offline-allowed?, shortcut?, association*, related-content*)>
<!ELEMENT information (title?, vendor?, homepage?, description*, icon*, offline-allowed?, shortcut?, association*, related-content*)>
and change:
<!ELEMENT jnlp (information+, security?, update?, resources*, (application-desc | applet-desc | component-desc | installer-desc))>
<!ELEMENT jnlp (information*, security?, update?, resources*, (application-desc | applet-desc | component-desc | installer-desc))>