1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.logic;
20
21 import org.apache.syncope.core.flowable.api.BpmnProcessManager;
22 import org.apache.syncope.core.flowable.api.UserRequestHandler;
23 import org.apache.syncope.core.flowable.api.WorkflowTaskManager;
24 import org.apache.syncope.core.flowable.support.DomainProcessEngine;
25 import org.apache.syncope.core.logic.init.FlowableLoader;
26 import org.apache.syncope.core.persistence.api.dao.UserDAO;
27 import org.apache.syncope.core.provisioning.api.data.UserDataBinder;
28 import org.apache.syncope.core.provisioning.api.propagation.PropagationManager;
29 import org.apache.syncope.core.provisioning.api.propagation.PropagationTaskExecutor;
30 import org.springframework.beans.factory.annotation.Qualifier;
31 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
32 import org.springframework.context.annotation.Bean;
33 import org.springframework.context.annotation.Configuration;
34 import org.springframework.core.io.Resource;
35
36 @Configuration(proxyBeanMethods = false)
37 public class FlowableLogicContext {
38
39 @ConditionalOnMissingBean
40 @Bean
41 public FlowableLoader flowableLoader(
42 final DomainProcessEngine engine,
43 @Qualifier("userWorkflowDef")
44 final Resource userWorkflowDef) {
45
46 return new FlowableLoader(userWorkflowDef, engine);
47 }
48
49 @ConditionalOnMissingBean
50 @Bean
51 public BpmnProcessLogic bpmnProcessLogic(final BpmnProcessManager bpmnProcessManager) {
52 return new BpmnProcessLogic(bpmnProcessManager);
53 }
54
55 @ConditionalOnMissingBean
56 @Bean
57 public UserRequestLogic userRequestLogic(
58 final UserRequestHandler userRequestHandler,
59 final UserDataBinder binder,
60 final BpmnProcessManager bpmnProcessManager,
61 final PropagationTaskExecutor taskExecutor,
62 final UserDAO userDAO,
63 final PropagationManager propagationManager) {
64
65 return new UserRequestLogic(
66 bpmnProcessManager,
67 userRequestHandler,
68 propagationManager,
69 taskExecutor,
70 binder,
71 userDAO);
72 }
73
74 @ConditionalOnMissingBean
75 @Bean
76 public UserWorkflowTaskLogic userWorkflowTaskLogic(
77 final WorkflowTaskManager wfTaskManager,
78 final UserDataBinder binder,
79 final UserDAO userDAO,
80 final PropagationTaskExecutor taskExecutor,
81 final PropagationManager propagationManager) {
82
83 return new UserWorkflowTaskLogic(wfTaskManager, propagationManager, taskExecutor, binder, userDAO);
84 }
85 }