Fork me on GitHub
OpenWebStart Features

Features

This is the list of features of OpenWebStart that we are going to implement, with their priority and their current state. You can download the current version in the download area.

Version 1.0

Identifier Feature Priority Description
Installation & Administration
INST-1 Windows installer 1 Native installer for Windows
INST-2 Mac installer 1 Native installer for Mac
INST-3 Linux installer 1 DEB-package
INST-4 Unattended installer for Windows 1 One needs to be able to run the installer in unattended mode
INST-5 Unattended installer for Linux 1 One needs to be able to run the installer in unattended mode
INST-6 Unattended installer for Mac 1 One needs to be able to run the installer in unattended mode
INST-7 File extension and MIME type registration 1 The default MIME type and file extension that should be associated with a JNLP file:
Default MIME Type: application/x-java-jnlp-file
Default Extension: .jnlp
JSR-56, Ch. 3.2
INST-8 OpenWebStart Updater 1 Checks for updates, downloads and installs new versions automatically or on demand. It must be possible to deactivate the update-mechanism since it should not be used by companies that do the rollout themselves.
INST-9 Control Panel 1 GUI to configure the different modules of OpenWebStart
INST-10 Removed 1 This requirement has been removed.
INST-11 Configuration by property file 1 All configuration properties can be defined in an external file to define unmodifiable values. By defining properties in such a file the user can not modify the properties in the configuration UI of OpenWebStart.
INST-12 Custom Mime-Type 1 When installing OpenWebStart the user can define if he wants the tool to be registered for the .jnlp / application/x-java-jnlp-file mime type or if he wants to use a different mimetype (jnlpx). This allows to run OpenWebStart in parallel to JavaWebStart. This can only be defined when installing OpenWebStart. To change this definition the tool needs to be reinstalled.
JSR-56, Ch. 3.2
INST-13 Shell support 1 The tool can be started (at least with a -v and -help parameter) from the shell.
The -version parameter will print the current version of the tool
The -help parameter will print an install help text
Application Manager
AM-1 Cache Management 1 Provide a cache for all applications downloaded by the user. The cache can be managed by the user.
JSR-56, Ch. 6.5
JSR-56, Ch. 6.6
AM-2 Application Updates 1 Check for cached applications if there is a newer version, if so, the new version is updated either incrementally or completely. We will support HTTP and HTTPS as protocol.
JSR-56, Ch. 6
JSR-56, Ch. 3.4
JSR-56, Ch. 3.6:
Initially we will only support the parameter types:
check-attribute=always
policy-attribute=always
AM-3 Background Updates 2 OpenWebStart allows to update applications in the background while the current version of the application is running. After the download is finished the new version becomes available with the next restart of the application.
JSR-56, Ch. 3.6
check-attribute=background
AM-4 Incremental Updates 1 OpenWebStart supports the download of JARDiff files (JARDiff = tool to visualise API differences between two different versions of a project, takes two jar files and outputs all the public API changes as xml, html or plain text)
JSR-56, Ch. 6.3.1
JSR-56, Appendix B
AM-5 Native Lib Support 1 OpenWebStart supports the usage of native libraries in the application
JSR-56, Ch. 4.3
AM-6 Offline Support 1 Applications can be started offline. There is a check whether all resources (with its correct versions) are available in the application cache.
JSR-56, Ch. 5.1.1
AM-7 Application Resources Download 1 OpenWebStart can download application resources  (JARs, images, ...) as specified in the JNLP file.
Such resources will be part of the application and automatically downloaded.
Such resources can be restricted to a specific operating system, architecture, or locale using the os, arch, and locale attributes
JSR-56, Ch. 4.1
JSR-56, Ch. 4.3
AM-9 Versioning of Resources 1 Resources can be versioned.
JSR-56, Ch. 6
JSR-56, Ch. 6.5.2
AM-10 System Properties 1 System properties (OS dependend) can be set and processed in JNLP.
JSR-56, Ch. 4.2
AM-11 Clear Cache 1 The application cache can be cleared by the user.
AM-12 Versioning of JNLP files 1 JNLP files can be defined with a version attribute. This helps to check if an JNLP based application is updated.
AM-13 Installation on Windows 1 OpenWebStart can install an application according to the preferences specified in the descriptor information.
JSR-56, Ch. 3.5
We will support:
  • Desktop Shortcut
  • Start Menu Entry
  • Default MIME type and file extension association
The details on how the integration can be established depend on the OS.
AM-14 Installation on Linux 2 OpenWebStart can install an application according to the preferences specified in the descriptor information.
JSR-56, Ch. 3.5
We will support:
  • Default MIME type and file extension association
