|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.sun.xml.ws.api.server.Adapter<TK>
public abstract class Adapter<TK extends Adapter.Toolkit>
Receives incoming messages from a transport (such as HTTP, JMS, etc)
in a transport specific way, and delivers it to WSEndpoint.PipeHead.process(com.sun.xml.ws.api.message.Packet, com.sun.xml.ws.api.server.WebServiceContextDelegate, com.sun.xml.ws.api.server.TransportBackChannel).
Since this class mostly concerns itself with converting a
transport-specific message representation to a Packet,
the name is the "adapter".
The purpose of this class is twofolds:
Packet and do the other way around.
WSEndpoint.PipeHead,
and Codec.
Adapters are extended to work with each kind of transport,
and therefore Adapter class itself is not all that
useful by itself --- it merely provides a design template
that can be followed.
For managing resources, an adapter uses an object called Adapter.Toolkit
(think of it as a tray full of tools that a dentist uses ---
trays are identical, but each patient has to get one. You have
a pool of them and you assign it to a patient.)
Adapter.Toolkit can be extended by derived classes.
That actual type is the TK type parameter this class takes.
| Nested Class Summary | |
|---|---|
class |
Adapter.Toolkit
Object that groups all thread-unsafe resources. |
| Field Summary | |
|---|---|
protected WSEndpoint<?> |
endpoint
|
protected Pool<TK> |
pool
Pool of Adapter.Toolkits. |
| Constructor Summary | |
|---|---|
protected |
Adapter(WSEndpoint endpoint)
Creates an Adapter that delivers
messages to the given endpoint. |
| Method Summary | ||
|---|---|---|
protected abstract TK |
createToolkit()
Creates a Adapter.Toolkit instance. |
|
WSEndpoint<?> |
getEndpoint()
Gets the endpoint that this Adapter is serving. |
|
protected Component |
getEndpointComponent()
|
|
protected Pool<TK> |
getPool()
Returns a reference to the pool of Toolkits for this adapter. |
|
|
getSPI(Class<S> spiType)
Gets the specified SPI. |
|
void |
reconfigure()
The pool instance needs to be recreated to prevent reuse of old Toolkit instances. |
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected final WSEndpoint<?> endpoint
protected volatile Pool<TK extends Adapter.Toolkit> pool
Adapter.Toolkits.
Instances of this pool may be replaced at runtime. Therefore, when you take
an object out of the pool, you must make sure that it is recycled by the
same instance of the pool.
| Constructor Detail |
|---|
protected Adapter(WSEndpoint endpoint)
Adapter that delivers
messages to the given endpoint.
| Method Detail |
|---|
protected Component getEndpointComponent()
public void reconfigure()
reconfigure in interface Reconfigurablepublic <S> S getSPI(Class<S> spiType)
ComponentThis method works as a kind of directory service for SPIs, allowing various components to define private contract and talk to each other.
getSPI in interface Componentpublic WSEndpoint<?> getEndpoint()
Adapter is serving.
protected Pool<TK> getPool()
protected abstract TK createToolkit()
Adapter.Toolkit instance.
If the derived class doesn't have to add any per-thread state
to Adapter.Toolkit, simply implement this as new Toolkit().
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||