org.apache.ode.bpel.iapi
Interface MessageExchange

All Known Subinterfaces:
MyRoleMessageExchange, PartnerRoleMessageExchange
All Known Implementing Classes:
BrokeredMyRoleMessageExchangeImpl, PartnerRoleMessageExchangeImpl

public interface MessageExchange

A representation of a communication (message-exchange) between the BPEL BPEL engine and an external "partner".


Nested Class Summary
static class MessageExchange.FailureType
          Enumeration of the types of failures.
static class MessageExchange.MessageExchangePattern
          Enumeration of message exchange patterns.
static class MessageExchange.Status
          Enumeration of the possible states for the message exchange.
 
Field Summary
static java.lang.String PROPERTY_SEP_MYROLE_SESSIONID
           
static java.lang.String PROPERTY_SEP_PARTNERROLE_EPR
           
static java.lang.String PROPERTY_SEP_PARTNERROLE_SESSIONID
           
 
Method Summary
 Message createMessage(javax.xml.namespace.QName msgType)
          Create a message associated with this exchange.
 EndpointReference getEndpointReference()
          Get a reference to the end-point targeted by this message exchange.
 javax.xml.namespace.QName getFault()
          Get the fault type.
 java.lang.String getFaultExplanation()
           
 Message getFaultResponse()
          Get the fault resposne message.
 java.lang.String getMessageExchangeId()
          Get the message exchange identifier.
 MessageExchange.MessageExchangePattern getMessageExchangePattern()
          Return the type of message-exchange that resulted form this invocation (request only/request-respone).
 javax.wsdl.Operation getOperation()
          Get the operation description for this message exchange.
 java.lang.String getOperationName()
          Get the name of the operation (WSDL 1.1) / message exchange (WSDL 1.2?).
 javax.wsdl.PortType getPortType()
          Get the port type description for this message exchange.
 java.lang.String getProperty(java.lang.String key)
          Get a message exchange property.
 java.util.Set<java.lang.String> getPropertyNames()
          Get a set containing the names of the defined properties.
 Message getRequest()
          Get the request message.
 Message getResponse()
          Get the response message.
 MessageExchange.Status getStatus()
          Get the message exchange status.
 boolean isTransactionPropagated()
           
 void release()
          Should be called by the external partner when it's done with the message exchange.
 void setProperty(java.lang.String key, java.lang.String value)
          Set a message exchange property.
 

Field Detail

PROPERTY_SEP_MYROLE_SESSIONID

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

PROPERTY_SEP_PARTNERROLE_SESSIONID

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

PROPERTY_SEP_PARTNERROLE_EPR

static final java.lang.String PROPERTY_SEP_PARTNERROLE_EPR
See Also:
Constant Field Values
Method Detail

getMessageExchangeId

java.lang.String getMessageExchangeId()
                                      throws BpelEngineException
Get the message exchange identifier. This identifier should be globally unique as the BPEL engine may keep identifiers for extended periods of time.

Returns:
unique message exchange identifier
Throws:
BpelEngineException

getOperationName

java.lang.String getOperationName()
                                  throws BpelEngineException
Get the name of the operation (WSDL 1.1) / message exchange (WSDL 1.2?).

Returns:
name of the operation (WSDL 1.1) /message exchange (WSDL 1.2?).
Throws:
BpelEngineException

getEndpointReference

EndpointReference getEndpointReference()
                                       throws BpelEngineException
Get a reference to the end-point targeted by this message exchange.

Returns:
end-point reference for this message exchange
Throws:
BpelEngineException

getMessageExchangePattern

MessageExchange.MessageExchangePattern getMessageExchangePattern()
Return the type of message-exchange that resulted form this invocation (request only/request-respone). If a MessageExchange.MessageExchangePattern.REQUEST_RESPONSE message-exchange was created, then the caller should expect a response in the future.

Returns:
type of message exchange created by the invocation

createMessage

Message createMessage(javax.xml.namespace.QName msgType)
Create a message associated with this exchange.

Parameters:
msgType - message type
Returns:
a new Message

isTransactionPropagated

boolean isTransactionPropagated()
                                throws BpelEngineException
Throws:
BpelEngineException

getStatus

MessageExchange.Status getStatus()
Get the message exchange status.

Returns:

getRequest

Message getRequest()
Get the request message.

Returns:
request message

getResponse

Message getResponse()
Get the response message.

Returns:
response message (or null if not avaiable)

getFault

javax.xml.namespace.QName getFault()
Get the fault type.

Returns:
fault type, or null if not available/applicable.

getFaultExplanation

java.lang.String getFaultExplanation()

getFaultResponse

Message getFaultResponse()
Get the fault resposne message.

Returns:
fault response, or null if not available/applicable.

getOperation

javax.wsdl.Operation getOperation()
Get the operation description for this message exchange. It is possible that the description cannot be resolved, for example if the EPR is unknown or if the operation does not exist. TODO: How to get rid of the WSDL4j dependency?

Returns:
WSDL operation description or null if not availble

getPortType

javax.wsdl.PortType getPortType()
Get the port type description for this message exchange. It is possible that the description cannot be resolved, for example if the EPR is unknown or if the operation does not exist. TODO: How to get rid of the WSDL4j dependency?

Returns:
WSDL port type description or null if not available.

setProperty

void setProperty(java.lang.String key,
                 java.lang.String value)
Set a message exchange property. Message exchange properties are not interpreted by the engine--they exist to enable the integration layer to persist information about the exchange.

Parameters:
key - property key
value - property value

getProperty

java.lang.String getProperty(java.lang.String key)
Get a message exchange property.

Parameters:
key - property key
Returns:
property value

getPropertyNames

java.util.Set<java.lang.String> getPropertyNames()
Get a set containing the names of the defined properties.

Returns:
set of property names.

release

void release()
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.