## javax.jbi.messaging
Interface MessageExchangeFactory

    public interface MessageExchangeFactory

A message exchange factory is used used to create new instances of MessageExchange. Service consumers use these factories to create message exchanges when initiating a new service request. Message exchange factories are created using the javax.jbi.component.ComponentContext given to the component during its initialization (see javax.jbi.component.ComponentLifeCycle ). There are a variety of ways to creating such factories, each of which creates a context that is used to provide some of the default properties of MessageExchange instances created by the factory instances. For example, a factory can be created for a particular endpoint, ensuring that all exchanges created by the factory have that endpoint set as the default endpoint property of the exchange. This allows components to retain factories as a way of aligning internal processing context with the context contained in the factory, ensuring that the exchanges created consistently reflect that context.

Author:
  JSR208 Expert Group

Method Summary
`MessageExchange` `createExchange(javax.xml.namespace.QName serviceName, javax.xml.namespace.QName operationName)` Creates a new MessageExchange instance used to initiate a service invocation.
`MessageExchange` `createExchange(java.net.URI pattern)` Creates a new MessageExchange instance used to initiate a service invocation.
`InOnly` `createInOnlyExchange()` Convenience method that creates an In-Only message exchange.
`InOptionalOut` `createInOptionalOutExchange()` Convenience method that creates an In-Optional-Out message exchange.
`InOut` `createInOutExchange()` Convenience method that creates an In-Out message exchange.
`RobustInOnly` `createRobustInOnlyExchange()` Convenience method that creates an Robust-In-Only message exchange.

Method Detail

### createExchange

    MessageExchange createExchange(javax.xml.namespace.QName serviceName,
                                   javax.xml.namespace.QName operationName)
                                   throws MessagingException

  Creates a new MessageExchange instance used to initiate a service invocation. JBI defines a set of four basic message exchange types, corresponding to the predefined in-* WSDL 2.0 Message Exchange Patterns.

  Parameters:
    `serviceName` - name of the service to be invoked
    `operationName` - name of the operation to be invoked
  Returns:
    new message exchange, initialized for invoking the given service and operation
  Throws:
    `MessagingException` - if the given service or operation are not registered with the NMR or the factory was created for a particular interface, and the given serviceName does not implement that interface.

### createExchange

    MessageExchange createExchange(java.net.URI pattern)
                                   throws MessagingException

  Creates a new MessageExchange instance used to initiate a service invocation. JBI defines a set of eight fundamental message exchange types which are created using binding and engine delivery channels. This base method is provided for extensibility, to satisfy the need for vendor-specific message exchange patterns. The registration and administration of these patterns is not addressed by JBI.

  Parameters:
    `pattern` - message exchange pattern
  Returns:
    new message exchange
  Throws:
    `MessagingException` - specified pattern is not registered to a message exchange type

### createInOnlyExchange

    InOnly createInOnlyExchange()
                                throws MessagingException

  Convenience method that creates an In-Only message exchange.

  Returns:
    new In-Only message exchange
  Throws:
    `MessagingException` - failed to create exchange

### createInOptionalOutExchange

    InOptionalOut createInOptionalOutExchange()
                                              throws MessagingException

  Convenience method that creates an In-Optional-Out message exchange.

  Returns:
    new In-Optional-Out message exchange
  Throws:
    `MessagingException` - failed to create exchange

### createInOutExchange

    InOut createInOutExchange()
                              throws MessagingException

  Convenience method that creates an In-Out message exchange.

  Returns:
    new In-Out message exchange
  Throws:
    `MessagingException` - failed to create exchange

### createRobustInOnlyExchange

    RobustInOnly createRobustInOnlyExchange()
                                            throws MessagingException

  Convenience method that creates an Robust-In-Only message exchange.

  Returns:
    new Robust-In-Only message exchange
  Throws:
    `MessagingException` - failed to create exchange

${build-info}

${copyright}