This package provides the core interfaces necessary to support developing extensions for Remote Request Dispatch (RRD).

An RRD extension consists of an extension generator and extension handler pair. An extension generator is a class that implements {@link com.ibm.wsspi.rrd.extension.generator.ExtensionGenerator} and is responsible for attaching extension data to an RRD request. After an RRD request has been received, it is the responsibility of an extension handler (which is a class that implements {@link com.ibm.wsspi.rrd.extension.handler.ExtensionHandler}) to act upon the extension data. Extension generators and handlers both rely on {@link com.ibm.wsspi.rrd.extension.ExtensionRequest} and {@link com.ibm.wsspi.rrd.extension.ExtensionResponse} objects at runtime in order to interact with the extension data associated with an RRD request or response. Additionally, extension generators and handlers may also rely on deployment descriptor configuration data, which is provided by an instance of {@link com.ibm.wsspi.rrd.extension.ExtensionConfig}.

A sequence of extension generators or extension handlers is referred to as an extension chain, and is represented by {@link com.ibm.wsspi.rrd.extension.ExtensionChain}. An extension chain can only contain either extension generators or extension handlers, and the chain type determines what happens when the chain is executed and at what point in the RRD request/response cycle that it is executed.

Generally, the types of extension chains, generators, and handlers will need to vary depending on the environment in which RRD is used (i.e., in a servlet environment, a portal environment, etc.). To that end, the {@link com.ibm.wsspi.rrd.extension.factory.ExtensionDelegator} class allows for dynamic selection of extension types based on the servlet request/response information available in the runtime environment.