This is a utility for services implementing leases. The {@link
org.apache.river.landlord.Landlord} is the basic interface that defines the
utility. A service that exports leases implements the
Landlord
interface, which is used for callbacks by the utility
classes when a lease's status changes. Each leased resource is identified
by a landlord-generated {@link net.jini.id.Uuid} called a cookie. The
{@link net.jini.core.lease.Lease} object handed to the client contains the
cookie, and that cookie is used when communicating with the landlord about
the lease.
The utility classes define a lease object type {@link
org.apache.river.landlord.LandlordLease}. The Lease
objects
handed to clients will be of this type. LandlordLease
objects
talk to the Landlord
about the lease. A factory class, {@link
org.apache.river.landlord.LeaseFactory}, can be used to generate new
leases. The package also contains a constrainable implementation of
Lease
, {@link
org.apache.river.landlord.ConstrainableLandlordLease}, that implements
{@link net.jini.core.constraint.RemoteMethodControl} and supports proxy
trust verification (when used with {@link
org.apache.river.landlord.LandlordProxyVerifier}) and suitable implementations
of {@link net.jini.core.lease.LeaseMap}. It also contains utilities and
interfaces to assist you in implementing the Landlord
interfaces: {@link org.apache.river.landlord.LandlordUtil}, {@link
org.apache.river.landlord.LeasePeriodPolicy}, and {@link
org.apache.river.landlord.FixedLeasePeriodPolicy}.
Using the classes in this package, you can write services that export leases and handle primarily those factors that are unique to your service, letting the utility classes do generic lease-related work.