/** * Use {@link #executeWithinProcessApplication(Callable, ProcessApplicationReference, InvocationContext)} * instead if an {@link InvocationContext} is available. */ public static <T> T executeWithinProcessApplication(Callable<T> callback, ProcessApplicationReference processApplicationReference) { return executeWithinProcessApplication(callback, processApplicationReference, null); }
/** * Use {@link #executeWithinProcessApplication(Callable, ProcessApplicationReference, InvocationContext)} * instead if an {@link InvocationContext} is available. */ public static <T> T executeWithinProcessApplication(Callable<T> callback, ProcessApplicationReference processApplicationReference) { return executeWithinProcessApplication(callback, processApplicationReference, null); }
public static void doContextSwitch(final Runnable runnable, ProcessDefinitionEntity contextDefinition) { ProcessApplicationReference processApplication = getTargetProcessApplication(contextDefinition); if (requiresContextSwitch(processApplication)) { Context.executeWithinProcessApplication(new Callable<Void>() { @Override public Void call() throws Exception { runnable.run(); return null; } }, processApplication); } else { runnable.run(); } } }
protected <T> T performContextSwitch(final Callable<T> callable) { ProcessApplicationReference targetProcessApplication = ProcessApplicationContextUtil.getTargetProcessApplication(deploymentId); if(targetProcessApplication != null) { return Context.executeWithinProcessApplication(new Callable<T>() { public T call() throws Exception { return doCall(callable); } }, targetProcessApplication); } else { return doCall(callable); } }
public static void doContextSwitch(final Runnable runnable, ProcessDefinitionEntity contextDefinition) { ProcessApplicationReference processApplication = getTargetProcessApplication(contextDefinition); if (requiresContextSwitch(processApplication)) { Context.executeWithinProcessApplication(new Callable<Void>() { @Override public Void call() throws Exception { runnable.run(); return null; } }, processApplication); } else { runnable.run(); } } }
protected <T> T performContextSwitch(final Callable<T> callable) { ProcessApplicationReference targetProcessApplication = ProcessApplicationContextUtil.getTargetProcessApplication(deploymentId); if(targetProcessApplication != null) { return Context.executeWithinProcessApplication(new Callable<T>() { public T call() throws Exception { return doCall(callable); } }, targetProcessApplication); } else { return doCall(callable); } }
public ScriptEngine execute(CommandContext commandContext) { return Context.executeWithinProcessApplication(new Callable<ScriptEngine>() { public ScriptEngine call() throws Exception { return getScriptEngine(name); } }, processApplication.getReference()); } });
public Void execute(CommandContext commandContext) { return Context.executeWithinProcessApplication(new Callable<Void>() { public Void call() throws Exception { ScriptingEngines scriptingEngines = processEngineConfiguration.getScriptingEngines(); ScriptEngine scriptEngine = scriptingEngines.getScriptEngineForLanguage(SCRIPT_LANGUAGE); SourceExecutableScript script = createScript(SCRIPT_LANGUAGE, SCRIPT); ScriptingEnvironment scriptingEnvironment = processEngineConfiguration.getScriptingEnvironment(); scriptingEnvironment.execute(script, null, null, scriptEngine); return null; } }, processApplication.getReference()); } });
protected void performNotification(final DelegateExecution execution, Callable<Void> notification) throws Exception { final 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 void performNotification(final DelegateExecution execution, Callable<Void> notification) throws Exception { final 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(); } } }
@Override public void signal(final ActivityExecution execution, final String signalName, final Object signalData) throws Exception { ProcessApplicationReference targetProcessApplication = ProcessApplicationContextUtil.getTargetProcessApplication((ExecutionEntity) execution); if(ProcessApplicationContextUtil.requiresContextSwitch(targetProcessApplication)) { Context.executeWithinProcessApplication(new Callable<Void>() { public Void call() throws Exception { signal(execution, signalName, signalData); return null; } }, targetProcessApplication, new InvocationContext(execution)); } else { doSignal(execution, signalName, signalData); } }
public Object resolveDelegateClass(final ActivityExecution execution) { ProcessApplicationReference targetProcessApplication = ProcessApplicationContextUtil.getTargetProcessApplication((ExecutionEntity) execution); if (ProcessApplicationContextUtil.requiresContextSwitch(targetProcessApplication)) { return Context.executeWithinProcessApplication(new Callable<Object>() { @Override public Object call() throws Exception { return resolveDelegateClass(execution); } }, targetProcessApplication, new InvocationContext(execution)); } else { return instantiateDelegateClass(execution); } }
public Object resolveDelegateClass(final ActivityExecution execution) { ProcessApplicationReference targetProcessApplication = ProcessApplicationContextUtil.getTargetProcessApplication((ExecutionEntity) execution); if (ProcessApplicationContextUtil.requiresContextSwitch(targetProcessApplication)) { return Context.executeWithinProcessApplication(new Callable<Object>() { @Override public Object call() throws Exception { return resolveDelegateClass(execution); } }, targetProcessApplication, new InvocationContext(execution)); } else { return instantiateDelegateClass(execution); } }
@Override public void signal(final ActivityExecution execution, final String signalName, final Object signalData) throws Exception { ProcessApplicationReference targetProcessApplication = ProcessApplicationContextUtil.getTargetProcessApplication((ExecutionEntity) execution); if(ProcessApplicationContextUtil.requiresContextSwitch(targetProcessApplication)) { Context.executeWithinProcessApplication(new Callable<Void>() { public Void call() throws Exception { signal(execution, signalName, signalData); return null; } }, targetProcessApplication, new InvocationContext(execution)); } else { doSignal(execution, signalName, signalData); } }
@Override public void signal(final ActivityExecution execution, final String signalName, final Object signalData) throws Exception { ProcessApplicationReference targetProcessApplication = ProcessApplicationContextUtil.getTargetProcessApplication((ExecutionEntity) execution); if(ProcessApplicationContextUtil.requiresContextSwitch(targetProcessApplication)) { Context.executeWithinProcessApplication(new Callable<Void>() { public Void call() throws Exception { signal(execution, signalName, signalData); return null; } }, targetProcessApplication, new InvocationContext(execution)); } else { doSignal(execution, signalName, signalData); } }
@Override public void signal(final ActivityExecution execution, final String signalName, final Object signalData) throws Exception { ProcessApplicationReference targetProcessApplication = ProcessApplicationContextUtil.getTargetProcessApplication((ExecutionEntity) execution); if(ProcessApplicationContextUtil.requiresContextSwitch(targetProcessApplication)) { Context.executeWithinProcessApplication(new Callable<Void>() { public Void call() throws Exception { signal(execution, signalName, signalData); return null; } }, targetProcessApplication, new InvocationContext(execution)); } else { doSignal(execution, signalName, signalData); } }
public void handleInvocation(final DelegateInvocation invocation) throws Exception { final ProcessApplicationReference processApplication = getProcessApplicationForInvocation(invocation); if (processApplication != null && ProcessApplicationContextUtil.requiresContextSwitch(processApplication)) { Context.executeWithinProcessApplication(new Callable<Void>() { @Override public Void call() throws Exception { handleInvocation(invocation); return null; } }, processApplication, new InvocationContext(invocation.getContextExecution())); } else { handleInvocationInContext(invocation); } }
public void handleInvocation(final DelegateInvocation invocation) throws Exception { final ProcessApplicationReference processApplication = getProcessApplicationForInvocation(invocation); if (processApplication != null && ProcessApplicationContextUtil.requiresContextSwitch(processApplication)) { Context.executeWithinProcessApplication(new Callable<Void>() { @Override public Void call() throws Exception { handleInvocation(invocation); return null; } }, processApplication, new InvocationContext(invocation.getContextExecution())); } else { handleInvocationInContext(invocation); } }
@Override public boolean validate(final Object submittedValue, final FormFieldValidatorContext validatorContext) { final DelegateExecution execution = validatorContext.getExecution(); if(shouldPerformPaContextSwitch(validatorContext.getExecution())) { ProcessApplicationReference processApplicationReference = ProcessApplicationContextUtil.getTargetProcessApplication((ExecutionEntity) execution); return Context.executeWithinProcessApplication(new Callable<Boolean>() { public Boolean call() throws Exception { return doValidate(submittedValue, validatorContext); } }, processApplicationReference, new InvocationContext(execution)); } else { return doValidate(submittedValue, validatorContext); } }
@Override public boolean validate(final Object submittedValue, final FormFieldValidatorContext validatorContext) { final DelegateExecution execution = validatorContext.getExecution(); if(shouldPerformPaContextSwitch(validatorContext.getExecution())) { ProcessApplicationReference processApplicationReference = ProcessApplicationContextUtil.getTargetProcessApplication((ExecutionEntity) execution); return Context.executeWithinProcessApplication(new Callable<Boolean>() { public Boolean call() throws Exception { return doValidate(submittedValue, validatorContext); } }, processApplicationReference, new InvocationContext(execution)); } else { return doValidate(submittedValue, validatorContext); } }