Пример #1
0
  private Saga loadAndInvoke(
      EventProxy<?> event, String sagaId, Collection<AssociationValue> associations) {
    Saga saga = sagasInCreation.get(sagaId);
    if (saga == null) {
      saga = sagaRepository.load(sagaId);
    }

    if (saga == null
        || !saga.isActive()
        || !containsAny(saga.getAssociationValues(), associations)) {
      return null;
    }
    preProcessSaga(saga);
    try {
      doInvokeSaga(event, saga);
    } finally {
      commit(saga);
    }
    return saga;
  }