## Uses of Interface
org.apache.cxf.message.Exchange

- Packages that use Exchange
  Package | Description
  --- | ---
  org.apache.cxf.endpoint | Client and Server related classes.
  org.apache.cxf.interceptor | Core interceptor interfaces which form the basis for message processing chains in CXF.
  org.apache.cxf.message |
  org.apache.cxf.service.invoker |
  org.apache.cxf.service.model |
  org.apache.cxf.transport | Transport related classes.
  org.apache.cxf.ws.addressing |

- - ### Uses of Exchange in org.apache.cxf.endpoint

    Methods in org.apache.cxf.endpoint with parameters of type Exchange
    Modifier and Type | Method and Description
    --- | ---
    `void` | NullConduitSelector.`complete(Exchange exchange)` Called on completion of the MEP for which the Conduit was required.
    `void` | PreexistingConduitSelector.`complete(Exchange exchange)` Called on completion of the MEP for which the Conduit was required.
    `void` | AbstractConduitSelector.`complete(Exchange exchange)` Called on completion of the MEP for which the Conduit was required.
    `void` | ConduitSelector.`complete(Exchange exchange)` Called on completion of the MEP for which the Conduit was required.
    `protected Exception` | ClientImpl.`getException(Exchange exchange)`
    `Object[]` | ClientImpl.`invoke(BindingOperationInfo oi, Object[] params, Exchange exchange)`
    `Object[]` | Retryable.`invoke(BindingOperationInfo oi, Object[] params, Map<String,Object> context, Exchange exchange)`
    `Object[]` | Client.`invoke(BindingOperationInfo oi, Object[] params, Map<String,Object> context, Exchange exchange)` Invokes an operation synchronously
    `Object[]` | ClientImpl.`invoke(BindingOperationInfo oi, Object[] params, Map<String,Object> context, Exchange exchange)`
    `void` | Client.`invoke(ClientCallback callback, BindingOperationInfo oi, Object[] params, Exchange exchange)` Invokes an operation asynchronously
    `void` | ClientImpl.`invoke(ClientCallback callback, BindingOperationInfo oi, Object[] params, Exchange exchange)`
    `void` | Client.`invoke(ClientCallback callback, BindingOperationInfo oi, Object[] params, Map<String,Object> context, Exchange exchange)` Invokes an operation asynchronously
    `void` | ClientImpl.`invoke(ClientCallback callback, BindingOperationInfo oi, Object[] params, Map<String,Object> context, Exchange exchange)`
    `protected Object[]` | ClientImpl.`processResult(Message message, Exchange exchange, BindingOperationInfo oi, Map<String,Object> resContext)`
    `protected void` | ClientImpl.`setExchangeProperties(Exchange exchange, Endpoint endpoint, BindingOperationInfo boi)`
    `protected void` | ClientImpl.`waitResponse(Exchange exchange)`

  - ### Uses of Exchange in org.apache.cxf.interceptor

    Methods in org.apache.cxf.interceptor with parameters of type Exchange
    Modifier and Type | Method and Description
    --- | ---
    `protected MessagePartInfo` | AbstractInDatabindingInterceptor.`findMessagePart(Exchange exchange, Collection<OperationInfo> operations, QName name, boolean client, int index, Message message)` Find the next possible message part in the message.
    `protected BindingOperationInfo` | DocLiteralInInterceptor.`getBindingOperationInfo(Exchange exchange, QName name, boolean client)`
    `protected BindingOperationInfo` | AbstractInDatabindingInterceptor.`getBindingOperationInfo(Exchange exchange, QName name, boolean client)` Returns a BindingOperationInfo if the operation is indentified as a wrapped method, return null if it is not a wrapped method (i.e., it is a bare method)
    `static InterceptorChain` | OutgoingChainInterceptor.`getOutInterceptorChain(Exchange ex)`
    `protected void` | OutFaultChainInitiatorObserver.`initializeInterceptors(Exchange ex, PhaseInterceptorChain chain)`
    `protected void` | InFaultChainInitiatorObserver.`initializeInterceptors(Exchange ex, PhaseInterceptorChain chain)`
    `protected void` | AbstractFaultChainInitiatorObserver.`initializeInterceptors(Exchange ex, PhaseInterceptorChain chain)`
    `protected void` | AbstractOutDatabindingInterceptor.`writeParts(Message message, Exchange exchange, BindingOperationInfo operation, MessageContentsList objs, List<MessagePartInfo> parts)`

  - ### Uses of Exchange in org.apache.cxf.message

    Classes in org.apache.cxf.message that implement Exchange
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ExchangeImpl`

    Methods in org.apache.cxf.message that return Exchange
    Modifier and Type | Method and Description
    --- | ---
    `Exchange` | MessageImpl.`getExchange()`
    `Exchange` | Message.`getExchange()`
    `Exchange` | AbstractWrappedMessage.`getExchange()`

    Methods in org.apache.cxf.message with parameters of type Exchange
    Modifier and Type | Method and Description
    --- | ---
    `void` | MessageImpl.`setExchange(Exchange e)`
    `void` | Message.`setExchange(Exchange exchange)`
    `void` | AbstractWrappedMessage.`setExchange(Exchange exchange)`

  - ### Uses of Exchange in org.apache.cxf.service.invoker

    Methods in org.apache.cxf.service.invoker with parameters of type Exchange
    Modifier and Type | Method and Description
    --- | ---
    `protected Method` | AbstractInvoker.`adjustMethodAndParams(Method m, Exchange ex, List<Object> params)`
    `protected void` | AbstractInvoker.`checkSuspendedInvocation(Exchange exchange, Object serviceObject, Method m, List<Object> params, Throwable t)`
    `Object` | PooledFactory.`create(Exchange ex)` Creates the object that will be used for the invoke
    `Object` | SpringBeanFactory.`create(Exchange e)` Creates the object that will be used for the invoke
    `Object` | Factory.`create(Exchange e)` Creates the object that will be used for the invoke
    `Object` | PerRequestFactory.`create(Exchange ex)`
    `Object` | SingletonFactory.`create(Exchange ex)` Creates the object that will be used for the invoke
    `Object` | SessionFactory.`create(Exchange e)` Creates the object that will be used for the invoke
    `protected Object` | PooledFactory.`createObject(Exchange e)`
    `Object` | BeanInvoker.`getServiceObject(Exchange ex)`
    `abstract Object` | AbstractInvoker.`getServiceObject(Exchange context)` Creates and returns a service object depending on the scope.
    `Object` | FactoryInvoker.`getServiceObject(Exchange ex)`
    `Object[]` | AbstractInvoker.`insertExchange(Method method, Object[] params, Exchange context)`
    `Object` | Invoker.`invoke(Exchange exchange, Object o)`
    `Object` | AbstractInvoker.`invoke(Exchange exchange, Object o)`
    `protected Object` | AbstractInvoker.`invoke(Exchange exchange, Object serviceObject, Method m, List<Object> params)`
    `protected Object` | AbstractInvoker.`performInvocation(Exchange exchange, Object serviceObject, Method m, Object[] paramArray)`
    `void` | PooledFactory.`release(Exchange ex, Object o)` Post invoke, this is called to allow the factory to release the object, store it, etc...
    `void` | SpringBeanFactory.`release(Exchange e, Object o)` Post invoke, this is called to allow the factory to release the object, store it, etc...
    `void` | Factory.`release(Exchange e, Object o)` Post invoke, this is called to allow the factory to release the object, store it, etc...
    `void` | PerRequestFactory.`release(Exchange ex, Object o)`
    `void` | SingletonFactory.`release(Exchange ex, Object o)` Post invoke, this is called to allow the factory to release the object, store it, etc...
    `void` | SessionFactory.`release(Exchange e, Object o)` Post invoke, this is called to allow the factory to release the object, store it, etc...
    `void` | AbstractInvoker.`releaseServiceObject(Exchange context, Object obj)` Called when the invoker is done with the object.
    `void` | FactoryInvoker.`releaseServiceObject(Exchange ex, Object obj)`

  - ### Uses of Exchange in org.apache.cxf.service.model

    Methods in org.apache.cxf.service.model with parameters of type Exchange
    Modifier and Type | Method and Description
    --- | ---
    `static BindingOperationInfo` | ServiceModelUtil.`getOperation(Exchange exchange, QName opName)`
    `static BindingOperationInfo` | ServiceModelUtil.`getOperation(Exchange exchange, String opName)`
    `static BindingOperationInfo` | ServiceModelUtil.`getOperationForWrapperElement(Exchange exchange, QName opName, boolean output)`
    `static Service` | ServiceModelUtil.`getService(Exchange exchange)`
    `static String` | ServiceModelUtil.`getTargetNamespace(Exchange exchange)`

  - ### Uses of Exchange in org.apache.cxf.transport

    Methods in org.apache.cxf.transport with parameters of type Exchange
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | ChainInitiationObserver.`setExchangeProperties(Exchange exchange, Message m)`
    `protected void` | MultipleEndpointObserver.`setExchangeProperties(Exchange exchange, Message m)`

  - ### Uses of Exchange in org.apache.cxf.ws.addressing

    Methods in org.apache.cxf.ws.addressing with parameters of type Exchange
    Modifier and Type | Method and Description
    --- | ---
    `static Destination` | ContextUtils.`createDecoupledDestination(Exchange exchange, EndpointReferenceType reference)`
    `static Message` | ContextUtils.`createMessage(Exchange exchange)` Create a Binding specific Message.
    `static void` | ContextUtils.`propogateReceivedMAPs(AddressingProperties inMAPs, Exchange exchange)` Propagate inbound MAPs onto full reponse & fault messages.

Apache CXF