//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: protected void performNotification(final org.camunda.bpm.engine.delegate.DelegateExecution execution, java.util.concurrent.Callable<Void> notification) throws Exception //JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: protected internal virtual void performNotification(DelegateExecution execution, Callable <Void> notification) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.camunda.bpm.application.ProcessApplicationReference processApp = org.camunda.bpm.engine.impl.context.ProcessApplicationContextUtil.getTargetProcessApplication((org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity) execution); ProcessApplicationReference processApp = ProcessApplicationContextUtil.getTargetProcessApplication((ExecutionEntity)execution); if (processApp == null) { // ignore silently LOG.noTargetProcessApplicationForExecution(execution); } else { if (ProcessApplicationContextUtil.requiresContextSwitch(processApp)) { // this should not be necessary since context switch is already performed by OperationContext and / or DelegateInterceptor Context.executeWithinProcessApplication(notification, processApp, new InvocationContext(execution)); } else { // context switch already performed notification.call(); } } }
protected internal virtual bool IsSymptomOfContextSwitchFailure(System.Exception t, ExecutionEntity contextExecution) { //throw new NotImplementedException(); // a context switch failure can occur, if the current engine has no PA registration for the deployment // subclasses may assert the actual throwable to narrow down the diagnose return(ProcessApplicationContextUtil.GetTargetProcessApplication(contextExecution) == null); }
public ProcessApplicationReference execute(CommandContext commandContext) { ProcessEngineConfigurationImpl configuration = commandContext.ProcessEngineConfiguration; DeploymentCache deploymentCache = configuration.DeploymentCache; DecisionRequirementsDefinitionEntity definition = deploymentCache.findDeployedDecisionRequirementsDefinitionById(definitionId); return(ProcessApplicationContextUtil.getTargetProcessApplication(definition)); }
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: @Override public Void execute(final org.camunda.bpm.engine.impl.interceptor.CommandContext commandContext) public override Void execute(CommandContext commandContext) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final java.util.Collection<String> processInstanceIds = collectProcessInstanceIds(); ICollection <string> processInstanceIds = collectProcessInstanceIds(); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final java.util.List<AbstractProcessInstanceModificationCommand> instructions = builder.getInstructions(); IList <AbstractProcessInstanceModificationCommand> instructions = builder.Instructions; ensureNotEmpty(typeof(BadUserRequestException), "Restart instructions cannot be empty", "instructions", instructions); ensureNotEmpty(typeof(BadUserRequestException), "Process instance ids cannot be empty", "Process instance ids", processInstanceIds); ensureNotContainsNull(typeof(BadUserRequestException), "Process instance ids cannot be null", "Process instance ids", processInstanceIds); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.camunda.bpm.engine.impl.persistence.entity.ProcessDefinitionEntity processDefinition = getProcessDefinition(commandContext, builder.getProcessDefinitionId()); ProcessDefinitionEntity processDefinition = getProcessDefinition(commandContext, builder.ProcessDefinitionId); ensureNotNull("Process definition cannot be found", "processDefinition", processDefinition); checkAuthorization(commandContext, processDefinition); if (writeUserOperationLog) { writeUserOperationLog(commandContext, processDefinition, processInstanceIds.Count, false); } //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final String processDefinitionId = builder.getProcessDefinitionId(); string processDefinitionId = builder.ProcessDefinitionId; ThreadStart runnable = () => { foreach (string processInstanceId in processInstanceIds) { HistoricProcessInstance historicProcessInstance = getHistoricProcessInstance(commandContext, processInstanceId); ensureNotNull(typeof(BadUserRequestException), "Historic process instance cannot be found", "historicProcessInstanceId", historicProcessInstance); ensureHistoricProcessInstanceNotActive(historicProcessInstance); ensureSameProcessDefinition(historicProcessInstance, processDefinitionId); ProcessInstantiationBuilderImpl instantiationBuilder = getProcessInstantiationBuilder(commandExecutor, processDefinitionId); applyProperties(instantiationBuilder, processDefinition, historicProcessInstance); ProcessInstanceModificationBuilderImpl modificationBuilder = instantiationBuilder.ModificationBuilder; modificationBuilder.ModificationOperations = instructions; VariableMap variables = collectVariables(commandContext, historicProcessInstance); instantiationBuilder.Variables = variables; instantiationBuilder.execute(builder.SkipCustomListeners, builder.SkipIoMappings); } }; ProcessApplicationContextUtil.doContextSwitch(runnable, processDefinition); return(null); }
protected internal virtual bool shouldPerformPaContextSwitch(DelegateExecution execution) { if (execution == null) { return(false); } else { ProcessApplicationReference targetPa = ProcessApplicationContextUtil.getTargetProcessApplication((ExecutionEntity)execution); return(targetPa != null && !targetPa.Equals(Context.CurrentProcessApplication)); } }
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: protected <T> T performContextSwitch(final java.util.concurrent.Callable<T> callable) protected internal virtual T performContextSwitch <T>(Callable <T> callable) { ProcessApplicationReference targetProcessApplication = ProcessApplicationContextUtil.getTargetProcessApplication(deploymentId); if (targetProcessApplication != null) { return(Context.executeWithinProcessApplication(new CallableAnonymousInnerClass(this, callable) , targetProcessApplication)); } else { return(doCall(callable)); } }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: @Override public void signal(final org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution, final String signalName, final Object signalData) throws Exception //JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: public virtual void signal(ActivityExecution execution, string signalName, object signalData) { ProcessApplicationReference targetProcessApplication = ProcessApplicationContextUtil.getTargetProcessApplication((ExecutionEntity)execution); if (ProcessApplicationContextUtil.requiresContextSwitch(targetProcessApplication)) { Context.executeWithinProcessApplication(new CallableAnonymousInnerClass(this, execution, signalName, signalData) , targetProcessApplication, new InvocationContext(execution)); } else { doSignal(execution, signalName, signalData); } }
//protected internal virtual T doCall<T>(Callable<T> callable) //{ // try // { // return callable.call(); // } // catch (Exception e) // { // throw new ProcessEngineException(e); // } //} //JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: public void submitFormVariables(final org.camunda.bpm.engine.Variable.VariableMap properties, final org.camunda.bpm.engine.delegate.VariableScope variableScope) //public virtual void submitFormVariables(IVariableMap properties, IVariableScope variableScope) //{ // performContextSwitch(new CallableAnonymousInnerClass2(this, properties, variableScope)); //} //JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: protected <T> T performContextSwitch(final java.Util.concurrent.Callable<T> callable) protected internal virtual T PerformContextSwitch <T>(Func <T> callable) { IProcessApplicationReference targetProcessApplication = ProcessApplicationContextUtil.GetTargetProcessApplication(deploymentId); if (targetProcessApplication != null) { return(Context.ExecuteWithinProcessApplication(/*new CallableAnonymousInnerClass(this, callable),*/ callable, targetProcessApplication)); } else { return(callable.Invoke()); } }
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: public Object resolveDelegateClass(final org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution) public virtual object resolveDelegateClass(ActivityExecution execution) { ProcessApplicationReference targetProcessApplication = ProcessApplicationContextUtil.getTargetProcessApplication((ExecutionEntity)execution); if (ProcessApplicationContextUtil.requiresContextSwitch(targetProcessApplication)) { return(Context.executeWithinProcessApplication(new CallableAnonymousInnerClass(this, execution) , targetProcessApplication, new InvocationContext(execution))); } else { return(instantiateDelegateClass(execution)); } }
public virtual object ResolveDelegateClass(IActivityExecution execution) { IProcessApplicationReference targetProcessApplication = ProcessApplicationContextUtil.GetTargetProcessApplication((ExecutionEntity)execution); if (ProcessApplicationContextUtil.RequiresContextSwitch(targetProcessApplication)) { return(Context.ExecuteWithinProcessApplication( () => ResolveDelegateClass(execution), targetProcessApplication, new InvocationContext(execution))); } else { return(InstantiateDelegateClass(execution)); } }
protected internal virtual IProcessApplicationReference GetContextProcessApplication() { if (TaskId != null) { return(ProcessApplicationContextUtil.GetTargetProcessApplication(GetTask())); } if (ExecutionId != null) { return(null); } if (CaseExecutionId != null) { return(null); } return(null); }
protected internal virtual IProcessApplicationReference GetProcessApplicationForInvocation( DelegateInvocation invocation) { var contextExecution = invocation.ContextExecution; var contextResource = invocation.ContextResource; if (contextExecution != null) { return(ProcessApplicationContextUtil.GetTargetProcessApplication(contextExecution as CoreExecution)); } if (contextResource != null) { return(ProcessApplicationContextUtil.GetTargetProcessApplication(contextResource)); } return(null); }
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: @Override public boolean validate(final Object submittedValue, final FormFieldValidatorContext validatorContext) public virtual bool Validate(object submittedValue, IFormFieldValidatorContext validatorContext) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.camunda.bpm.engine.delegate.DelegateExecution execution = validatorContext.getExecution(); var execution = validatorContext.Execution; if (ShouldPerformPaContextSwitch(validatorContext.Execution)) { var processApplicationReference = ProcessApplicationContextUtil.GetTargetProcessApplication((ExecutionEntity)execution); return (Context.ExecuteWithinProcessApplication(() => DoValidate(submittedValue, validatorContext), processApplicationReference, new InvocationContext(execution))); } return(DoValidate(submittedValue, validatorContext)); }
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: @Override public boolean validate(final Object submittedValue, final FormFieldValidatorContext validatorContext) public virtual bool validate(object submittedValue, FormFieldValidatorContext validatorContext) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.camunda.bpm.engine.delegate.DelegateExecution execution = validatorContext.getExecution(); DelegateExecution execution = validatorContext.Execution; if (shouldPerformPaContextSwitch(validatorContext.Execution)) { ProcessApplicationReference processApplicationReference = ProcessApplicationContextUtil.getTargetProcessApplication((ExecutionEntity)execution); return(Context.executeWithinProcessApplication(new CallableAnonymousInnerClass(this, submittedValue, validatorContext) , processApplicationReference, new InvocationContext(execution))); } else { return(doValidate(submittedValue, validatorContext)); } }
public virtual void HandleInvocation(DelegateInvocation invocation) { var processApplication = GetProcessApplicationForInvocation(invocation); if ((processApplication != null) && ProcessApplicationContextUtil.RequiresContextSwitch(processApplication)) { Context.ExecuteWithinProcessApplication <object>(() => { HandleInvocation(invocation); return(null); }, processApplication, new InvocationContext(invocation.ContextExecution)); } else { HandleInvocationInContext(invocation); } }
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: public Void execute(final org.camunda.bpm.engine.impl.interceptor.CommandContext commandContext) public virtual Void execute(CommandContext commandContext) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.camunda.bpm.engine.impl.persistence.entity.JobEntity job = commandContext.getJobManager().findJobById(jobId); JobEntity job = commandContext.JobManager.findJobById(jobId); ensureNotNull(typeof(NotFoundException), "No job found with id '" + jobId + "'", "job", job); // allow timer jobs only checkJobType(job); foreach (CommandChecker checker in commandContext.ProcessEngineConfiguration.CommandCheckers) { checker.checkUpdateJob(job); } // prepare recalculation //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.camunda.bpm.engine.impl.jobexecutor.TimerDeclarationImpl timerDeclaration = findTimerDeclaration(commandContext, job); TimerDeclarationImpl timerDeclaration = findTimerDeclaration(commandContext, job); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.camunda.bpm.engine.impl.persistence.entity.TimerEntity timer = (org.camunda.bpm.engine.impl.persistence.entity.TimerEntity) job; TimerEntity timer = (TimerEntity)job; DateTime oldDuedate = job.Duedate; ThreadStart runnable = () => { timerDeclaration.resolveAndSetDuedate(timer.Execution, timer, creationDateBased); }; // run recalculation in correct context ProcessDefinitionEntity contextDefinition = commandContext.ProcessEngineConfiguration.DeploymentCache.findDeployedProcessDefinitionById(job.ProcessDefinitionId); ProcessApplicationContextUtil.doContextSwitch(runnable, contextDefinition); // log operation IList <PropertyChange> propertyChanges = new List <PropertyChange>(); propertyChanges.Add(new PropertyChange("duedate", oldDuedate, job.Duedate)); propertyChanges.Add(new PropertyChange("creationDateBased", null, creationDateBased)); commandContext.OperationLogManager.logJobOperation(org.camunda.bpm.engine.history.UserOperationLogEntry_Fields.OPERATION_TYPE_RECALC_DUEDATE, jobId, job.JobDefinitionId, job.ProcessInstanceId, job.ProcessDefinitionId, job.ProcessDefinitionKey, propertyChanges); return(null); }
// Signallable activity behavior public override void Signal(IActivityExecution execution, string signalName, object signalData) { var targetProcessApplication = ProcessApplicationContextUtil.GetTargetProcessApplication((ExecutionEntity)execution); if (ProcessApplicationContextUtil.RequiresContextSwitch(targetProcessApplication)) { Context.ExecuteWithinProcessApplication <object>(() => { Signal(execution, signalName, signalData); return(null); }, targetProcessApplication, new InvocationContext(execution)); } else { DoSignal(execution, signalName, signalData); } }
protected internal virtual IProcessApplicationReference GetTargetProcessApplication(ExecutionEntity execution) { return(ProcessApplicationContextUtil.GetTargetProcessApplication(execution)); }
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: protected <T> void executeInContext(final Runnable runnable, org.camunda.bpm.engine.impl.persistence.entity.ProcessDefinitionEntity contextDefinition) protected internal virtual void executeInContext <T>(ThreadStart runnable, ProcessDefinitionEntity contextDefinition) { ProcessApplicationContextUtil.doContextSwitch(runnable, contextDefinition); }
//protected internal virtual IProcessApplicationReference GetTargetProcessApplication(CaseExecutionEntity execution) //{ // return ProcessApplicationContextUtil.getTargetProcessApplication(execution); //} protected internal virtual bool RequiresContextSwitch(IProcessApplicationReference processApplicationReference) { return(ProcessApplicationContextUtil.RequiresContextSwitch(processApplicationReference)); }