Apache CXF API

org.apache.cxf.transport.http
Class AbstractHTTPDestination

java.lang.Object
  extended by org.apache.cxf.transport.AbstractObservable
      extended by org.apache.cxf.transport.AbstractDestination
          extended by org.apache.cxf.transport.AbstractMultiplexDestination
              extended by org.apache.cxf.transport.http.AbstractHTTPDestination
All Implemented Interfaces:
Configurable, Destination, MultiplexDestination, Observable, Assertor
Direct Known Subclasses:
JettyHTTPDestination, ServletDestination

public abstract class AbstractHTTPDestination
extends AbstractMultiplexDestination
implements Configurable, Assertor

Common base for HTTP Destination implementations.


Nested Class Summary
 class AbstractHTTPDestination.BackChannelConduit
          Backchannel conduit.
 
Nested classes/interfaces inherited from class org.apache.cxf.transport.AbstractDestination
AbstractDestination.AbstractBackChannelConduit
 
Field Summary
protected  Bus bus
           
protected  ConduitInitiator conduitInitiator
           
protected  java.lang.String contextMatchStrategy
           
protected  boolean fixedParameterOrder
           
static java.lang.String HTTP_CONTEXT
           
static java.lang.String HTTP_REQUEST
           
static java.lang.String HTTP_RESPONSE
           
protected  boolean multiplexWithAddress
           
static java.lang.String PROTOCOL_HEADERS_CONTENT_TYPE
           
protected  HTTPServerPolicy server
           
 
Fields inherited from class org.apache.cxf.transport.AbstractDestination
endpointInfo, reference
 
Fields inherited from class org.apache.cxf.transport.AbstractObservable
incomingObserver
 
Constructor Summary
AbstractHTTPDestination(Bus b, ConduitInitiator ci, EndpointInfo ei, boolean dp)
          Constructor
 
Method Summary
 void assertMessage(Message message)
           
 boolean canAssert(javax.xml.namespace.QName type)
           
protected  boolean contextMatchOnExact()
           
protected  void copyRequestHeaders(Message message, java.util.Map<java.lang.String,java.util.List<java.lang.String>> headers)
          Copy the request headers into the message.
protected  void copyResponseHeaders(Message message, javax.servlet.http.HttpServletResponse response)
          Copy the response headers into the response.
protected  java.io.OutputStream flushHeaders(Message outMessage)
           
protected static EndpointInfo getAddressValue(EndpointInfo ei)
           
protected static EndpointInfo getAddressValue(EndpointInfo ei, boolean dp)
           
 EndpointReferenceType getAddressWithId(java.lang.String id)
          Builds an new endpoint reference using the current target reference as a template.
protected  java.lang.String getBasePath(java.lang.String contextPath)
           
 java.lang.String getBeanName()
          Get the configurable object's Bean name
protected  ConduitInitiator getConduitInitiator()
           
 java.lang.String getContextMatchStrategy()
           
 java.lang.String getId(java.util.Map context)
          Obtain id from reference parameters of the ws-a to address Requires the existance of ws-a interceptors on dispatch path to provide access to the ws-a headers
protected  Conduit getInbuiltBackChannel(Message inMessage)
           
 HTTPServerPolicy getServer()
           
 boolean isFixedParameterOrder()
           
 boolean isMultiplexWithAddress()
           
protected  boolean isOneWay(Message message)
           
protected  boolean markPartialResponse(Message partialResponse, EndpointReferenceType decoupledTarget)
          Mark message as a partial message.
 void setContextMatchStrategy(java.lang.String contextMatchStrategy)
           
 void setFixedParameterOrder(boolean fixedParameterOrder)
           
protected  void setHeaders(Message message)
          Cache HTTP headers in message.
 void setMultiplexWithAddress(boolean multiplexWithAddress)
           
 void setServer(HTTPServerPolicy server)
           
protected  void setupMessage(Message inMessage, javax.servlet.ServletContext context, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)
           
protected  void updateResponseHeaders(Message message)
           
 
Methods inherited from class org.apache.cxf.transport.AbstractDestination
getAddress, getBackChannel, shutdown
 
Methods inherited from class org.apache.cxf.transport.AbstractObservable
activate, deactivate, getLogger, getMessageObserver, getTargetReference, getTargetReference, setMessageObserver
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.cxf.transport.Destination
getAddress, getBackChannel, getMessageObserver, shutdown
 
Methods inherited from interface org.apache.cxf.transport.Observable
setMessageObserver
 

Field Detail

HTTP_REQUEST

public static final java.lang.String HTTP_REQUEST
See Also:
Constant Field Values

HTTP_RESPONSE

public static final java.lang.String HTTP_RESPONSE
See Also:
Constant Field Values

HTTP_CONTEXT

public static final java.lang.String HTTP_CONTEXT
See Also:
Constant Field Values

PROTOCOL_HEADERS_CONTENT_TYPE

public static final java.lang.String PROTOCOL_HEADERS_CONTENT_TYPE

bus

protected final Bus bus

conduitInitiator

protected final ConduitInitiator conduitInitiator

server

protected HTTPServerPolicy server

contextMatchStrategy

protected java.lang.String contextMatchStrategy

fixedParameterOrder

protected boolean fixedParameterOrder

