Class CompensationUtil


public class CompensationUtil extends Object
Daniel Meyer
  • Field Details


      public static final String SIGNAL_COMPENSATION_DONE
      name of the signal that is thrown when a compensation handler completed
      See Also:
  • Constructor Details

    • CompensationUtil

      public CompensationUtil()
  • Method Details

    • throwCompensationEvent

      public static void throwCompensationEvent(List<EventSubscriptionEntity> eventSubscriptions, ActivityExecution execution, boolean async)
      we create a separate execution for each compensation handler invocation.
    • createEventScopeExecution

      public static void createEventScopeExecution(ExecutionEntity execution)
      creates an event scope for the given execution: create a new event scope execution under the parent of the given execution and move all event subscriptions to that execution. this allows us to "remember" the event subscriptions after finishing a scope
    • hasCompensationEventSubprocess

      protected static boolean hasCompensationEventSubprocess(ActivityImpl activity)
    • getEventScopeCompensationHandler

      protected static ActivityImpl getEventScopeCompensationHandler(ExecutionEntity execution)
      In the context when an event scope execution is created (i.e. a scope such as a subprocess has completed), this method returns the compensation handler activity that is going to be executed when by the event scope execution. This method is not relevant when the scope has a boundary compensation handler.
    • collectCompensateEventSubscriptionsForScope

      public static List<EventSubscriptionEntity> collectCompensateEventSubscriptionsForScope(ActivityExecution execution)
      Collect all compensate event subscriptions for scope of given execution.
    • collectCompensateEventSubscriptionsForActivity

      public static List<EventSubscriptionEntity> collectCompensateEventSubscriptionsForActivity(ActivityExecution execution, String activityRef)
      Collect all compensate event subscriptions for activity on the scope of given execution.
    • getCompensatingExecution

      public static ExecutionEntity getCompensatingExecution(EventSubscriptionEntity eventSubscription)