Author: assaf
Date: Thu Sep 21 16:37:56 2006
New Revision: 448736
URL: http://svn.apache.org/viewvc?view=rev&rev=448736
Log:
Activity failures are not stored in the database and returned from the PMAPI
Modified:
incubator/ode/trunk/axis2/src/main/wsdl/pmapi.wsdl
incubator/ode/trunk/bpel-api/src/main/xsd/pmapi.xsd
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/ProcessInstanceDaoImpl.java
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/BpelRuntimeContext.java
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/INVOKE.java
incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/CoreBpelTest.java
incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ActivityRecoveryDaoImpl.java
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HActivityRecovery.java
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HPartnerLink.java
Modified: incubator/ode/trunk/axis2/src/main/wsdl/pmapi.wsdl
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/axis2/src/main/wsdl/pmapi.wsdl?view=diff&rev=448736&r1=448735&r2=448736
==============================================================================
--- incubator/ode/trunk/axis2/src/main/wsdl/pmapi.wsdl (original)
+++ incubator/ode/trunk/axis2/src/main/wsdl/pmapi.wsdl Thu Sep 21 16:37:56 2006
@@ -211,6 +211,14 @@
<message name="deleteOutput">
<part name="iids" type="tns:iidsType"/>
</message>
+ <message name="recoverActivityInput">
+ <part name="iid" type="xsd:long"/>
+ <part name="aid" type="xsd:long"/>
+ <part name="action" type="xsd:string"/>
+ </message>
+ <message name="recoverActivityOutput">
+ <part name="instance-info" type="typ:tInstanceInfo"/>
+ </message>
<portType name="ProcessManagementPortType">
<operation name="listProcesses">
@@ -316,6 +324,10 @@
<input message="tns:deleteInput"/>
<output message="tns:deleteOutput"/>
</operation>
+ <operation name="recoverActivity">
+ <input message="tns:recoverActivityInput"/>
+ <output message="tns:recoverActivityOutput"/>
+ </operation>
</portType>
<binding name="ProcessManagementBinding"
type="tns:ProcessManagementPortType">
@@ -535,6 +547,15 @@
<soap:body namespace="http://www.apache.org/ode/pmapi"
use="encoded"/>
</output>
</operation>
+ <operation name="recoverActivity">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi"
use="encoded"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi"
use="encoded"/>
+ </output>
+ </operation>
</binding>
<service name="ProcessManagementService">
@@ -548,4 +569,4 @@
</port>
</service>
-</definitions>
\ No newline at end of file
+</definitions>
Modified: incubator/ode/trunk/bpel-api/src/main/xsd/pmapi.xsd
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-api/src/main/xsd/pmapi.xsd?view=diff&rev=448736&r1=448735&r2=448736
==============================================================================
--- incubator/ode/trunk/bpel-api/src/main/xsd/pmapi.xsd (original)
+++ incubator/ode/trunk/bpel-api/src/main/xsd/pmapi.xsd Thu Sep 21 16:37:56 2006
@@ -447,7 +447,7 @@
<documentation>Reason for
failure.</documentation>
</annotation>
</element>
- <element name="action" type="xs:string">
+ <element name="actions" type="xs:string">
<annotation>
<documentation>Allowed recovery actions (space
separated list of action names).</documentation>
</annotation>
Modified:
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java?view=diff&rev=448736&r1=448735&r2=448736
==============================================================================
---
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
(original)
+++
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
Thu Sep 21 16:37:56 2006
@@ -1138,12 +1138,12 @@
}
public void registerActivityForRecovery(ActivityRecoveryChannel channel,
long activityId, String reason,
- Date dateTime, Element data, String[] actions) {
+ Date dateTime, Element data, String[] actions, int retries) {
if (reason == null)
reason = "Unspecified";
if (dateTime == null)
dateTime = new Date();
- _dao.createActivityRecovery(channel.export(), (int) activityId,
reason, dateTime, data, actions);
+ _dao.createActivityRecovery(channel.export(), (int) activityId,
reason, dateTime, data, actions, retries);
}
public void unregisterActivityForRecovery(ActivityRecoveryChannel channel)
{
Modified:
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java?view=diff&rev=448736&r1=448735&r2=448736
==============================================================================
---
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
(original)
+++
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
Thu Sep 21 16:37:56 2006
@@ -24,6 +24,7 @@
import org.apache.ode.bpel.common.BpelEventFilter;
import org.apache.ode.bpel.common.InstanceFilter;
import org.apache.ode.bpel.common.ProcessFilter;
+import org.apache.ode.bpel.dao.ActivityRecoveryDAO;
import org.apache.ode.bpel.dao.BpelDAOConnection;
import org.apache.ode.bpel.dao.CorrelationSetDAO;
import org.apache.ode.bpel.dao.ProcessDAO;
@@ -314,6 +315,31 @@
return genInstanceInfoDocument(iid);
}
+ public InstanceInfoDocument recoverActivity(final Long iid, final long
aid, final String action) {
+ try {
+ QName processId = _db.exec(new BpelDatabase.Callable<QName>() {
+ public QName run(BpelDAOConnection conn) throws Exception {
+ ProcessInstanceDAO instance = conn.getInstance(iid);
+/*
+ if (instance == null)
+ return null;
+ for (ActivityRecoveryDAO recovery:
instance.getActivityRecoveries()) {
+ if (recovery.getActivityId() == aid) {
+ runtime.recoverActivity(recovery.getChannel(), action);
+ break;
+ }
+ }
+*/
+ return instance.getProcess().getProcessId();
+ }
+ });
+ } catch (Exception e) {
+ __log.error("DbError",e);
+ throw new ProcessingException("DbError", e);
+ }
+ return genInstanceInfoDocument(iid);
+ }
+
public Collection<Long> delete(String filter) {
final InstanceFilter instanceFilter = new InstanceFilter(filter);
@@ -793,12 +819,26 @@
}
if (includeActivityInfo) {
+ Collection<ActivityRecoveryDAO> recoveries =
scope.getProcessInstance().getActivityRecoveries();
+
TScopeInfo.Activities activities = scopeInfo.addNewActivities();
List<BpelEvent> events = scope.listEvents(null);
ActivityStateDocumentBuilder b = new
ActivityStateDocumentBuilder();
for (BpelEvent e : events) b.onEvent(e);
- for (ActivityInfoDocument ai : b.getActivities())
+ for (ActivityInfoDocument ai : b.getActivities()) {
+ for (ActivityRecoveryDAO recovery : recoveries) {
+ if
(String.valueOf(recovery.getActivityId()).equals(ai.getActivityInfo().getAiid()))
{
+ TActivityInfo.Failure failure =
ai.getActivityInfo().addNewFailure();
+ failure.setReason(recovery.getReason());
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(recovery.getDateTime());
+ failure.setDtFailure(cal);
+ failure.setActions(recovery.getActions());
+ ai.getActivityInfo().setStatus(TActivityStatus.FAILURE);
+ }
+ }
activities.addNewActivityInfo().set(ai.getActivityInfo());
+ }
}
}
Modified:
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/ProcessInstanceDaoImpl.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/ProcessInstanceDaoImpl.java?view=diff&rev=448736&r1=448735&r2=448736
==============================================================================
---
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/ProcessInstanceDaoImpl.java
(original)
+++
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/ProcessInstanceDaoImpl.java
Thu Sep 21 16:37:56 2006
@@ -50,6 +50,9 @@
private FaultDAO _fault;
private CorrelatorDAO _instantiatingCorrelator;
private BpelDAOConnection _conn;
+ private int _failureCount;
+ private Date _failureDateTime;
+ private Map<String, ActivityRecoveryDAO> _activityRecoveries = new
HashMap<String, ActivityRecoveryDAO>();
// TODO: Remove this, we should be using the main event store...
private List<ProcessInstanceEvent> _events = new
ArrayList<ProcessInstanceEvent>();
@@ -280,15 +283,89 @@
return ret;
}
-
- public int getActivityFailureCount() { return 0; }
- public Date getActivityFailureDateTime() { return null; }
- public Collection<ActivityRecoveryDAO> getActivityRecoveries() { return
null; }
- public void createActivityRecovery(String channel, int activityId, String
reason, Date dateTime, Element data, String[] actions) { }
- public void deleteActivityRecovery(String channel) { }
+ public int getActivityFailureCount() {
+ return _failureCount;
+ }
+
+ public Date getActivityFailureDateTime() {
+ return _failureDateTime;
+ }
+
+ public Collection<ActivityRecoveryDAO> getActivityRecoveries() {
+ return _activityRecoveries.values();
+ }
+
+ public void createActivityRecovery(String channel, long activityId, String
reason, Date dateTime,
+ Element data, String[] actions, int
retries) {
+ _activityRecoveries.put(channel, new ActivityRecoveryDAOImpl(channel,
activityId, reason, dateTime, data, actions, retries));
+ _failureCount = _activityRecoveries.size();
+ _failureDateTime = dateTime;
+ }
+
+ public void deleteActivityRecovery(String channel) {
+ _activityRecoveries.remove(channel);
+ _failureCount = _activityRecoveries.size();
+ }
public long genMonotonic() {
return ++_seq;
+ }
+
+ static class ActivityRecoveryDAOImpl implements ActivityRecoveryDAO {
+
+ private long _activityId;
+ private String _channel;
+ private String _reason;
+ private Element _data;
+ private Date _dateTime;
+ private String _actions;
+ private int _retries;
+
+ ActivityRecoveryDAOImpl(String channel, long activityId, String reason,
Date dateTime,
+ Element data, String[] actions, int retries) {
+ _activityId = activityId;
+ _channel = channel;
+ _reason = reason;
+ _data = data;
+ _dateTime = dateTime;
+ _actions = actions[0];
+ for (int i = 1; i < actions.length; ++i)
+ _actions += " " + actions[i];
+ _retries = retries;
+ }
+
+ public long getActivityId() {
+ return _activityId;
+ }
+
+ public String getChannel() {
+ return _channel;
+ }
+
+ public String getReason() {
+ return _reason;
+ }
+
+ public Element getData() {
+ return _data;
+ }
+
+ public Date getDateTime() {
+ return _dateTime;
+ }
+
+ public String getActions() {
+ return _actions;
+ }
+
+ public String[] getActionsList() {
+ return _actions.split(" ");
+ }
+
+ public int getRetries() {
+ return _retries;
+ }
+
}
}
Modified:
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/BpelRuntimeContext.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/BpelRuntimeContext.java?view=diff&rev=448736&r1=448735&r2=448736
==============================================================================
---
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/BpelRuntimeContext.java
(original)
+++
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/BpelRuntimeContext.java
Thu Sep 21 16:37:56 2006
@@ -244,7 +244,7 @@
Element getSourceEPR(String mexId);
void registerActivityForRecovery(ActivityRecoveryChannel channel, long
activityId, String reason,
- Date dateTime, Element data, String[]
actions);
+ Date dateTime, Element data, String[]
actions, int retries);
void unregisterActivityForRecovery(ActivityRecoveryChannel channel);
Modified:
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/INVOKE.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/INVOKE.java?view=diff&rev=448736&r1=448735&r2=448736
==============================================================================
---
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/INVOKE.java
(original)
+++
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/INVOKE.java
Thu Sep 21 16:37:56 2006
@@ -230,7 +230,7 @@
sendEvent(new ActivityFailureEvent(_failureReason));
final ActivityRecoveryChannel recoveryChannel =
newChannel(ActivityRecoveryChannel.class);
getBpelRuntimeContext().registerActivityForRecovery(recoveryChannel,
_self.aId, _failureReason, _lastFailure, null,
- new String[] { "retry", "cancel", "fault" });
+ new String[] { "retry", "cancel", "fault" }, _invoked - 1);
object(false, new ActivityRecoveryChannelListener(recoveryChannel) {
public void retry() {
sendEvent(new ActivityRecoveryEvent("retry"));
Modified:
incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/CoreBpelTest.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/CoreBpelTest.java?view=diff&rev=448736&r1=448735&r2=448736
==============================================================================
---
incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/CoreBpelTest.java
(original)
+++
incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/CoreBpelTest.java
Thu Sep 21 16:37:56 2006
@@ -391,7 +391,7 @@
}
public void registerActivityForRecovery(ActivityRecoveryChannel channel,
long activityId, String reason,
- Date dateTime, Element data,
String[] actions) {
+ Date dateTime, Element data,
String[] actions, int retries) {
}
public void unregisterActivityForRecovery(ActivityRecoveryChannel channel)
{
Modified:
incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java?view=diff&rev=448736&r1=448735&r2=448736
==============================================================================
---
incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java
(original)
+++
incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java
Thu Sep 21 16:37:56 2006
@@ -165,6 +165,10 @@
return _server.getBpelManagementFacade();
}
+ public TransactionManager getTransactionManager() {
+ return _txManager;
+ }
+
public void waitForBlocking() {
try {
// TODO: change this to lock on an object.
Modified:
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ActivityRecoveryDaoImpl.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ActivityRecoveryDaoImpl.java?view=diff&rev=448736&r1=448735&r2=448736
==============================================================================
---
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ActivityRecoveryDaoImpl.java
(original)
+++
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ActivityRecoveryDaoImpl.java
Thu Sep 21 16:37:56 2006
@@ -41,7 +41,7 @@
_self = recovery;
}
- public int getActivityId() {
+ public long getActivityId() {
return _self.getActivityId();
}
@@ -68,8 +68,16 @@
}
}
- public String[] getActions() {
+ public String getActions() {
+ return _self.getActions();
+ }
+
+ public String[] getActionsList() {
return _self.getActions().split(" ");
+ }
+
+ public int getRetries() {
+ return _self.getRetries();
}
}
Modified:
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java?view=diff&rev=448736&r1=448735&r2=448736
==============================================================================
---
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java
(original)
+++
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java
Thu Sep 21 16:37:56 2006
@@ -51,6 +51,9 @@
private static final String QRY_VARIABLES = "from " +
HXmlData.class.getName()
+ " as x where x.name = ? and x.scope.scopeModelId = ? and
x.scope.instance.id = ?";
+ private static final String QRY_RECOVERIES = "from " +
HActivityRecovery.class.getName() +
+ " AS x WHERE x.instance.id = ?";
+
private HProcessInstance _instance;
private ScopeDAO _root;
@@ -343,18 +346,24 @@
public Collection<ActivityRecoveryDAO> getActivityRecoveries() {
List<ActivityRecoveryDAO> results = new ArrayList<ActivityRecoveryDAO>();
- for (HActivityRecovery recovery : _instance.getActivityRecoveries())
- results.add(new ActivityRecoveryDaoImpl(_sm, recovery));
+ Query qry = getSession().createQuery(QRY_RECOVERIES);
+ qry.setLong(0, _instance.getId());
+ Iterator iter = qry.iterate();
+ while (iter.hasNext())
+ results.add(new ActivityRecoveryDaoImpl(_sm, (HActivityRecovery)
iter.next()));
+ Hibernate.close(iter);
return results;
}
- public void createActivityRecovery(String channel, int activityId, String
reason,
- Date dateTime, Element data, String[]
actions) {
+ public void createActivityRecovery(String channel, long activityId, String
reason,
+ Date dateTime, Element data, String[]
actions, int retries) {
HActivityRecovery recovery = new HActivityRecovery();
+ recovery.setInstance(_instance);
recovery.setChannel(channel);
recovery.setActivityId(activityId);
recovery.setReason(reason);
recovery.setDateTime(dateTime);
+ recovery.setRetries(retries);
if (data != null) {
HLargeData ld = new HLargeData(DOMUtils.domToString(data));
recovery.setData(ld);
Modified:
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HActivityRecovery.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HActivityRecovery.java?view=diff&rev=448736&r1=448735&r2=448736
==============================================================================
---
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HActivityRecovery.java
(original)
+++
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HActivityRecovery.java
Thu Sep 21 16:37:56 2006
@@ -31,12 +31,13 @@
/** Process instance to which this scope belongs. */
private HProcessInstance _instance;
- private int _activityId;
+ private long _activityId;
private String _channel;
private String _reason;
private Date _dateTime;
private HLargeData _data;
private String _actions;
+ private int _retries;
/**
* Get the [EMAIL PROTECTED] HProcessInstance} to which this scope object
belongs.
@@ -55,11 +56,11 @@
/**
* @hibernate.property column="AID"
*/
- public int getActivityId() {
+ public long getActivityId() {
return _activityId;
}
- public void setActivityId(int activityId) {
+ public void setActivityId(long activityId) {
_activityId = activityId;
}
@@ -117,5 +118,16 @@
public void setActions(String actions) {
_actions = actions;
}
+
+ /**
+ * @hibernate.property column="RETRIES"
+ */
+ public int getRetries() {
+ return _retries;
+ }
+
+ public void setRetries(int retries) {
+ _retries = retries;
+ }
}
Modified:
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HPartnerLink.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HPartnerLink.java?view=diff&rev=448736&r1=448735&r2=448736
==============================================================================
---
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HPartnerLink.java
(original)
+++
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HPartnerLink.java
Thu Sep 21 16:37:56 2006
@@ -21,6 +21,7 @@
import org.apache.ode.daohib.hobj.HLargeData;
import org.apache.ode.daohib.hobj.HObject;
+import java.util.Set;
/**
* The HEndpointReference can either be attached to a scope (when it's specific
@@ -54,6 +55,8 @@
private String _partnerSessionId;
+ private Set<HMessageExchange> _mex;
+
public HPartnerLink() {
super();
}
@@ -179,4 +182,23 @@
public void setMySessionId(String sessionId) {
_mySessionId = sessionId;
}
+
+ /**
+ * @hibernate.set
+ * lazy="true"
+ * inverse="true"
+ * cascade="delete"
+ * @hibernate.collection-key
+ * column="PARTNERLINK"
+ * @hibernate.collection-one-to-many
+ * class="org.apache.ode.daohib.bpel.hobj.HMessageExchange"
+ */
+ public Set<HMessageExchange> getMessageExchanges() {
+ return _mex;
+ }
+
+ public void setMessageExchanges(Set<HMessageExchange> mex) {
+ _mex = mex;
+ }
+
}