Jini Resource Access 0.01 (pre-alpha)



net.gloin.resource Provides the public the JRAP public API .
net.gloin.resource.util Provides the public the JRAP public API .
org.gloin.example.jrap.useresourceservice Provides an example JRAP application.
org.gloin.resource Provides the JRAP prototype implementation.
org.gloin.resource.misc Provides the JRAP prototype implementation.
org.gloin.resource.protocol.jrap Provides the JRAP protocol handler prototype implementation.




The JRAP project attempts to provide at least the following enhancements for Jini and RMI class loading:

Please keep in mind that this project is only in prototype form. The documentation is not complete and the included functionality is still in a state of change. The included code and utilites are functional and already provide powerful functionality, but you may easily run into problems.

I welcome user feedback on the existing utilities. I am most interested in knowing what functionality is important to add next. Please let me know your opinions.

Please send feedback to lairdd@sourceforge.net

Before proceeding, please read the following prerequisite documents on Jini and RMI class loading:

Dynamic class loading using RMI

John Mcclain's Codebase Presentation

Suggested specification reading order


Jini Network Technology enables a highly dynamic and distributed computing environment. Jini clients and services need little apriori knowledge of each other to interoperate because of the following functionality:

The JRAP project focuses on providing enhancements for RMI class loading as it is used by Jini clients and services. The project provides the following functionality that handles arbitrary named resources stored as byte arrays:


The JRAP project attempts to provide enhancements for a large number of Jini class loading issues. The most important benefits of the resource services and JRAP URL protocol are listed below:

Suggested reading order:


Future Enhancements:

Add local resource caching that supports as needed downloading of code with new versions.

Add leasing of resources stored in resource service. All byte resources registered with the code service should be leased. Direct support for Lease.FOREVER should be supported to handle marshalled objects that reside in databases for extended periods.
Add functionality to enable the resource service to double as a lease renewal service
Make it possible to use the local resource caching of JRAP without requiring use of lookup/discovery to run on the network. Thinking about using JRAP URL host:ports for this special case.
Startup programs to run on windows (.bat files or .exes).
May add unique identifiers to jrap urls to unambiguously reference a set of resource bytes.