in core/src/main/java/com/alibaba/smart/framework/engine/context/factory/impl/DefaultContextFactory.java [83:115]
public ExecutionContext createProcessContext(ProcessEngineConfiguration processEngineConfiguration,
ProcessInstance processInstance, Map<String, Object> request,
Map<String, Object> response, ExecutionContext mayBeNullParentContext) {
AnnotationScanner annotationScanner = processEngineConfiguration.getAnnotationScanner();
ProcessDefinitionContainer processDefinitionContainer = annotationScanner.getExtensionPoint(ExtensionConstant.SERVICE,
ProcessDefinitionContainer.class);
ExecutionContext subContext = new DefaultExecutionContext();
String processDefinitionId = processInstance.getProcessDefinitionId();
String processDefinitionVersion = processInstance.getProcessDefinitionVersion();
ProcessDefinition processDefinition = processDefinitionContainer.getProcessDefinition(processDefinitionId,
processDefinitionVersion);
if(null == processDefinition){
throw new EngineException("No ProcessDefinition found for processDefinitionId : "+processDefinitionId+",processDefinitionVersion : " +processDefinitionVersion);
}
subContext.setProcessDefinition(processDefinition);
subContext.setProcessEngineConfiguration(processEngineConfiguration);
subContext.setRequest(request);
subContext.setResponse(response);
subContext.setProcessInstance(processInstance);
subContext.setParent(mayBeNullParentContext);
return subContext;
}