public ExecutionContext createProcessContext()

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;
    }