Feature list
Version 3.0
Feature | Priority | Description |
---|---|---|
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
Feature | Priority | Description |
---|---|---|
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
Feature | Priority | Description |
---|---|---|
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
Feature | Priority | Description |
---|---|---|
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
Feature | Priority | Description |
---|---|---|
Installation and Administration | ||
Windows Installer | 1 | Native Installer for Windows |
macOS Installer | 1 | Native installer for macOS |
Linux Installer Installer | 1 | DEB-package |
Unattended installer for Windows | 1 | One needs to be able to run the installer in unattended mode |
Unattended installer for Linux | 1 | One needs to be able to run the installer in unattended mode |
Unattended installer for macOS | 1 | One needs to be able to run the installer in unattended mode |
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 |
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. |
Control Panel | 1 | GUI to configure the different modules of OpenWebStart |
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. |
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 |
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 | ||
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 |
Application Updates | 1 | Check 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 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 |
Native Lib Support | 1 | OpenWebStart supports the usage of native libraries in the application JSR-56, Ch. 4.3 |
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 |
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 |
Versioning of Resources | 1 | Resources can be versioned. JSR-56, Ch. 6 JSR-56, Ch. 6.5.2 |
System Properties | 1 | System 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:
|
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.Feature | Priority | Description |
---|---|---|
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:
|
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:
|
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 |