multiplexWithAddress

protected boolean multiplexWithAddress
Constructor Detail

AbstractHTTPDestination

public AbstractHTTPDestination(Bus b,
                               ConduitInitiator ci,
                               EndpointInfo ei,
                               boolean dp)
                        throws java.io.IOException
Constructor

Parameters:
b - the associated Bus
ci - the associated conduit initiator
ei - the endpoint info of the destination
dp - ture for adding the default port if it is missing
Throws:
java.io.IOException
Method Detail

setHeaders

protected void setHeaders(Message message)
Cache HTTP headers in message.

Parameters:
message - the current message

updateResponseHeaders

protected void updateResponseHeaders(Message message)

isOneWay

protected final boolean isOneWay(Message message)
Parameters:
message - the message under consideration
Returns:
true iff the message has been marked as oneway

getConduitInitiator

protected ConduitInitiator getConduitInitiator()
Overrides:
getConduitInitiator in class AbstractDestination
Returns:
the associated conduit initiator

copyRequestHeaders

protected void copyRequestHeaders(Message message,
                                  java.util.Map<java.lang.String,java.util.List<java.lang.String>> headers)
Copy the request headers into the message.

Parameters:
message - the current message
headers - the current set of headers

copyResponseHeaders

protected void copyResponseHeaders(Message message,
                                   javax.servlet.http.HttpServletResponse response)
Copy the response headers into the response.

Parameters:
message - the current message
headers - the current set of headers

setupMessage

protected void setupMessage(Message inMessage,
                            javax.servlet.ServletContext context,
                            javax.servlet.http.HttpServletRequest req,
                            javax.servlet.http.HttpServletResponse resp)
                     throws java.io.IOException
Throws:
java.io.IOException

getBasePath

protected java.lang.String getBasePath(java.lang.String contextPath)
                                throws java.io.IOException
Throws:
java.io.IOException

getAddressValue

protected static EndpointInfo getAddressValue(EndpointInfo ei)

getAddressValue

protected static EndpointInfo getAddressValue(EndpointInfo ei,
                                              boolean dp)

getInbuiltBackChannel

protected Conduit getInbuiltBackChannel(Message inMessage)
Specified by:
getInbuiltBackChannel in class AbstractDestination
Parameters:
inMessage - the incoming message
Returns:
the inbuilt backchannel

markPartialResponse

protected boolean markPartialResponse(Message partialResponse,
                                      EndpointReferenceType decoupledTarget)
Mark message as a partial message.

Overrides:
markPartialResponse in class AbstractDestination
Parameters:
partialResponse - the partial response message
the - decoupled target
Returns:
true iff partial responses are supported

flushHeaders

protected java.io.OutputStream flushHeaders(Message outMessage)
                                     throws java.io.IOException
Throws:
java.io.IOException

contextMatchOnExact

protected boolean contextMatchOnExact()

getBeanName

public java.lang.String getBeanName()
Description copied from interface: Configurable
Get the configurable object's Bean name

Specified by:
getBeanName in interface Configurable
Returns:
the bean name

getAddressWithId

public EndpointReferenceType getAddressWithId(java.lang.String id)
Description copied from class: AbstractMultiplexDestination
Builds an new endpoint reference using the current target reference as a template. The supplied id is endcoded using a reference parameter. This requires the ws-a interceptors to propagate the reference parameters on subsequent invokes using the returned reference.

Specified by:
getAddressWithId in interface MultiplexDestination
Overrides:
getAddressWithId in class AbstractMultiplexDestination
Returns:
the new reference with the id encoded as a reference parameter
See Also:
MultiplexDestination.getAddressWithId(java.lang.String)

getId

public java.lang.String getId(java.util.Map context)
Description copied from class: AbstractMultiplexDestination
Obtain id from reference parameters of the ws-a to address Requires the existance of ws-a interceptors on dispatch path to provide access to the ws-a headers

Specified by:
getId in interface MultiplexDestination
Overrides:
getId in class AbstractMultiplexDestination
Parameters:
context - for this invocation. Obtained for example from JAX-WS WebServiceContext.getMessageContext(). The context will either contain the WS-A To content and/or some property that identifies the target address, eg MessageContext.PATH_INFO for the current invocation
Returns:
the id from the reference parameters of the ws-a-to address or null if not found
See Also:
MultiplexDestination.getId(java.util.Map)

getContextMatchStrategy

public java.lang.String getContextMatchStrategy()

setContextMatchStrategy

public void setContextMatchStrategy(java.lang.String contextMatchStrategy)

isFixedParameterOrder

public boolean isFixedParameterOrder()

setFixedParameterOrder

public void setFixedParameterOrder(boolean fixedParameterOrder)

isMultiplexWithAddress

public boolean isMultiplexWithAddress()

setMultiplexWithAddress

public void setMultiplexWithAddress(boolean multiplexWithAddress)

getServer

public HTTPServerPolicy getServer()

setServer

public void setServer(HTTPServerPolicy server)

assertMessage

public void assertMessage(Message message)
Specified by:
assertMessage in interface Assertor

canAssert

public boolean canAssert(javax.xml.namespace.QName type)
Specified by:
canAssert in interface Assertor

Apache CXF API

Apache CXF