Feature list

Version 3.0

FeaturePriorityDescription
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

Version 1.3

FeaturePriorityDescription
Allow to search for locally installed JVMs at startup 1 Optionally OpenWebStart can search for existing JVMs on every start. This is very useful for machines which do not want to pull JVMs from the internet.
Changed default log level to reduce verbosity in the log files 1 Until Version 1.3 the logs were very verbose to help debugging problems. Since OpenWebStart has become very stable default log level is reduced.
Improve handling of JVM arguments from JNLP file 1 A user should be able to define additional vm arguments that should be considered as safe.

Version 1.2

FeaturePriorityDescription
JVM Server Whitelist 1 A user should be able to limit the servers that can be specified in JNLP-files to download JVMs from. (Please note: the possibility to specify such a server in a JNLP-file is disabled by default.)
Logs cleanup 1 The name and structure of the log-files need to be cleaned up.
Support for wildcards in Server Whitelist 1 A user should be able to limit the servers that can be specified in JNLP-files to download JVMs from using wildcards (asterisk).

Version 1.1

FeaturePriorityDescription
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).
IE proxy configuration 1 OpenWebStart can read the proxy settings from IE.

Version 1.0

FeaturePriorityDescription
Installation and Administration
Windows Installer1Native Installer for Windows
macOS Installer1Native installer for macOS
Linux Installer Installer1DEB-package
Unattended installer for Windows1One needs to be able to run the installer in unattended mode
Unattended installer for Linux1One needs to be able to run the installer in unattended mode
Unattended installer for macOS1One needs to be able to run the installer in unattended mode
File extension and MIME type registration1The 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
OpenWebStart Updater1Checks 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.
Control Panel1GUI to configure the different modules of OpenWebStart
Configuration by property file1All 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.
Custom Mime-Type1When 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
Shell support1The 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
Cache Management1Provide 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
Application Updates1Check for cached applications if there is a newer version. If yes, 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
Incremental Updates1OpenWebStart 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
Native Lib Support1OpenWebStart supports the usage of native libraries in the application
JSR-56, Ch. 4.3
Offline Support1Applications 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
Application Resources Download1OpenWebStart 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
Versioning of Resources1Resources can be versioned.
JSR-56, Ch. 6
JSR-56, Ch. 6.5.2
System Properties1System properties (OS dependend) can be set and processed in JNLP.
JSR-56, Ch. 4.2
Clear Cache 1 The application cache can be cleared by the user.
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.
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.
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
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
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
Java Console 1 Show the Java Console for applications
JVM Manager
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
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.
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.
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.
JVM parameters for application start 1 Several JVM parameters can be specified for an application.
JSR-56, Ch. 4.6
JNLP
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
Version IDs and Version Strings 1 Implementation of the formal syntax of the version-ids and version strings according to JSR-56, Appendix A
Component Extension Support 1 OpenWebStart supports to include JNLP files in other JNLP files.
Security
Signature Check 1 OpenWebStart validates the signing of the downloaded JARs.
JSR-56, Ch. 5.4
JSR-56, Ch. 5.3
Untrusted Environment 2 OpenWebStart allows to start an application in an untrusted environment.
JSR-56, Ch. 5.5
JSR-56, Ch. 5.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
Signature Check Deactivation 1 OpenWebStart allows to deactivate the signature check, e.g. for in-house applications.
Server White List 1 The list of hosts from where to load code can be restricted.
Proxy Settings 1 Specify and manage proxy settings.
JSR-56, Ch. 5.3"
JNLP Java API
BasicService 1 Provide service implementation for querying and interacting with the environment.
DownloadService 1 Provide service implementation that allows an application to control how its own resources are cached.
FileOpenService 1 Provide service implementation for importing files from the local disk.
FileSaveService] 1 Provide service implementation for exporting files to the local disk.
ClipboardService 1 Provide service implementation for accessing the shared system-wide clipboard.
PrintService 1 Provide service implementation to access printing and submit a print job.
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.
ExtendedService 1 Provides additional support to the current JNLP API. It allows applications to open specific file(s) in the client's file system.

Unscheduled Features

These features are currently not scheduled for development. If you would like to sponsor the development, please get in touch with us at openwebstart@karakun.com.

FeaturePriorityDescription
Application Manager
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
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.
Installation on Mac 2 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.
Auto-cleanup 2 OpenWebStart will automatically delete cached applications that are not used for a long time (maybe 6 month?)
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
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.
JNLP Java API
Deployment Rule Set (Servers) 2 Provide deployment rule set as white list for OpenWebStart resources (URIs).
JNLP Java API
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
Deployment Rule Set (Certificates) 2 Provide deployment rule set as white list for SHA256 hashes/certificates.
JNLP Java API
PersistenceService 2 Provide service implementation for storing data locally on the client system.
ExtensionInstallerService 2 Provide service implementation to communicate with the JNLP Client used by an extension installer.
IntegrationService 2 Provide service implementation for programmatic management (create, delete) of desktop and menu shortcuts.
DownloadService2 2 Provide service implementation that allows an application to control how its own resources are cached.

Legend:

Feature done Feature partially done Feature missing