public virtual void Handle(MigratingInstanceParseContext parseContext, EventSubscriptionEntity element) { MigratingProcessElementInstance migratingInstance; if (!ReferenceEquals(element.Configuration, null)) { migratingInstance = CreateMigratingEventScopeInstance(parseContext, element); } else { migratingInstance = CreateMigratingEventSubscriptionInstance(parseContext, element); } ExecutionEntity owningExecution = element.Execution; MigratingScopeInstance parentInstance = null; if (owningExecution.IsEventScope) { parentInstance = parseContext.GetMigratingCompensationInstanceByExecutionId(owningExecution.Id); } else { parentInstance = parseContext.GetMigratingActivityInstanceById(owningExecution.ParentActivityInstanceId); } migratingInstance.Parent = parentInstance; }
public virtual void Handle(MigratingInstanceParseContext parseContext, MigratingTransitionInstance transitionInstance, IList <JobEntity> elements) { foreach (var job in elements) { if (!IsAsyncContinuation(job)) { continue; } var targetScope = transitionInstance.TargetScope; if (targetScope != null) { var targetJobDefinitionEntity = parseContext.GetTargetJobDefinition(transitionInstance.TargetScope.Id, job.JobHandlerType); var migratingJobInstance = new MigratingAsyncJobInstance(job, targetJobDefinitionEntity, transitionInstance.TargetScope); transitionInstance.DependentJobInstance = migratingJobInstance; parseContext.Submit(migratingJobInstance); } parseContext.Consume(job); } }
public virtual void Handle(MigratingInstanceParseContext parseContext, ITransitionInstance transitionInstance) { throw new NotImplementedException(); //if (!IsAsyncTransitionInstance(transitionInstance)) // return; //var applyingInstruction = parseContext.GetInstructionFor(transitionInstance.ActivityId); //ScopeImpl sourceScope = parseContext.SourceProcessDefinition.FindActivity(transitionInstance.ActivityId); //ScopeImpl targetScope = null; //if (applyingInstruction != null) //{ // var activityId = applyingInstruction.TargetActivityId; // targetScope = parseContext.TargetProcessDefinition.FindActivity(activityId); //} //ExecutionEntity asyncExecution = // Context.CommandContext.ExecutionManager.FindExecutionById(transitionInstance.ExecutionId); //var migratingTransitionInstance = // parseContext.MigratingProcessInstance.AddTransitionInstance(applyingInstruction, transitionInstance, // sourceScope, targetScope, asyncExecution); //var parentInstance = // parseContext.GetMigratingActivityInstanceById(transitionInstance.ParentActivityInstanceId); //migratingTransitionInstance.setParent(parentInstance); //IList<JobEntity> jobs = asyncExecution.Jobs; //parseContext.handleDependentTransitionInstanceJobs(migratingTransitionInstance, jobs); //parseContext.handleDependentVariables(migratingTransitionInstance, // collectTransitionInstanceVariables(migratingTransitionInstance)); }
public virtual void ParseTransitionInstances(MigratingInstanceParseContext parseContext, MigratingActivityInstance migratingInstance) { foreach (var transitionInstance in migratingInstance.ActivityInstance.ChildTransitionInstances) { parseContext.HandleTransitionInstance(transitionInstance); } }
protected internal virtual void ParseDependentEntities(MigratingInstanceParseContext parseContext, MigratingEventScopeInstance migratingInstance) { var representativeExecution = migratingInstance.ResolveRepresentativeExecution(); //IList<VariableInstanceEntity> variables = // new List<VariableInstanceEntity>(representativeExecution.VariablesInternal); //parseContext.handleDependentVariables(migratingInstance, variables); }
public virtual void ParseDependentInstances(MigratingInstanceParseContext parseContext, MigratingActivityInstance migratingInstance) { parseContext.HandleDependentVariables(migratingInstance, CollectActivityInstanceVariables(migratingInstance)); parseContext.HandleDependentActivityInstanceJobs(migratingInstance, CollectActivityInstanceJobs(migratingInstance)); parseContext.HandleDependentEventSubscriptions(migratingInstance, CollectActivityInstanceEventSubscriptions(migratingInstance)); }
public virtual void Handle(MigratingInstanceParseContext parseContext, MigratingProcessElementInstance owningInstance, IList <VariableInstanceEntity> variables) { var representativeExecution = owningInstance.ResolveRepresentativeExecution(); foreach (var variable in variables) { parseContext.Consume(variable); } }
protected internal virtual void HandleCallActivityIncident(MigratingInstanceParseContext parseContext, IncidentEntity incident) { //var owningInstance = parseContext.getMigratingActivityInstanceById(incident.Execution.ActivityInstanceId); //if (owningInstance != null) //{ // parseContext.consume(incident); // var migratingIncident = new MigratingIncident(incident, owningInstance.TargetScope); // owningInstance.addMigratingDependentInstance(migratingIncident); //} }
protected internal virtual void HandleExternalTaskIncident(MigratingInstanceParseContext parseContext, IncidentEntity incident) { var owningInstance = parseContext.GetMigratingExternalTaskInstanceById(incident.Configuration); if (owningInstance != null) { parseContext.Consume(incident); var migratingIncident = new MigratingIncident(incident, owningInstance.TargetScope); owningInstance.AddMigratingDependentInstance(migratingIncident); } }
public virtual void Handle(MigratingInstanceParseContext parseContext, IActivityInstance element) { MigratingActivityInstance migratingInstance = null; var applyingInstruction = parseContext.GetInstructionFor(element.ActivityId); ScopeImpl sourceScope = null; ScopeImpl targetScope = null; var representativeExecution = parseContext.Mapping.GetExecution(element); if (element.Id.Equals(element.ProcessInstanceId)) { sourceScope = parseContext.SourceProcessDefinition; targetScope = parseContext.TargetProcessDefinition; } else { sourceScope = (ScopeImpl)parseContext.SourceProcessDefinition.FindActivity(element.ActivityId); if (applyingInstruction != null) { var activityId = applyingInstruction.TargetActivityId; targetScope = (ScopeImpl)parseContext.TargetProcessDefinition.FindActivity(activityId); } } migratingInstance = parseContext.MigratingProcessInstance.AddActivityInstance(applyingInstruction, element, sourceScope, targetScope, representativeExecution); var parentInstance = parseContext.GetMigratingActivityInstanceById(element.ParentActivityInstanceId); if (parentInstance != null) { //migratingInstance.setParent(parentInstance); } //JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET: //ORIGINAL LINE: org.camunda.bpm.engine.impl.core.delegate.CoreActivityBehavior<object> sourceActivityBehavior = sourceScope.getActivityBehavior(); var sourceActivityBehavior = sourceScope.ActivityBehavior; if (sourceActivityBehavior is IMigrationObserverBehavior) { ((IMigrationObserverBehavior)sourceActivityBehavior).OnParseMigratingInstance(parseContext, migratingInstance); } parseContext.Submit(migratingInstance); ParseTransitionInstances(parseContext, migratingInstance); ParseDependentInstances(parseContext, migratingInstance); }
public virtual void Handle(MigratingInstanceParseContext parseContext, IncidentEntity incident) { if (ReferenceEquals(incident.Configuration, null) && (IsFailedJobIncident(incident) || IsExternalTaskIncident(incident))) { HandleCallActivityIncident(parseContext, incident); } else if (IsFailedJobIncident(incident)) { HandleFailedJobIncident(parseContext, incident); } else if (IsExternalTaskIncident(incident)) { HandleExternalTaskIncident(parseContext, incident); } }
protected internal virtual IMigrationInstruction GetMigrationInstruction( MigratingInstanceParseContext parseContext, ActivityImpl activity) { if (activity.CompensationHandler) { var compensationHandlerProperties = activity.Properties; var eventTrigger = compensationHandlerProperties.Get(BpmnProperties.CompensationBoundaryEvent); if (eventTrigger == null) { eventTrigger = compensationHandlerProperties.Get(BpmnProperties.InitialActivity); } return(parseContext.FindSingleMigrationInstruction(eventTrigger.ActivityId)); } return(parseContext.FindSingleMigrationInstruction(activity.ActivityId)); }
public virtual void Handle(MigratingInstanceParseContext parseContext, MigratingActivityInstance activityInstance, IList <JobEntity> elements) { var timerDeclarationsInEventScope = GetTimerDeclarationsByTriggeringActivity(activityInstance.TargetScope); foreach (var job in elements) { if (!IsTimerJob(job)) { continue; } //var migrationInstruction = parseContext.findSingleMigrationInstruction(job.ActivityId); //var targetActivity = parseContext.getTargetActivity(migrationInstruction); //if (targetActivity != null && activityInstance.migratesTo(targetActivity.EventScope)) //{ // // the timer job is migrated // JobDefinitionEntity targetJobDefinitionEntity = // parseContext.getTargetJobDefinition(targetActivity.ActivityId, job.JobHandlerType); // TimerDeclarationImpl targetTimerDeclaration = timerDeclarationsInEventScope.Remove(targetActivity.Id); // MigratingJobInstance migratingTimerJobInstance = new MigratingTimerJobInstance(job, // targetJobDefinitionEntity, targetActivity, migrationInstruction.UpdateEventTrigger, // targetTimerDeclaration); // activityInstance.addMigratingDependentInstance(migratingTimerJobInstance); // parseContext.submit(migratingTimerJobInstance); //} //else //{ // // the timer job is removed // MigratingJobInstance removingJobInstance = new MigratingTimerJobInstance(job); // activityInstance.addRemovingDependentInstance(removingJobInstance); // parseContext.submit(removingJobInstance); //} parseContext.Consume(job); } if (activityInstance.Migrates()) { AddEmergingTimerJobs(activityInstance, timerDeclarationsInEventScope.Values); } }
protected internal virtual void HandleFailedJobIncident(MigratingInstanceParseContext parseContext, IncidentEntity incident) { var owningInstance = parseContext.GetMigratingJobInstanceById(incident.Configuration); if (owningInstance != null) { parseContext.Consume(incident); if (owningInstance.Migrates()) { var migratingIncident = new MigratingIncident(incident, owningInstance.TargetScope); var targetJobDefinitionEntity = owningInstance.TargetJobDefinitionEntity; if (targetJobDefinitionEntity != null) { migratingIncident.TargetJobDefinitionId = targetJobDefinitionEntity.Id; } owningInstance.AddMigratingDependentInstance(migratingIncident); } } }
protected internal virtual MigratingProcessElementInstance CreateMigratingEventScopeInstance( MigratingInstanceParseContext parseContext, EventSubscriptionEntity element) { var compensatingActivity = (ActivityImpl)parseContext.SourceProcessDefinition.FindActivity(element.ActivityId); var migrationInstruction = GetMigrationInstruction(parseContext, compensatingActivity); ActivityImpl eventSubscriptionTargetScope = null; if (migrationInstruction != null) { if (compensatingActivity.CompensationHandler) { var targetEventScope = (ActivityImpl)parseContext.GetTargetActivity(migrationInstruction).EventScope; eventSubscriptionTargetScope = targetEventScope.findCompensationHandler(); } else { eventSubscriptionTargetScope = parseContext.GetTargetActivity(migrationInstruction); } } var eventScopeExecution = CompensationUtil.GetCompensatingExecution(element); var eventScopeInstruction = parseContext.FindSingleMigrationInstruction(eventScopeExecution.ActivityId); var targetScope = parseContext.GetTargetActivity(eventScopeInstruction); //var migratingCompensationInstance = // parseContext.MigratingProcessInstance.addEventScopeInstance(eventScopeInstruction, eventScopeExecution, // eventScopeExecution.getActivity(), targetScope, migrationInstruction, element, compensatingActivity, // eventSubscriptionTargetScope); //parseContext.consume(element); //parseContext.submit(migratingCompensationInstance); //parseDependentEntities(parseContext, migratingCompensationInstance); //return migratingCompensationInstance; return(null); }
protected internal virtual MigratingProcessElementInstance CreateMigratingEventSubscriptionInstance( MigratingInstanceParseContext parseContext, EventSubscriptionEntity element) { var compensationHandler = (ActivityImpl)parseContext.SourceProcessDefinition.FindActivity(element.ActivityId); var migrationInstruction = GetMigrationInstruction(parseContext, compensationHandler); ActivityImpl targetScope = null; if (migrationInstruction != null) { var targetEventScope = (ActivityImpl)parseContext.GetTargetActivity(migrationInstruction).EventScope; targetScope = targetEventScope.findCompensationHandler(); } var migratingCompensationInstance = parseContext.MigratingProcessInstance.AddCompensationSubscriptionInstance(migrationInstruction, element, compensationHandler, targetScope); parseContext.Consume(element); return(migratingCompensationInstance); }
public virtual void Handle(MigratingInstanceParseContext parseContext, MigratingActivityInstance owningInstance, IList <EventSubscriptionEntity> elements) { var targetDeclarations = GetDeclarationsByTriggeringActivity(owningInstance.TargetScope); foreach (var eventSubscription in elements) { if (!SupportedEventTypes.Contains(eventSubscription.EventType)) { continue; } var migrationInstruction = parseContext.FindSingleMigrationInstruction(eventSubscription.ActivityId); var targetActivity = parseContext.GetTargetActivity(migrationInstruction); if ((targetActivity != null) && owningInstance.MigratesTo((ScopeImpl)targetActivity.EventScope)) { // the event subscription is migrated //EventSubscriptionDeclaration targetDeclaration = targetDeclarations.Remove(targetActivity.Id); //owningInstance.addMigratingDependentInstance(new MigratingEventSubscriptionInstance(eventSubscription, targetActivity, migrationInstruction.UpdateEventTrigger, targetDeclaration)); } else { // the event subscription will be removed owningInstance.AddRemovingDependentInstance(new MigratingEventSubscriptionInstance(eventSubscription)); } //parseContext.consume(eventSubscription); } if (owningInstance.Migrates()) { AddEmergingEventSubscriptions(owningInstance, targetDeclarations.Values); } }
public TreeVisitorAnonymousInnerClass2(MigratingInstanceParser outerInstance, MigratingInstanceParseContext parseContext) { this._outerInstance = outerInstance; this._parseContext = parseContext; }