org.apache.camel.component.cxf
Class DefaultCxfBinding

java.lang.Object
  extended by org.apache.camel.component.cxf.DefaultCxfBinding
All Implemented Interfaces:
CxfBinding, org.apache.camel.spi.HeaderFilterStrategyAware

public class DefaultCxfBinding
extends Object
implements CxfBinding, org.apache.camel.spi.HeaderFilterStrategyAware

The Default CXF binding implementation.

Version:

Constructor Summary
DefaultCxfBinding()
           
 
Method Summary
protected static void addNamespace(Element element, Map<String,String> nsMap)
           
 void copyJaxWsContext(org.apache.cxf.message.Exchange cxfExchange, Map<String,Object> context)
           Copy the javax.xml.ws* headers into cxfExchange's outMessage, if the cxfExchange has no outMessage, skip this copy
protected  void extractInvocationContextFromCamel(org.apache.camel.Exchange camelExchange, Map<String,Object> camelHeaders, Map<String,Object> cxfContext, String contextKey)
           
 void extractJaxWsContext(org.apache.cxf.message.Exchange cxfExchange, Map<String,Object> context)
           Extract the message headers which key are start from javax.xml.ws* from the CXF exchange's inMessage, and put these headers into the context
static Object getBodyFromCamel(org.apache.camel.Message out, DataFormat dataFormat)
           
protected static Object getContentFromCxf(org.apache.cxf.message.Message message, DataFormat dataFormat)
           
 org.apache.camel.spi.HeaderFilterStrategy getHeaderFilterStrategy()
           
protected static List<Source> getPayloadBodyElements(org.apache.cxf.message.Message message, Map<String,String> nsMap)
           
protected  org.apache.cxf.message.MessageContentsList getResponsePayloadList(org.apache.cxf.message.Exchange exchange, List<Source> elements)
           
 void populateCxfRequestFromExchange(org.apache.cxf.message.Exchange cxfExchange, org.apache.camel.Exchange camelExchange, Map<String,Object> requestContext)
          This method is called by CxfProducer.process(Exchange).
 void populateCxfResponseFromExchange(org.apache.camel.Exchange camelExchange, org.apache.cxf.message.Exchange cxfExchange)
          This method is called by CxfConsumer to populate a CXF response exchange from a Camel exchange.
 void populateExchangeFromCxfRequest(org.apache.cxf.message.Exchange cxfExchange, org.apache.camel.Exchange camelExchange)
          This method is called by CxfConsumer.
 void populateExchangeFromCxfResponse(org.apache.camel.Exchange camelExchange, org.apache.cxf.message.Exchange cxfExchange, Map<String,Object> responseContext)
          This method is called by CxfProducer.process(Exchange).
protected  void propagateHeadersFromCamelToCxf(org.apache.camel.Exchange camelExchange, Map<String,Object> camelHeaders, org.apache.cxf.message.Exchange cxfExchange, Map<String,Object> cxfContext)
           
protected  void propagateHeadersFromCxfToCamel(org.apache.cxf.message.Message cxfMessage, org.apache.camel.Message camelMessage, org.apache.camel.Exchange exchange)
           
protected  String replaceMultiPartContentType(String contentType)
           
 void setHeaderFilterStrategy(org.apache.camel.spi.HeaderFilterStrategy strategy)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultCxfBinding

public DefaultCxfBinding()
Method Detail

populateCxfRequestFromExchange

public void populateCxfRequestFromExchange(org.apache.cxf.message.Exchange cxfExchange,
                                           org.apache.camel.Exchange camelExchange,
                                           Map<String,Object> requestContext)
This method is called by CxfProducer.process(Exchange). It populates the CXF exchange and invocation context (i.e. request/response) contexts, it but does not create and populate a CXF message as a ClientImpl's invoke method will create a new CXF Message. That method will put all properties from the CXF exchange and request context to the CXF message.

Specified by:
populateCxfRequestFromExchange in interface CxfBinding
Parameters:
cxfExchange - exchange to be populated
camelExchange - exchange that contains a request
requestContext - a map contains request contexts. This parameter must not be null. The Client.invoke() method does not allow caller to pass in a CXF Message. The request context are copied to the CXF Message by the Client.invoke() method. This is how caller can set properties on the CXF message.

populateExchangeFromCxfResponse

public void populateExchangeFromCxfResponse(org.apache.camel.Exchange camelExchange,
                                            org.apache.cxf.message.Exchange cxfExchange,
                                            Map<String,Object> responseContext)
