org.apache.ode.bpel.engine
Class BrokeredMyRoleMessageExchangeImpl

java.lang.Object
  extended by org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl
      extended by org.apache.ode.bpel.engine.BrokeredMyRoleMessageExchangeImpl
All Implemented Interfaces:
MessageExchange, MyRoleMessageExchange

public class BrokeredMyRoleMessageExchangeImpl
extends MyRoleMessageExchangeImpl

A reliable MEP that delegates messages to a list of subscribers


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.ode.bpel.iapi.MyRoleMessageExchange
MyRoleMessageExchange.CorrelationStatus
 
Nested classes/interfaces inherited from interface org.apache.ode.bpel.iapi.MessageExchange
MessageExchange.FailureType, MessageExchange.MessageExchangePattern, MessageExchange.Status
 
Field Summary
protected static Messages __msgs
           
protected  MessageExchangeDAO _dao
           
protected  BpelEngineImpl _engine
           
protected  EndpointReference _epr
           
protected  java.lang.Long _iid
          Process-Instance identifier.
protected  javax.wsdl.Operation _operation
           
protected  javax.wsdl.PortType _portType
           
 
Fields inherited from class org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl
_process, _waitingCallbacks
 
Fields inherited from interface org.apache.ode.bpel.iapi.MessageExchange
PROPERTY_SEP_MYROLE_SESSIONID, PROPERTY_SEP_PARTNERROLE_EPR, PROPERTY_SEP_PARTNERROLE_SESSIONID
 
Constructor Summary
BrokeredMyRoleMessageExchangeImpl(BpelProcess process, BpelEngineImpl engine, java.util.List<MyRoleMessageExchange> subscribers, MessageExchangeDAO mexDao, MyRoleMessageExchange template)
          Creates a new BrokeredReliableMyRoleMessageExchangeImpl object.
 
Method Summary
 Message createMessage(javax.xml.namespace.QName msgType)
          Create a message associated with this exchange.
 MyRoleMessageExchange.CorrelationStatus getCorrelationStatus()
          Get the correlation state of the the invocation.
 MessageExchangeDAO getDAO()
           
 EndpointReference getEndpointReference()
          Use the EPR of one of the subscribers as my EPR
 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?).
 MessageExchange.MessageExchangePattern getPattern()
           
 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()
          Use the response from one of the subscribers as my response
 MessageExchange.Status getStatus()
          Get the message exchange status.
 int getSubscriberCount()
           
 java.util.concurrent.Future invoke(Message request)
          Propagate the invoke reliable call to each subscriber
 boolean isTransactionPropagated()
           
 void release()
          Should be called by the external partner when it's done with the message exchange.
 void setEndpointReference(EndpointReference ref)
           
 void setProperty(java.lang.String key, java.lang.String value)
          Set a message exchange property.
 void setSubscriberCount(int subscriberCount)
           
 
Methods inherited from class org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl
cloneMessage, complete, getClientId, getServiceName, isAsynchronous, release, responseReceived, setClientId, setCorrelationStatus, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.ode.bpel.iapi.MessageExchange
createMessage, getFault, getFaultExplanation, getFaultResponse, getMessageExchangeId, getMessageExchangePattern, getOperationName, getProperty, getPropertyNames, getRequest, isTransactionPropagated, release, setProperty
 

Field Detail

__msgs

protected static final Messages __msgs

_iid

protected java.lang.Long _iid
Process-Instance identifier.


_portType

protected javax.wsdl.PortType _portType

_operation

protected javax.wsdl.Operation _operation

_engine

protected final BpelEngineImpl _engine

_epr

protected EndpointReference _epr

_dao

protected MessageExchangeDAO _dao
Constructor Detail

BrokeredMyRoleMessageExchangeImpl

public BrokeredMyRoleMessageExchangeImpl(BpelProcess process,
                                         BpelEngineImpl engine,
                                         java.util.List<MyRoleMessageExchange> subscribers,
                                         MessageExchangeDAO mexDao,
                                         MyRoleMessageExchange template)
Creates a new BrokeredReliableMyRoleMessageExchangeImpl object.

Parameters:
process -
subscribers -
mexId -
oplink -
template -
Method Detail

invoke

public java.util.concurrent.Future invoke(Message request)
Propagate the invoke reliable call to each subscriber

Specified by:
invoke in interface MyRoleMessageExchange
Overrides:
invoke in class MyRoleMessageExchangeImpl

getEndpointReference

