/** * Use to verify the new addition to activitiesWithEventsOrdered * * @param infoDoc Activity Information Document */ private void addActivitiesWithEventOrdered(ActivityInfoDocument infoDoc) { boolean isExist = false; for (ActivityInfoWithEventsDocument anActivitiesWithEventsOrdered : activitiesWithEventsOrdered) { if (anActivitiesWithEventsOrdered.getActivityInfoDoc().getActivityInfo(). getAiid().equals(infoDoc.getActivityInfo().getAiid())) { isExist = true; break; } } if (!isExist) { activitiesWithEventsOrdered.add(new ActivityInfoWithEventsDocument(infoDoc)); } }
public void onEvent(BpelEvent be) { if (be instanceof ActivityEvent) { final ActivityEvent event = (ActivityEvent)be; ActivityInfoDocument actinf = lookup(event); assert actinf != null; if (event instanceof ActivityEnabledEvent) { actinf.getActivityInfo().setStatus(TActivityStatus.ENABLED); Calendar dtEnabled = Calendar.getInstance(); dtEnabled.setTime(event.getTimestamp()); actinf.getActivityInfo().setDtEnabled(dtEnabled); _activities.put(event.getActivityId(),actinf); } if (event instanceof ActivityExecStartEvent) { actinf.getActivityInfo().setStatus(TActivityStatus.STARTED); Calendar dtStarted = Calendar.getInstance(); dtStarted.setTime(event.getTimestamp()); actinf.getActivityInfo().setDtStarted(dtStarted); } else if (event instanceof ActivityExecEndEvent) { actinf.getActivityInfo().setStatus(TActivityStatus.COMPLETED); Calendar dtComp = Calendar.getInstance(); dtComp.setTime(event.getTimestamp()); actinf.getActivityInfo().setDtCompleted(dtComp); completed(actinf); } } }
private ActivityInfoDocument lookup(ActivityEvent event) { ActivityInfoDocument ainf = _activities.get(event.getActivityId()); if (ainf == null) { ainf = ActivityInfoDocument.Factory.newInstance(); fill(ainf.addNewActivityInfo(),event); ainf.getActivityInfo().setStatus(TActivityStatus.ENABLED); _activities.put(event.getActivityId(),ainf); _activitiesOrdered.add(ainf); } return ainf; }
/** * fill the activitiesWithEvents and activitiesWithEventsOrdered using the infoDocList * Need to be done as event-info can be stored only in activitiesWithEvents and activitiesWithEventsOrdered * (parent class doesn't support for event-info management) * * @param be Activity Event * @param infoDocList Activity Information Document */ private void fillActivityInfo(ActivityEvent be, List<ActivityInfoDocument> infoDocList) { ActivityInfoDocument infoDoc = null; for (ActivityInfoDocument inf : infoDocList) { if (inf.getActivityInfo().getAiid().equals(String.valueOf(be.getActivityId()))) { infoDoc = inf; } } if (activitiesWithEvents.get(be.getActivityId()) == null) { activitiesWithEvents.put(be.getActivityId(), new ActivityInfoWithEventsDocument(infoDoc)); } addActivitiesWithEventOrdered(infoDoc); }
private Activities_type0 getActivities(ScopeDAO scope) { Activities_type0 activities = new Activities_type0(); Collection<ActivityRecoveryDAO> recoveries = scope.getProcessInstance().getActivityRecoveries(); /*List<BpelEvent> events = scope.listEvents();*/ Set<EventDAOImpl> eventsEntities = ((ScopeDAOImpl) scope).getEvents(); List<BpelEvent> events = new ArrayList<BpelEvent>(); for (EventDAOImpl event : eventsEntities) { events.add(event.getEvent()); } ActivityStateDocumentBuilder b = new ActivityStateDocumentBuilder(); for (BpelEvent e : events) { b.onEvent(e); } for (ActivityInfoDocument ai : b.getActivities()) { for (ActivityRecoveryDAO recovery : recoveries) { if (String.valueOf(recovery.getActivityId()).equals(ai.getActivityInfo().getAiid())) { TFailureInfo failure = ai.getActivityInfo().addNewFailure(); failure.setReason(recovery.getReason()); failure.setDtFailure(toCalendar(recovery.getDateTime())); failure.setActions(recovery.getActions()); failure.setRetries(recovery.getRetries()); ai.getActivityInfo().setStatus(TActivityStatus.FAILURE); } } ActivityInfoType activity = new ActivityInfoType(); fillActivityInfo(activity, ai.getActivityInfo()); activities.addActivityInfo(activity); } return activities; }
for (ActivityInfoWithEventsDocument anActivitiesWithEventsOrdered : activitiesWithEventsOrdered) { if (anActivitiesWithEventsOrdered.getActivityInfoDoc().getActivityInfo().getAiid(). equals(infoWithEventsDoc.getActivityInfoDoc().getActivityInfo().getAiid())) { isExist = true;
for (ActivityRecoveryDAO recovery : recoveries) { if (String.valueOf(recovery.getActivityId()).equals(aweDoc.getActivityInfoDoc(). getActivityInfo().getAiid())) { TFailureInfo failure = aweDoc.getActivityInfoDoc().getActivityInfo().addNewFailure(); failure.setReason(recovery.getReason()); failure.setDtFailure(toCalendar(recovery.getDateTime())); failure.setActions(recovery.getActions()); failure.setRetries(recovery.getRetries()); aweDoc.getActivityInfoDoc().getActivityInfo().setStatus(TActivityStatus.FAILURE); TActivityInfo actInfoDoc = aweDoc.getActivityInfoDoc().getActivityInfo(); TEventInfoList evtInfoList = aweDoc.getEventInfoList().getEventInfoList();
for (ActivityInfoDocument ai : b.getActivities()) { for (ActivityRecoveryDAO recovery : recoveries) { if (String.valueOf(recovery.getActivityId()).equals(ai.getActivityInfo().getAiid())) { TFailureInfo failure = ai.getActivityInfo().addNewFailure(); failure.setReason(recovery.getReason()); failure.setDtFailure(toCalendar(recovery.getDateTime())); failure.setActions(recovery.getActions()); failure.setRetries(recovery.getRetries()); ai.getActivityInfo().setStatus(TActivityStatus.FAILURE); activities.addNewActivityInfo().set(ai.getActivityInfo());