org.apache.ode.bpel.iapi

## Interface MyRoleMessageExchange

- All Superinterfaces:
    MessageExchange
  All Known Implementing Classes:
    BrokeredMyRoleMessageExchangeImpl, MyRoleMessageExchangeImpl

      public interface MyRoleMessageExchange
      extends MessageExchange

  Extension of the `MessageExchange` interface that is provided by the engine for message-exchanges where the engine acts as the server (i.e. where the engine is "invoked").

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static class` | `MyRoleMessageExchange.CorrelationStatus` Enumeration of message correlation results.

    - ### Nested classes/interfaces inherited from interface org.apache.ode.bpel.iapi.MessageExchange

      `MessageExchange.FailureType, MessageExchange.MessageExchangePattern, MessageExchange.Status`

  - ### Field Summary

    - ### Fields inherited from interface org.apache.ode.bpel.iapi.MessageExchange

      `PROPERTY_SEP_MYROLE_SESSIONID, PROPERTY_SEP_PARTNERROLE_EPR, PROPERTY_SEP_PARTNERROLE_SESSIONID`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `complete()` Complete the message, exchange: indicates that the client has receive the response (if any).
    `java.lang.String` | `getClientId()` Get the previously associated client key for this exchange.
    `MyRoleMessageExchange.CorrelationStatus` | `getCorrelationStatus()` Get the correlation state of the the invocation.
    `javax.xml.namespace.QName` | `getServiceName()` Get the name of the service targetted in this message exchange.
    `java.util.concurrent.Future` | `invoke(Message request)` "Invoke" a process hosted by the BPEL engine.
    `void` | `release(boolean instanceSucceeded)` Should be called by the external partner when it's done with the message exchange.
    `void` | `setClientId(java.lang.String clientKey)` Associate a client key with this message exchange.

    - ### Methods inherited from interface org.apache.ode.bpel.iapi.MessageExchange

      `createMessage, getEndpointReference, getFault, getFaultExplanation, getFaultResponse, getMessageExchangeId, getMessageExchangePattern, getOperation, getOperationName, getPortType, getProperty, getPropertyNames, getRequest, getResponse, getStatus, isTransactionPropagated, release, setProperty`

- - ### Method Detail

    - #### getCorrelationStatus

          MyRoleMessageExchange.CorrelationStatus getCorrelationStatus()

      Get the correlation state of the the invocation. An invocation will either create a new process instance, match an existing instance, or be queued for consumption by an instance in the future (see `CorrelationType` for details).
      Returns:
        correlation state of the invocation

    - #### invoke

          java.util.concurrent.Future invoke(Message request)

      "Invoke" a process hosted by the BPEL engine. The state of the invocation may be obtained by a call to the `MessageExchange.getStatus()` method. It is possible that the response for the operation is not immediately available (i.e the call to `invoke(Message)` will return before a response is available). In such cases, `MessageExchange.getStatus()` == `Status#ASYNC` and the integration layer will receive an asynchronous notification from the BPEL engine via the `MessageExchangeContext.onAsyncReply(MyRoleMessageExchange)` when the response become available.

    - #### complete

          void complete()

      Complete the message, exchange: indicates that the client has receive the response (if any).

    - #### setClientId

          void setClientId(java.lang.String clientKey)

      Associate a client key with this message exchange.
      Parameters:
        `clientKey` -

    - #### getClientId

          java.lang.String getClientId()

      Get the previously associated client key for this exchange.
      Returns:

    - #### getServiceName

          javax.xml.namespace.QName getServiceName()

      Get the name of the service targetted in this message exchange.
      Returns:
        service name

    - #### release

          void release(boolean instanceSucceeded)

      Should be called by the external partner when it's done with the message exchange. Ncessary for a better resource management and proper mex cleanup.