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.