JavaSpaces(TM) Technology Kit (JSTK) Release Notes

JavaSpacesTM Technology Kit (JSTK) 1.0 Eval Release Notes


The JavaSpaces Technology Kit (JSTK) provides implementations of the JavaSpaces services specified in the JiniTM Technology Extended Platform (JXP). The 1.0 Evaluation release of the JSTK binary software distribution consists of the com.sun.jini.outrigger software, its API documentation, release notes for those classes and interfaces, examples, and references to the specific copyrights and licenses that protect each of the aforementioned components.

This document contains release notes for the JavaSpaces Technology Kit installation, and specifics on the software in the com.sun.jini.outrigger package.

If you have comments on the JSTK, you can send email to js-comments@java.sun.com. If you would like to submit a bug against the JSTK, please send it to javaspaces-submit@java.sun.com. If you encounter problems that you would like help with, you can subscribe to the javaspaces-users list by sending email to listserv@java.sun.com, with a message of "subscribe javaspaces-users".


Note on the installation

The current packaging of the JSTK requires that the Jini software be installed before the JSTK. The software packages build upon one another so the Jini software needs to be installed for the JSTK to work. If the Jini software and JSTK have been installed, but in the incorrect order, the API documentation will be incomplete, as may be the ./index.html file. For the complete installation instructions, click here.


Notes on com.sun.jini.outrigger

"Outrigger" is the name of Sun MicrosystemsTM first JavaSpaces technology implementation. Outrigger has two major variants: one that does not persist its data, com.sun.jini.outrigger.TransientSpace, and one that does, com.sun.jini.outrigger.FrontEndSpace. In the following discussion we'll use the term "Outrigger" when what we are talking about applies to both variants.

When Should I Use Each Implementation?
If the application requires data to be retained across crashes or restarts of the space, FrontEndSpace should be used; if not, TransientSpace may be used. TransientSpace is slightly faster and is less complex to set up.

What's Important

Jar File Structure

To facilitate code downloading to clients, the Outrigger 1.0 Eval classes have been separated into three jar files; outrigger.jar and transient-outrigger.jar are both for the use of the JavaSpaces service, while outrigger-dl.jar is downloaded from the server for use by the client.

System Properties

Several system properties control the behavior of Outrigger:

java.security.policy
When using a TransientSpace, the java.security.policy property defines the path to the security policy file for the server. When using FrontEndSpace, the java.security.policy property defines the path to the security policy file for the program that sets up the server. In the case of FrontEndSpace, the security policy file for the VM in which the service is actually running is specified by the second required command-line argument.

java.rmi.server.codebase
When using TransientSpace, the java.rmi.server.codebase property determines the URL that clients will use to load the classes of objects they get from the space. When using FrontEndSpace, the codebase of the VM in which the service is running is set by the first required command-line argument.

com.sun.jini.use.registry
If the com.sun.jini.use.registry property is set to a non-null value, the service will bind itself to RMI registry. This property must be set on the VM that is creating the service. It is used only when creating a service from the command line, as opposed to creating the service programmatically. This property has no effect on how the service binds itself to Jini Lookup services.

Note: Currently Outrigger can be configured to bind itself to an RMI registry or a Jini Lookup service. Support for binding to an RMI registry is being provided so developers can incorporate Jini technology into their systems incrementally instead of all at once. It is quite likely that we will remove support for binding to an RMI registry in future versions of Outrigger.

com.sun.jini.rmiRegistryPort
If the RMI registry is being used, this property can assign the port on which the service will look for the registry (1099 is used if this property is not set). It is used only when creating a service from the command line, as opposed to creating the service programmatically.

com.sun.jini.outrigger.spaceName
The com.sun.jini.outrigger.spaceName property defines the name associated with the space. If the space is bound to the RMI registry, then the value of the spaceName property is the name to which it is bound. If the space is bound to the Jini Lookup service, this name is used to create an attribute of type net.jini.lookup.entry.Name that is associated with the space's ServiceItem. It is used only when creating a service from the command line, as opposed to creating the service programmatically.

com.sun.jini.outrigger.backend.vm.options
This property allows extra VM command line arguments to be passed to the back-end process associated with a FrontEndSpace. It must be set on the VM in which the FrontEndSpace is running. The value of this property should be a string that can be passed as an argument to the VM in which the back-end is running.

com.sun.jini.outrigger.java
This property specifies which java executable is used to spawn the VM in which the back-end process runs. The value of this property must be the name of a java executable, including its full path. The named program must be able to accept multiple -Dpropname=value options (as documented for the SolarisTM operating system and Win32 versions of the java command) and the -Xbootclasspath: option. If this property is not set, a default value of "java" is used.

com.sun.jini.outrigger.backend.gcInterval
This property controls how aggressive the FrontEndSpace will be when garbage collecting the persistent store. The FrontEndSpace writes directives into logs that are consumed by a back end. This property is set to an integer which represents how many logs must be consumed before the persistent store is garbage collected. Once set to an integer, N, the persistent store is garbage collected by the back end every N logs. If not specified, a default value of 5 is used. This property must be set on the VM in which the back-end process is running

Known Bugs

Requests For Enhancement (RFE)

Known Issues

Changes from the JavaSpaces Technology 1.0Beta Release

Significant changes from Beta: