/
CamundaBpmConfiguration.java
89 lines (75 loc) · 4.05 KB
/
CamundaBpmConfiguration.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package org.camunda.bpm.spring.boot.starter;
import java.util.List;
import org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl;
import org.camunda.bpm.engine.spring.SpringProcessEngineConfiguration;
import org.camunda.bpm.spring.boot.starter.configuration.CamundaConfiguration;
import org.camunda.bpm.spring.boot.starter.configuration.CamundaDatasourceConfiguration;
import org.camunda.bpm.spring.boot.starter.configuration.CamundaDeploymentConfiguration;
import org.camunda.bpm.spring.boot.starter.configuration.CamundaHistoryConfiguration;
import org.camunda.bpm.spring.boot.starter.configuration.CamundaJobConfiguration;
import org.camunda.bpm.spring.boot.starter.configuration.CamundaJpaConfiguration;
import org.camunda.bpm.spring.boot.starter.configuration.CamundaProcessEngineConfiguration;
import org.camunda.bpm.spring.boot.starter.configuration.impl.DefaultDatasourceConfiguration;
import org.camunda.bpm.spring.boot.starter.configuration.impl.DefaultDeploymentConfiguration;
import org.camunda.bpm.spring.boot.starter.configuration.impl.DefaultHistoryConfiguration;
import org.camunda.bpm.spring.boot.starter.configuration.impl.DefaultJobConfiguration;
import org.camunda.bpm.spring.boot.starter.configuration.impl.DefaultJobConfiguration.JobConfiguration;
import org.camunda.bpm.spring.boot.starter.configuration.impl.DefaultJpaConfiguration;
import org.camunda.bpm.spring.boot.starter.configuration.impl.DefaultProcessEngineConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
@Import(JobConfiguration.class)
public class CamundaBpmConfiguration {
private static final Logger LOGGER = LoggerFactory.getLogger(CamundaBpmConfiguration.class);
@Autowired
protected List<CamundaConfiguration> camundaConfigurations;
@Bean
@ConditionalOnMissingBean(ProcessEngineConfigurationImpl.class)
public ProcessEngineConfigurationImpl processEngineConfigurationImpl() {
SpringProcessEngineConfiguration configuration = new SpringProcessEngineConfiguration();
for (CamundaConfiguration camundaConfiguration : camundaConfigurations) {
LOGGER.debug("applying {}", camundaConfiguration.getClass());
camundaConfiguration.apply(configuration);
}
return configuration;
}
@Bean
@ConditionalOnMissingBean(CamundaProcessEngineConfiguration.class)
public static CamundaProcessEngineConfiguration camundaProcessEngineConfiguration() {
return new DefaultProcessEngineConfiguration();
}
@Bean
@ConditionalOnMissingBean(CamundaDatasourceConfiguration.class)
public static CamundaDatasourceConfiguration camundaDatasourceConfiguration() {
return new DefaultDatasourceConfiguration();
}
@Bean
@ConditionalOnBean(name = "entityManagerFactory")
@ConditionalOnMissingBean(CamundaJpaConfiguration.class)
@ConditionalOnProperty(prefix = "camunda.bpm.jpa", name = "enabled", havingValue = "true", matchIfMissing = true)
public static CamundaJpaConfiguration camundaJpaConfiguration() {
return new DefaultJpaConfiguration();
}
@Bean
@ConditionalOnMissingBean(CamundaJobConfiguration.class)
@ConditionalOnProperty(prefix = "camunda.bpm.job-execution", name = "enabled", havingValue = "true", matchIfMissing = true)
public static CamundaJobConfiguration camundaJobConfiguration() {
return new DefaultJobConfiguration();
}
@Bean
@ConditionalOnMissingBean(CamundaHistoryConfiguration.class)
public static CamundaHistoryConfiguration camundaHistoryConfiguration() {
return new DefaultHistoryConfiguration();
}
@Bean
@ConditionalOnMissingBean(CamundaDeploymentConfiguration.class)
public static CamundaDeploymentConfiguration camundaDeploymentConfiguration() {
return new DefaultDeploymentConfiguration();
}
}