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.