Note that access to such resource often needs to be synchronized, since multiple copies of pipelines may execute concurrently.
If such information is read-only, it can be stored as instance variables of a pipe, and its reference copied as pipes get copied. (The only difference between this and per-thread state is that you just won't allocate new things when pipes get copied here.)
static is always there for you to use.
JAX-WS has a notion of {@link LogicalHandler} and {@link SOAPHandler}, and we intend to have one {@link Pipe} implementation that invokes all the{@link LogicalHandler}s and another {@link Pipe} implementation that invokesall the {@link SOAPHandler}s. Those implementations need to convert a {@link Message}into an appropriate format, but grouping all the handlers together eliminates the intermediate {@link Message} instanciation between such handlers.
This grouping also allows such implementations to follow the event notifications to handlers (i.e. {@link Handler#close(MessageContext)} method.
TODO: Possible types of pipe: creator: create message from wire to SAAJ SOAP message to cached representation directly to JAXB beans transformer: transform message from one representation to another JAXB beans to encoded SOAP message StAX writing + JAXB bean to encoded SOAP message modifier: modify message add SOAP header blocks security processing header block processor: process certain SOAP header blocks outbound initiator: input from the client Manage input e.g. JAXB beans and associated with parts of the SOAP message inbound invoker: invoke the service Inkoke SEI, e.g. EJB or SEI in servlet.@see AbstractPipeImpl @see AbstractFilterPipeImpl @deprecated Use {@link Tube}.
|
|
|
|
|
|
|
|