public EndpointReference getEndpointReference()
                                       throws BpelEngineException
Use the EPR of one of the subscribers as my EPR

Specified by:
getEndpointReference in interface MessageExchange
Returns:
type
Throws:
BpelEngineException - BpelEngineException

getResponse

public Message getResponse()
Use the response from one of the subscribers as my response

Specified by:
getResponse in interface MessageExchange
Returns:
type

getStatus

public MessageExchange.Status getStatus()
Description copied from interface: MessageExchange
Get the message exchange status.

Specified by:
getStatus in interface MessageExchange
Returns:

getCorrelationStatus

public MyRoleMessageExchange.CorrelationStatus getCorrelationStatus()
Description copied from interface: MyRoleMessageExchange
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).

Specified by:
getCorrelationStatus in interface MyRoleMessageExchange
Overrides:
getCorrelationStatus in class MyRoleMessageExchangeImpl
Returns:
correlation state of the invocation

getSubscriberCount

public int getSubscriberCount()

setSubscriberCount

public void setSubscriberCount(int subscriberCount)

getPortType

public javax.wsdl.PortType getPortType()
Description copied from interface: MessageExchange
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?

Specified by:
getPortType in interface MessageExchange
Returns:
WSDL port type description or null if not available.

getOperation

public javax.wsdl.Operation getOperation()
Description copied from interface: MessageExchange
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?

Specified by:
getOperation in interface MessageExchange
Returns:
WSDL operation description or null if not availble

getMessageExchangeId

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

Specified by:
getMessageExchangeId in interface MessageExchange
Returns:
unique message exchange identifier
Throws:
BpelEngineException

getOperationName

public java.lang.String getOperationName()
                                  throws BpelEngineException
Description copied from interface: MessageExchange
Get the name of the operation (WSDL 1.1) / message exchange (WSDL 1.2?).

Specified by:
getOperationName in interface MessageExchange
Returns:
name of the operation (WSDL 1.1) /message exchange (WSDL 1.2?).
Throws:
BpelEngineException

getMessageExchangePattern

public MessageExchange.MessageExchangePattern getMessageExchangePattern()
Description copied from interface: MessageExchange
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.

Specified by:
getMessageExchangePattern in interface MessageExchange
Returns:
type of message exchange created by the invocation

isTransactionPropagated

public boolean isTransactionPropagated()
                                throws BpelEngineException
Specified by:
isTransactionPropagated in interface MessageExchange
Throws:
BpelEngineException

getFault

public javax.xml.namespace.QName getFault()
Description copied from interface: MessageExchange
Get the fault type.

Specified by:
getFault in interface MessageExchange
Returns:
fault type, or null if not available/applicable.

getFaultResponse

public Message getFaultResponse()
Description copied from interface: MessageExchange
Get the fault resposne message.

Specified by:
getFaultResponse in interface MessageExchange
Returns:
fault response, or null if not available/applicable.

getFaultExplanation

public java.lang.String getFaultExplanation()
Specified by:
getFaultExplanation in interface MessageExchange

getPattern

public MessageExchange.MessageExchangePattern getPattern()

getRequest

public Message getRequest()
Description copied from interface: MessageExchange
Get the request message.

Specified by:
getRequest in interface MessageExchange
Returns:
request message

getDAO

public MessageExchangeDAO getDAO()

createMessage

public Message createMessage(javax.xml.namespace.QName msgType)
Description copied from interface: MessageExchange
Create a message associated with this exchange.

Specified by:
createMessage in interface MessageExchange
Parameters:
msgType - message type
Returns:
a new Message

setEndpointReference

public void setEndpointReference(EndpointReference ref)

getProperty

public java.lang.String getProperty(java.lang.String key)
Description copied from interface: MessageExchange
Get a message exchange property.

Specified by:
getProperty in interface MessageExchange
Parameters:
key - property key
Returns:
property value

setProperty

public void setProperty(java.lang.String key,
                        java.lang.String value)
Description copied from interface: MessageExchange
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.

Specified by:
setProperty in interface MessageExchange
Parameters:
key - property key
value - property value

getPropertyNames

public java.util.Set<java.lang.String> getPropertyNames()
Description copied from interface: MessageExchange
Get a set containing the names of the defined properties.

Specified by:
getPropertyNames in interface MessageExchange
Returns:
set of property names.

release

public void release()
Description copied from interface: MessageExchange
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.

Specified by:
release in interface MessageExchange