org.apache.ode.bpel.iapi
Interface MessageExchange

All Known Subinterfaces:
MyRoleMessageExchange, PartnerRoleMessageExchange
All Known Implementing Classes:
BrokeredReliableMyRoleMessageExchangeImpl, BrokeredTransactedMyRoleMessageExchangeImpl, BrokeredUnreliableMyRoleMessageExchangeImpl, ReliablePartnerRoleMessageExchangeImpl, TransactedMyRoleMessageExchangeImpl, TransactedPartnerRoleMessageExchangeImpl, UnreliableMyRoleMessageExchangeImpl, UnreliablePartnerRoleMessageExchangeImpl

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.AckType
           
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_MYROLE_TRANSACTED
           
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.
 MessageExchange.AckType getAckType()
           
 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.
 InvocationStyle getInvocationStyle()
          Get the invocation style for this message exchange.
 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.
 long getTimeout()
          Get the time-out in ms.
 boolean isSafe()
          Report whether the operation is "safe" in the sense of the WSDL1.2 meaning of the term.
 boolean isTransactional()
          Indicates whether a transactions in associated with the message exchange.
 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.
 void setTimeout(long timeout)
          Set the time-out in ms
 

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

PROPERTY_SEP_MYROLE_TRANSACTED

static final java.lang.String PROPERTY_SEP_MYROLE_TRANSACTED
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

getInvocationStyle

InvocationStyle getInvocationStyle()
Get the invocation style for this message exchange.

Returns:

getTimeout

long getTimeout()
Get the time-out in ms.

Returns:

setTimeout

void setTimeout(long timeout)
Set the time-out in ms

Parameters:
timeout -

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

getAckType

MessageExchange.AckType getAckType()

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

isTransactional

boolean isTransactional()
Indicates whether a transactions in associated with the message exchange. If this is the case, then the object must be used from a context (i.e. thread) that is associated with the same transaction. The TRANSACTED and RELIABLE invocation styles will have this flag set to true. ASYNC and BLOCKING styles will always have this set to false.

Returns:
true if there is a transaction associated with the object, false otherwise.

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.

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.

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.

isSafe

boolean isSafe()
Report whether the operation is "safe" in the sense of the WSDL1.2 meaning of the term. That is, is the operation side-effect free?

Returns:
true if the operation is safe, false otherwise.

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.