in saga/seata-saga-engine/src/main/java/org/apache/seata/saga/engine/config/AbstractStateMachineConfig.java [125:215]
public void init() throws Exception {
// init seqGenerator
if (seqGenerator == null) {
seqGenerator = new UUIDSeqGenerator();
}
// init ExpressionFactoryManager
if (expressionFactoryManager == null) {
expressionFactoryManager = new ExpressionFactoryManager();
SequenceExpressionFactory sequenceExpressionFactory = new SequenceExpressionFactory();
sequenceExpressionFactory.setSeqGenerator(seqGenerator);
expressionFactoryManager.putExpressionFactory(DomainConstants.EXPRESSION_TYPE_SEQUENCE, sequenceExpressionFactory);
ExceptionMatchExpressionFactory exceptionMatchExpressionFactory = new ExceptionMatchExpressionFactory();
expressionFactoryManager.putExpressionFactory(DomainConstants.EXPRESSION_TYPE_EXCEPTION, exceptionMatchExpressionFactory);
}
// init expressionResolver
if (expressionResolver == null) {
DefaultExpressionResolver defaultExpressionResolver = new DefaultExpressionResolver();
defaultExpressionResolver.setExpressionFactoryManager(expressionFactoryManager);
expressionResolver = defaultExpressionResolver;
}
if (stateLogRepository == null) {
StateLogRepositoryImpl defaultStateLogRepository = new StateLogRepositoryImpl();
defaultStateLogRepository.setStateLogStore(stateLogStore);
this.stateLogRepository = defaultStateLogRepository;
}
if (stateMachineRepository == null) {
StateMachineRepositoryImpl defaultStateMachineRepository = new StateMachineRepositoryImpl();
defaultStateMachineRepository.setCharset(charset);
defaultStateMachineRepository.setSeqGenerator(seqGenerator);
defaultStateMachineRepository.setDefaultTenantId(defaultTenantId);
defaultStateMachineRepository.setJsonParserName(sagaJsonParser);
defaultStateMachineRepository.setStateLangStore(stateLangStore);
this.stateMachineRepository = defaultStateMachineRepository;
}
// auto register resources
if (autoRegisterResources && stateMachineDefInputStreamArray != null) {
stateMachineRepository.registryByResources(stateMachineDefInputStreamArray, defaultTenantId);
}
if (statusDecisionStrategy == null) {
statusDecisionStrategy = new DefaultStatusDecisionStrategy();
}
if (syncProcessCtrlEventPublisher == null) {
ProcessCtrlEventPublisher syncEventPublisher = new ProcessCtrlEventPublisher();
ProcessControllerImpl processorController = createProcessorController(syncEventPublisher);
ProcessCtrlEventConsumer processCtrlEventConsumer = new ProcessCtrlEventConsumer();
processCtrlEventConsumer.setProcessController(processorController);
DirectEventBus directEventBus = new DirectEventBus();
syncEventPublisher.setEventBus(directEventBus);
directEventBus.registerEventConsumer(processCtrlEventConsumer);
syncProcessCtrlEventPublisher = syncEventPublisher;
}
if (enableAsync && asyncProcessCtrlEventPublisher == null) {
ProcessCtrlEventPublisher asyncEventPublisher = new ProcessCtrlEventPublisher();
ProcessControllerImpl processorController = createProcessorController(asyncEventPublisher);
ProcessCtrlEventConsumer processCtrlEventConsumer = new ProcessCtrlEventConsumer();
processCtrlEventConsumer.setProcessController(processorController);
AsyncEventBus asyncEventBus = new AsyncEventBus();
asyncEventBus.setThreadPoolExecutor(getThreadPoolExecutor());
asyncEventPublisher.setEventBus(asyncEventBus);
asyncEventBus.registerEventConsumer(processCtrlEventConsumer);
asyncProcessCtrlEventPublisher = asyncEventPublisher;
}
if (this.serviceInvokerManager == null) {
this.serviceInvokerManager = new ServiceInvokerManager();
}
if (this.scriptEngineManager == null) {
this.scriptEngineManager = new ScriptEngineManager();
}
}