protected internal virtual MigratingProcessElementInstance createMigratingEventScopeInstance(MigratingInstanceParseContext parseContext, EventSubscriptionEntity element) { ActivityImpl compensatingActivity = parseContext.SourceProcessDefinition.findActivity(element.ActivityId); MigrationInstruction migrationInstruction = getMigrationInstruction(parseContext, compensatingActivity); ActivityImpl eventSubscriptionTargetScope = null; if (migrationInstruction != null) { if (compensatingActivity.CompensationHandler) { ActivityImpl targetEventScope = (ActivityImpl)parseContext.getTargetActivity(migrationInstruction).EventScope; eventSubscriptionTargetScope = targetEventScope.findCompensationHandler(); } else { eventSubscriptionTargetScope = parseContext.getTargetActivity(migrationInstruction); } } ExecutionEntity eventScopeExecution = CompensationUtil.getCompensatingExecution(element); MigrationInstruction eventScopeInstruction = parseContext.findSingleMigrationInstruction(eventScopeExecution.ActivityId); ActivityImpl targetScope = parseContext.getTargetActivity(eventScopeInstruction); MigratingEventScopeInstance migratingCompensationInstance = parseContext.MigratingProcessInstance.addEventScopeInstance(eventScopeInstruction, eventScopeExecution, eventScopeExecution.getActivity(), targetScope, migrationInstruction, element, compensatingActivity, eventSubscriptionTargetScope); parseContext.consume(element); parseContext.submit(migratingCompensationInstance); parseDependentEntities(parseContext, migratingCompensationInstance); return(migratingCompensationInstance); }
public virtual void handle(MigratingInstanceParseContext parseContext, TransitionInstance transitionInstance) { if (!isAsyncTransitionInstance(transitionInstance)) { return; } MigrationInstruction applyingInstruction = parseContext.getInstructionFor(transitionInstance.ActivityId); ScopeImpl sourceScope = parseContext.SourceProcessDefinition.findActivity(transitionInstance.ActivityId); ScopeImpl targetScope = null; if (applyingInstruction != null) { string activityId = applyingInstruction.TargetActivityId; targetScope = parseContext.TargetProcessDefinition.findActivity(activityId); } ExecutionEntity asyncExecution = Context.CommandContext.ExecutionManager.findExecutionById(transitionInstance.ExecutionId); MigratingTransitionInstance migratingTransitionInstance = parseContext.MigratingProcessInstance.addTransitionInstance(applyingInstruction, transitionInstance, sourceScope, targetScope, asyncExecution); MigratingActivityInstance parentInstance = parseContext.getMigratingActivityInstanceById(transitionInstance.ParentActivityInstanceId); migratingTransitionInstance.setParent(parentInstance); IList <JobEntity> jobs = asyncExecution.Jobs; parseContext.handleDependentTransitionInstanceJobs(migratingTransitionInstance, jobs); parseContext.handleDependentVariables(migratingTransitionInstance, collectTransitionInstanceVariables(migratingTransitionInstance)); }
public virtual MigratingEventScopeInstance addEventScopeInstance(MigrationInstruction migrationInstruction, ExecutionEntity eventScopeExecution, ScopeImpl sourceScope, ScopeImpl targetScope, MigrationInstruction eventSubscriptionInstruction, EventSubscriptionEntity eventSubscription, ScopeImpl eventSubscriptionSourceScope, ScopeImpl eventSubscriptionTargetScope) { MigratingEventScopeInstance compensationInstance = new MigratingEventScopeInstance(migrationInstruction, eventScopeExecution, sourceScope, targetScope, eventSubscriptionInstruction, eventSubscription, eventSubscriptionSourceScope, eventSubscriptionTargetScope); migratingEventScopeInstances.Add(compensationInstance); return(compensationInstance); }
public virtual MigratingTransitionInstance addTransitionInstance(MigrationInstruction migrationInstruction, TransitionInstance transitionInstance, ScopeImpl sourceScope, ScopeImpl targetScope, ExecutionEntity asyncExecution) { MigratingTransitionInstance migratingTransitionInstance = new MigratingTransitionInstance(transitionInstance, migrationInstruction, sourceScope, targetScope, asyncExecution); migratingTransitionInstances.Add(migratingTransitionInstance); return(migratingTransitionInstance); }
public virtual MigrationInstruction build() { MigrationInstruction migrationInstructionMock = mock(typeof(MigrationInstruction)); when(migrationInstructionMock.SourceActivityId).thenReturn(sourceActivityIds_Renamed[0]); when(migrationInstructionMock.TargetActivityId).thenReturn(targetActivityIds_Renamed[0]); when(migrationInstructionMock.UpdateEventTrigger).thenReturn(updateEventTrigger_Renamed); return(migrationInstructionMock); }
public MigratingEventScopeInstance(MigrationInstruction migrationInstruction, ExecutionEntity eventScopeExecution, ScopeImpl sourceScope, ScopeImpl targetScope, MigrationInstruction eventSubscriptionInstruction, EventSubscriptionEntity eventSubscription, ScopeImpl eventSubscriptionSourceScope, ScopeImpl eventSubscriptionTargetScope) { this.migratingEventSubscription = new MigratingCompensationEventSubscriptionInstance(eventSubscriptionInstruction, eventSubscriptionSourceScope, eventSubscriptionTargetScope, eventSubscription); this.migrationInstruction = migrationInstruction; this.eventScopeExecution = eventScopeExecution; // compensation handlers (not boundary events) this.sourceScope = sourceScope; this.targetScope = targetScope; }
public MigratingTransitionInstance(TransitionInstance transitionInstance, MigrationInstruction migrationInstruction, ScopeImpl sourceScope, ScopeImpl targetScope, ExecutionEntity asyncExecution) { this.transitionInstance = transitionInstance; this.migrationInstruction = migrationInstruction; this.sourceScope = sourceScope; this.targetScope = targetScope; this.currentScope = sourceScope; this.representativeExecution = asyncExecution; this.activeState = representativeExecution.Active; }
public virtual ActivityImpl getTargetActivity(MigrationInstruction instruction) { if (instruction != null) { return(targetProcessDefinition.findActivity(instruction.TargetActivityId)); } else { return(null); } }
public virtual MigratingActivityInstance addActivityInstance(MigrationInstruction migrationInstruction, ActivityInstance activityInstance, ScopeImpl sourceScope, ScopeImpl targetScope, ExecutionEntity scopeExecution) { MigratingActivityInstance migratingActivityInstance = new MigratingActivityInstance(activityInstance, migrationInstruction, sourceScope, targetScope, scopeExecution); migratingActivityInstances.Add(migratingActivityInstance); if (processInstanceId.Equals(activityInstance.Id)) { rootInstance = migratingActivityInstance; } return(migratingActivityInstance); }
public virtual MockMigrationPlanBuilder instruction(string sourceActivityId, string targetActivityId, bool?updateEventTrigger) { MockMigrationInstructionBuilder instructionBuilder = (new MockMigrationInstructionBuilder()).sourceActivityId(sourceActivityId).targetActivityId(targetActivityId); if (true.Equals(updateEventTrigger)) { instructionBuilder = instructionBuilder.updateEventTrigger(); } MigrationInstruction instructionMock = instructionBuilder.build(); return(instruction(instructionMock)); }
public virtual void handle(MigratingInstanceParseContext parseContext, ActivityInstance element) { MigratingActivityInstance migratingInstance = null; MigrationInstruction applyingInstruction = parseContext.getInstructionFor(element.ActivityId); ScopeImpl sourceScope = null; ScopeImpl targetScope = null; ExecutionEntity representativeExecution = parseContext.Mapping.getExecution(element); if (element.Id.Equals(element.ProcessInstanceId)) { sourceScope = parseContext.SourceProcessDefinition; targetScope = parseContext.TargetProcessDefinition; } else { sourceScope = parseContext.SourceProcessDefinition.findActivity(element.ActivityId); if (applyingInstruction != null) { string activityId = applyingInstruction.TargetActivityId; targetScope = parseContext.TargetProcessDefinition.findActivity(activityId); } } migratingInstance = parseContext.MigratingProcessInstance.addActivityInstance(applyingInstruction, element, sourceScope, targetScope, representativeExecution); MigratingActivityInstance 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<?> sourceActivityBehavior = sourceScope.getActivityBehavior(); CoreActivityBehavior <object> sourceActivityBehavior = sourceScope.ActivityBehavior; if (sourceActivityBehavior is MigrationObserverBehavior) { ((MigrationObserverBehavior)sourceActivityBehavior).onParseMigratingInstance(parseContext, migratingInstance); } parseContext.submit(migratingInstance); parseTransitionInstances(parseContext, migratingInstance); parseDependentInstances(parseContext, migratingInstance); }
public static MigrationInstructionDto from(MigrationInstruction migrationInstruction) { if (migrationInstruction != null) { MigrationInstructionDto dto = new MigrationInstructionDto(); dto.SourceActivityIds = Collections.singletonList(migrationInstruction.SourceActivityId); dto.TargetActivityIds = Collections.singletonList(migrationInstruction.TargetActivityId); dto.UpdateEventTrigger = migrationInstruction.UpdateEventTrigger; return(dto); } else { return(null); } }
/// <summary> /// Creates a migrating activity instances /// </summary> public MigratingActivityInstance(ActivityInstance activityInstance, MigrationInstruction migrationInstruction, ScopeImpl sourceScope, ScopeImpl targetScope, ExecutionEntity scopeExecution) { this.activityInstance = activityInstance; this.migrationInstruction = migrationInstruction; this.sourceScope = sourceScope; this.currentScope = sourceScope; this.targetScope = targetScope; this.representativeExecution = scopeExecution; this.instanceBehavior = determineBehavior(sourceScope); if (activityInstance.ChildActivityInstances.Length == 0 && activityInstance.ChildTransitionInstances.Length == 0) { // active state is only relevant for child activity instances; // for all other instances, their respective executions are always inactive activeState = representativeExecution.Active; } }
protected internal virtual bool isNonInterruptingTimerTriggeredAlready(MigratingInstanceParseContext parseContext, IDictionary <string, TimerDeclarationImpl> sourceTimerDeclarationsInEventScope, TimerDeclarationImpl targetTimerDeclaration) { if (targetTimerDeclaration.InterruptingTimer || !string.ReferenceEquals(targetTimerDeclaration.JobHandlerType, TimerExecuteNestedActivityJobHandler.TYPE) || sourceTimerDeclarationsInEventScope.Values.Count == 0) { return(false); } foreach (TimerDeclarationImpl sourceTimerDeclaration in sourceTimerDeclarationsInEventScope.Values) { MigrationInstruction migrationInstruction = parseContext.findSingleMigrationInstruction(sourceTimerDeclaration.ActivityId); ActivityImpl targetActivity = parseContext.getTargetActivity(migrationInstruction); if (targetActivity != null && targetTimerDeclaration.ActivityId.Equals(targetActivity.ActivityId)) { return(true); } } return(false); }
public virtual void handle(MigratingInstanceParseContext parseContext, MigratingActivityInstance activityInstance, IList <JobEntity> elements) { IDictionary <string, TimerDeclarationImpl> sourceTimerDeclarationsInEventScope = getTimerDeclarationsByTriggeringActivity(activityInstance.SourceScope); IDictionary <string, TimerDeclarationImpl> targetTimerDeclarationsInEventScope = getTimerDeclarationsByTriggeringActivity(activityInstance.TargetScope); foreach (JobEntity job in elements) { if (!isTimerJob(job)) { // skip non timer jobs continue; } MigrationInstruction migrationInstruction = parseContext.findSingleMigrationInstruction(job.ActivityId); ActivityImpl 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 = targetTimerDeclarationsInEventScope.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(parseContext, activityInstance, sourceTimerDeclarationsInEventScope, targetTimerDeclarationsInEventScope); } }
protected internal virtual MigratingProcessElementInstance createMigratingEventSubscriptionInstance(MigratingInstanceParseContext parseContext, EventSubscriptionEntity element) { ActivityImpl compensationHandler = parseContext.SourceProcessDefinition.findActivity(element.ActivityId); MigrationInstruction migrationInstruction = getMigrationInstruction(parseContext, compensationHandler); ActivityImpl targetScope = null; if (migrationInstruction != null) { ActivityImpl targetEventScope = (ActivityImpl)parseContext.getTargetActivity(migrationInstruction).EventScope; targetScope = targetEventScope.findCompensationHandler(); } MigratingCompensationEventSubscriptionInstance migratingCompensationInstance = parseContext.MigratingProcessInstance.addCompensationSubscriptionInstance(migrationInstruction, element, compensationHandler, targetScope); parseContext.consume(element); return(migratingCompensationInstance); }
public virtual void handle(MigratingInstanceParseContext parseContext, MigratingActivityInstance owningInstance, IList <EventSubscriptionEntity> elements) { IDictionary <string, EventSubscriptionDeclaration> targetDeclarations = getDeclarationsByTriggeringActivity(owningInstance.TargetScope); foreach (EventSubscriptionEntity eventSubscription in elements) { if (!SupportedEventTypes.Contains(eventSubscription.EventType)) { // ignore unsupported event subscriptions continue; } MigrationInstruction migrationInstruction = parseContext.findSingleMigrationInstruction(eventSubscription.ActivityId); ActivityImpl targetActivity = parseContext.getTargetActivity(migrationInstruction); if (targetActivity != null && owningInstance.migratesTo(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); } }
public MigrationInstructionValidationReportImpl(MigrationInstruction migrationInstruction) { this.migrationInstruction = migrationInstruction; }
public virtual MockMigrationPlanBuilder instruction(MigrationInstruction instruction) { instructions_Renamed.Add(instruction); return(this); }
public virtual MockMigrationPlanBuilder instruction(string sourceActivityId, string targetActivityId) { MigrationInstruction instructionMock = (new MockMigrationInstructionBuilder()).sourceActivityId(sourceActivityId).targetActivityId(targetActivityId).build(); return(instruction(instructionMock)); }
public MigratingActivityInstanceValidationReportImpl(MigratingActivityInstance migratingActivityInstance) { this.activityInstanceId = migratingActivityInstance.ActivityInstance.Id; this.sourceScopeId = migratingActivityInstance.SourceScope.Id; this.migrationInstruction = migratingActivityInstance.MigrationInstruction; }
public MigratingTransitionInstanceValidationReportImpl(MigratingTransitionInstance migratingTransitionInstance) { this.transitionInstanceId = migratingTransitionInstance.TransitionInstance.Id; this.sourceScopeId = migratingTransitionInstance.SourceScope.Id; this.migrationInstruction = migratingTransitionInstance.MigrationInstruction; }
public virtual MigratingCompensationEventSubscriptionInstance addCompensationSubscriptionInstance(MigrationInstruction eventSubscriptionInstruction, EventSubscriptionEntity eventSubscription, ScopeImpl sourceScope, ScopeImpl targetScope) { MigratingCompensationEventSubscriptionInstance compensationInstance = new MigratingCompensationEventSubscriptionInstance(eventSubscriptionInstruction, sourceScope, targetScope, eventSubscription); migratingCompensationSubscriptionInstances.Add(compensationInstance); return(compensationInstance); }