This method is called by CxfProducer.process(Exchange). It propagates information from CXF Exchange to Camel Exchange. The CXF Exchange contains a request from a CXF server.

Specified by:
populateExchangeFromCxfResponse in interface CxfBinding
Parameters:
camelExchange - exchanged to be populated
cxfExchange - exchange that contains a response
responseContext - map contains response context from CXF

populateExchangeFromCxfRequest

public void populateExchangeFromCxfRequest(org.apache.cxf.message.Exchange cxfExchange,
                                           org.apache.camel.Exchange camelExchange)
This method is called by CxfConsumer.

Specified by:
populateExchangeFromCxfRequest in interface CxfBinding
Parameters:
cxfExchange - CXF exchange that contains a request
camelExchange - Camel exchange to be populated

populateCxfResponseFromExchange

public void populateCxfResponseFromExchange(org.apache.camel.Exchange camelExchange,
                                            org.apache.cxf.message.Exchange cxfExchange)
This method is called by CxfConsumer to populate a CXF response exchange from a Camel exchange.

Specified by:
populateCxfResponseFromExchange in interface CxfBinding
Parameters:
camelExchange - Camel exchange that contains an out message
cxfExchange - CXF exchange to be populated

getHeaderFilterStrategy

public org.apache.camel.spi.HeaderFilterStrategy getHeaderFilterStrategy()
Specified by:
getHeaderFilterStrategy in interface org.apache.camel.spi.HeaderFilterStrategyAware

setHeaderFilterStrategy

public void setHeaderFilterStrategy(org.apache.camel.spi.HeaderFilterStrategy strategy)
Specified by:
setHeaderFilterStrategy in interface org.apache.camel.spi.HeaderFilterStrategyAware

getResponsePayloadList

protected org.apache.cxf.message.MessageContentsList getResponsePayloadList(org.apache.cxf.message.Exchange exchange,
                                                                            List<Source> elements)

extractInvocationContextFromCamel

protected void extractInvocationContextFromCamel(org.apache.camel.Exchange camelExchange,
                                                 Map<String,Object> camelHeaders,
                                                 Map<String,Object> cxfContext,
                                                 String contextKey)
Parameters:
camelExchange -
cxfContext - Request or Response context
camelHeaders -
contextKey -

propagateHeadersFromCxfToCamel

protected void propagateHeadersFromCxfToCamel(org.apache.cxf.message.Message cxfMessage,
                                              org.apache.camel.Message camelMessage,
                                              org.apache.camel.Exchange exchange)
Parameters:
cxfMessage -
camelMessage -
exchange - provides context for filtering

replaceMultiPartContentType

protected String replaceMultiPartContentType(String contentType)

propagateHeadersFromCamelToCxf

protected void propagateHeadersFromCamelToCxf(org.apache.camel.Exchange camelExchange,
                                              Map<String,Object> camelHeaders,
                                              org.apache.cxf.message.Exchange cxfExchange,
                                              Map<String,Object> cxfContext)

getContentFromCxf

protected static Object getContentFromCxf(org.apache.cxf.message.Message message,
                                          DataFormat dataFormat)

addNamespace

protected static void addNamespace(Element element,
                                   Map<String,String> nsMap)

getPayloadBodyElements

protected static List<Source> getPayloadBodyElements(org.apache.cxf.message.Message message,
                                                     Map<String,String> nsMap)

getBodyFromCamel

public static Object getBodyFromCamel(org.apache.camel.Message out,
                                      DataFormat dataFormat)

copyJaxWsContext

public void copyJaxWsContext(org.apache.cxf.message.Exchange cxfExchange,
                             Map<String,Object> context)
Description copied from interface: CxfBinding

Copy the javax.xml.ws* headers into cxfExchange's outMessage, if the cxfExchange has no outMessage, skip this copy

Specified by:
copyJaxWsContext in interface CxfBinding
Parameters:
cxfExchange - CXF exchange to be populated
context - The map which used to store the message headers

extractJaxWsContext

public void extractJaxWsContext(org.apache.cxf.message.Exchange cxfExchange,
                                Map<String,Object> context)
Description copied from interface: CxfBinding

Extract the message headers which key are start from javax.xml.ws* from the CXF exchange's inMessage, and put these headers into the context

Specified by:
extractJaxWsContext in interface CxfBinding
Parameters:
cxfExchange - CXF exchange to be populated
context - The map which used to store the message headers


Apache CAMEL