The details on how the integration can be established depend on the OS.
AM-16 Application Start 1 Read .JNLP files of type "application descriptor" and start them according to these description.
The general workflow of an application start launch sequence is defined by:
JSR-56, Ch. 5.1
AM-17 Extension Support 1 Extension support as defined in the JNLP specification
JSR-56, Ch. 3.8
JSR-56, Ch. 4.7
JSR-56, Ch. 5.7
AM-18 Application Descriptors 1 OpenWebStart supports Application Descriptors in the JNLP file. Only the "application-desc" will be supported as we do not want to support Applets
JSR-56, Ch. 3.7
AM-19 Auto-cleanup 2 OpenWebStart will automatically delete cached applications that are not used for a long time (maybe 6 month?)
AM-20 Java Console 1 Show the Java Console for applications
AM-21 Package definition 2 Specific used packages for Jars can be defined by the JSR definition. We do not think that OpenWebStart should support that.
JSR-56, Ch. 4.5
AM-22 Pack200 2 OpenWebStart supports pack200 jar artefact compression. The appropiate accept-encoding header value is "pack200-gzip"
This feature will be marked as deprecated and removed in a future version.
JVM Manager
JM-1 Version Management 1 OpenWebStart can manage several JVM instances internally. Here the tool has its internal directory in that JVM instances are managed. Such instances are not really installed on the local system (like adding it to the PATH environment variable). The JVM instances are only used and managed by OpenWebStart internally to start JNLP based applications.
We do not think that the initial version definition of the JSR is sufficient enough. We plan to provide additional attributes for the JNLP XML syntax to specify supported Java version (version, vendor...)
JSR-56, Ch. 4.6
JM-2 Update Management 1 OpenWebStart can check if it has a JVM instances that matches to the needs of a JLNP application. If not OpenWebStart will automatically download a new JVM version that can be used to start the JNLP application.
JM-3 Download-Server Management 1 Since OpenWebStart can download new JVM instances the list of endpoints that can be used to get new JVMs must be specified. Here we need to define a REST API that can be used to ask endpoints for JVMs and than download them. We will support HTTP and HTTPS as protocol.
JM-4 Support of vendor-specific JVMs 1 As some users will have commercial support of a specific JDK vendor it must be possible to define the vendor for a managed JVM.
JM-6 JVM parameters for application start 1 Several JVM parameters can be specified for an application.
JSR-56, Ch. 4.6
JNLP
JNLP-1 JNLP Parser & Verifier 1 OpenWebStart must parse and verify JNLP files and check its syntax against the JNLP File Document Type Definition
JSR-56, Appendix C
The parser will know all defined XML attributes of the JNLP standard. If and where such attributes are used by OpenWebStart is defined in other topics of this document.
JSR-56, Ch. 3.3
JNLP-2 Version IDs and Version Strings 1 Implementation of the formal syntax of the version-ids and version strings according to JSR-56, Appendix A
JNLP-3 Component Extension Support 1 OpenWebStart supports to include JNLP files in other JNLP files.
JNLP-4 Deployment Rule Set (Servers) 2 Provide deployment rule set as white list for OpenWebStart resources (URIs).
Security
SEC-1 Signature Check 1 OpenWebStart validates the signing of the downloaded JARs.
JSR-56, Ch. 5.4
JSR-56, Ch. 5.3
SEC-2 Untrusted Environment 2 OpenWebStart allows to start an application in an untrusted environment.
JSR-56, Ch. 5.5
JSR-56, Ch. 5.3
SEC-3 Trusted Environment
(all-permissions)
1 OpenWebStart allows to start an application in an all-permissions environment.
JSR-56, Ch. 5.6
JSR-56, Ch. 5.3
SEC-4 Trusted Environment
(j2ee-application-client)
2 OpenWebStart allows to start an application in an j2ee-application-client environment.
JSR-56, Ch. 5.6
JSR-56, Ch. 5.3
SEC-5 Deployment Rule Set (Certificates) 2 Provide deployment rule set as white list for SHA256 hashes/certificates.
SEC-6 Signature Check Deactivation 1 OpenWebStart allows to deactivate the signature check, e.g. for in-house applications.
SEC-7 Server White List 1 The list of hosts from where to load code can be restricted.
SEC-8 Proxy Settings 1 Specify and manage proxy settings.
JSR-56, Ch. 5.3"
SEC-9 IE proxy configuration 1 OpenWebStart can read the proxy settings from IE.
JNLP Java API
JNLP-API-1 BasicService 1 Provide service implementation for querying and interacting with the environment.
JNLP-API-2 DownloadService 1 Provide service implementation that allows an application to control how its own resources are cached.
JNLP-API-3 FileOpenService 1 Provide service implementation for importing files from the local disk.
JNLP-API-4 FileSaveService] 1 Provide service implementation for exporting files to the local disk.
JNLP-API-5 ClipboardService 1 Provide service implementation for accessing the shared system-wide clipboard.
JNLP-API-6 PrintService 1 Provide service implementation to access printing and submit a print job.
JNLP-API-7 PersistenceService 2 Provide service implementation for storing data locally on the client system.
JNLP-API-8 ExtensionInstallerService 2 Provide service implementation to communicate with the JNLP Client used by an extension installer.
JNLP-API-9 SingleInstanceService 2 Provide service implementation for applications to register themselves as singletons, and to register listener(s) for handling arguments passed in from different instances of applications.
JNLP-API-10 ExtendedService 1 Provides additional support to the current JNLP API. It allows applications to open specific file(s) in the client's file system.
JNLP-API-11 IntegrationService 2 Provide service implementation for programmatic management (create, delete) of desktop and menu shortcuts.
JNLP-API-12 DownloadService2 2 Provide service implementation that allows an application to control how its own resources are cached.

Version 1.2

Identifier Feature Priority Description
AM-8 Lazy Download of Resources 1 The JNLP file download attribute is used to control whether a resource is downloaded eagerly or lazily.
JSR-56, Ch. 4.4
AM-15 Installation on Mac 1 OpenWebStart can install an application according to the preferences specified in the descriptor information.
JSR-56, Ch. 3.5
We will support:
  • Start Menu Entry
  • Default MIME type and file extension association
The details on how the integration can be established depend on the OS.
JM-5 Auto clean 1 As OpenWebStart will automatically download JDKs we need a mechanism to remove old JDKs once they are not needed anymore (maybe after they are not used for a year).

Legend:

Feature done Feature partially done Feature missing Low priority feature