com.sun.xml.ws.server
Class InvokerTube<T>

java.lang.Object
  extended by com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl
      extended by com.sun.xml.ws.server.InvokerTube<T>
All Implemented Interfaces:
Pipe, Tube
Direct Known Subclasses:
ProviderInvokerTube, SEIInvokerTube

public abstract class InvokerTube<T>
extends AbstractTubeImpl

Base code for ProviderInvokerTube and SEIInvokerTube.

This hides InstanceResolver and performs a set up necessary for WebServiceContext to correctly.


Constructor Summary
protected InvokerTube(Invoker invoker)
           
 
Method Summary
 AbstractTubeImpl copy(TubeCloner cloner)
          processRequest() and processResponse() do not share any instance variables while processing the request.
static Packet getCurrentPacket()
          This method can be called while the user service is servicing the request synchronously, to obtain the current request packet.
protected  WSEndpoint getEndpoint()
           
 Invoker getInvoker(Packet request)
          Returns the Invoker object that serves the request.
 void preDestroy()
          Invoked before the last copy of the pipeline is about to be discarded, to give Tubes a chance to clean up any resources.
 void setEndpoint(WSEndpoint endpoint)
           
 
Methods inherited from class com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl
copy, doInvoke, doInvokeAndForget, doReturnWith, doSuspend, doThrow, process
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.sun.xml.ws.api.pipe.Tube
processException, processRequest, processResponse
 

Constructor Detail

InvokerTube

protected InvokerTube(Invoker invoker)
Method Detail

setEndpoint

public void setEndpoint(WSEndpoint endpoint)

getEndpoint

protected WSEndpoint getEndpoint()

getInvoker

@NotNull
public final Invoker getInvoker(Packet request)
Returns the Invoker object that serves the request.


copy

public final AbstractTubeImpl copy(TubeCloner cloner)
processRequest() and processResponse() do not share any instance variables while processing the request. InvokerTube is stateless and terminal, so no need to create copies.

Specified by:
copy in interface Tube
Specified by:
copy in class AbstractTubeImpl
Parameters:
cloner - Use this object (in particular its TubeCloner.copy(Tube) method to clone other pipe references you have in your pipe. See TubeCloner for more discussion about why.
Returns:
always non-null Tube.

preDestroy

public void preDestroy()
Description copied from interface: Tube
Invoked before the last copy of the pipeline is about to be discarded, to give Tubes a chance to clean up any resources.

This can be used to invoke PreDestroy lifecycle methods on user handler. The invocation of it is optional on the client side, but mandatory on the server side.

When multiple copies of pipelines are created, this method is called only on one of them.


getCurrentPacket

@NotNull
public static Packet getCurrentPacket()
This method can be called while the user service is servicing the request synchronously, to obtain the current request packet.

This is primarily designed for StatefulInstanceResolver. Use with care.