54
54
import org .apache .seata .saga .proctrl .impl .ProcessControllerImpl ;
55
55
import org .apache .seata .saga .proctrl .process .impl .CustomizeBusinessProcessor ;
56
56
import org .apache .seata .saga .statelang .domain .DomainConstants ;
57
+ import org .apache .seata .saga .statelang .domain .StateType ;
57
58
58
59
import javax .script .ScriptEngineManager ;
59
60
import java .io .InputStream ;
@@ -214,20 +215,8 @@ public void init() throws Exception {
214
215
}
215
216
216
217
public ProcessControllerImpl createProcessorController (ProcessCtrlEventPublisher eventPublisher ) throws Exception {
217
- StateMachineProcessRouter stateMachineProcessRouter = new StateMachineProcessRouter ();
218
- stateMachineProcessRouter .initDefaultStateRouters ();
219
- loadStateRouterInterceptors (stateMachineProcessRouter .getStateRouters ());
220
-
221
- StateMachineProcessHandler stateMachineProcessHandler = new StateMachineProcessHandler ();
222
- stateMachineProcessHandler .initDefaultHandlers ();
223
- loadStateHandlerInterceptors (stateMachineProcessHandler .getStateHandlers ());
224
-
225
- DefaultRouterHandler defaultRouterHandler = new DefaultRouterHandler ();
226
- defaultRouterHandler .setEventPublisher (eventPublisher );
227
-
228
- Map <String , ProcessRouter > processRouterMap = new HashMap <>(1 );
229
- processRouterMap .put (ProcessType .STATE_LANG .getCode (), stateMachineProcessRouter );
230
- defaultRouterHandler .setProcessRouters (processRouterMap );
218
+ StateMachineProcessHandler stateMachineProcessHandler = buildStateMachineProcessHandler ();
219
+ DefaultRouterHandler defaultRouterHandler = buildDefaultRouterHandler (eventPublisher );
231
220
232
221
CustomizeBusinessProcessor customizeBusinessProcessor = new CustomizeBusinessProcessor ();
233
222
@@ -245,7 +234,28 @@ public ProcessControllerImpl createProcessorController(ProcessCtrlEventPublisher
245
234
return processorController ;
246
235
}
247
236
248
- public void loadStateHandlerInterceptors (Map <String , StateHandler > stateHandlerMap ) {
237
+ private StateMachineProcessHandler buildStateMachineProcessHandler () {
238
+ StateMachineProcessHandler stateMachineProcessHandler = new StateMachineProcessHandler ();
239
+ stateMachineProcessHandler .initDefaultHandlers ();
240
+ loadStateHandlerInterceptors (stateMachineProcessHandler .getStateHandlers ());
241
+ return stateMachineProcessHandler ;
242
+ }
243
+
244
+ private DefaultRouterHandler buildDefaultRouterHandler (ProcessCtrlEventPublisher eventPublisher ) {
245
+ DefaultRouterHandler defaultRouterHandler = new DefaultRouterHandler ();
246
+ defaultRouterHandler .setEventPublisher (eventPublisher );
247
+
248
+ StateMachineProcessRouter stateMachineProcessRouter = new StateMachineProcessRouter ();
249
+ stateMachineProcessRouter .initDefaultStateRouters ();
250
+ loadStateRouterInterceptors (stateMachineProcessRouter .getStateRouters ());
251
+
252
+ Map <String , ProcessRouter > processRouterMap = new HashMap <>(2 );
253
+ processRouterMap .put (ProcessType .STATE_LANG .getCode (), stateMachineProcessRouter );
254
+ defaultRouterHandler .setProcessRouters (processRouterMap );
255
+ return defaultRouterHandler ;
256
+ }
257
+
258
+ public void loadStateHandlerInterceptors (Map <StateType , StateHandler > stateHandlerMap ) {
249
259
for (StateHandler stateHandler : stateHandlerMap .values ()) {
250
260
if (stateHandler instanceof InterceptableStateHandler ) {
251
261
InterceptableStateHandler interceptableStateHandler = (InterceptableStateHandler ) stateHandler ;
@@ -259,7 +269,7 @@ public void loadStateHandlerInterceptors(Map<String, StateHandler> stateHandlerM
259
269
}
260
270
}
261
271
262
- public void loadStateRouterInterceptors (Map <String , StateRouter > stateRouterMap ) {
272
+ public void loadStateRouterInterceptors (Map <StateType , StateRouter > stateRouterMap ) {
263
273
for (StateRouter stateRouter : stateRouterMap .values ()) {
264
274
if (stateRouter instanceof InterceptableStateRouter ) {
265
275
InterceptableStateRouter interceptableStateRouter = (InterceptableStateRouter ) stateRouter ;
0 commit comments