Skip to content

Commit 2839598

Browse files
modify configuration to avoid circular dependency
1 parent eb4cba7 commit 2839598

File tree

2 files changed

+34
-16
lines changed

2 files changed

+34
-16
lines changed

multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/configuration/FlowableConfiguration.java

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ public class FlowableConfiguration {
4343

4444
@Bean
4545
@DependsOn("liquibaseChangelog")
46-
public ProcessEngine processEngine(ApplicationContext applicationContext, SpringProcessEngineConfiguration processEngineConfiguration)
47-
throws Exception {
48-
ProcessEngineFactoryBean processEngineFactoryBean = new ProcessEngineFactoryBean();
49-
processEngineFactoryBean.setApplicationContext(applicationContext);
50-
processEngineFactoryBean.setProcessEngineConfiguration(processEngineConfiguration);
51-
return processEngineFactoryBean.getObject();
46+
public ProcessEngineFactoryBean processEngine(ApplicationContext applicationContext,
47+
SpringProcessEngineConfiguration processEngineConfiguration) {
48+
ProcessEngineFactoryBean factory = new ProcessEngineFactoryBean();
49+
factory.setApplicationContext(applicationContext);
50+
factory.setProcessEngineConfiguration(processEngineConfiguration);
51+
return factory;
5252
}
5353

5454
@Bean
@@ -122,14 +122,4 @@ public String jobExecutorId(ApplicationConfiguration applicationConfiguration) {
122122
private String buildJobExecutorId(String applicationId, int applicationInstanceIndex) {
123123
return String.format(JOB_EXECUTOR_ID_TEMPLATE, applicationId, applicationInstanceIndex, randomIdGenerator.get());
124124
}
125-
126-
@Bean
127-
public RuntimeService runtimeService(ProcessEngine processEngine) {
128-
return processEngine.getRuntimeService();
129-
}
130-
131-
@Bean
132-
public HistoryService historyService(ProcessEngine processEngine) {
133-
return processEngine.getHistoryService();
134-
}
135125
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package org.cloudfoundry.multiapps.controller.web.configuration;
2+
3+
import org.flowable.engine.ProcessEngine;
4+
import org.springframework.context.annotation.Bean;
5+
import org.springframework.context.annotation.Configuration;
6+
import org.springframework.context.annotation.DependsOn;
7+
import org.springframework.context.annotation.Lazy;
8+
9+
@Configuration
10+
public class FlowableServicesConfiguration {
11+
12+
// Mark as @Lazy and @DependsOn to ensure 'processEngine' is produced first,
13+
// and service beans only resolve when actually needed.
14+
15+
@Bean
16+
@Lazy
17+
@DependsOn("processEngine")
18+
public org.flowable.engine.RuntimeService runtimeService(ProcessEngine processEngine) {
19+
return processEngine.getRuntimeService();
20+
}
21+
22+
@Bean
23+
@Lazy
24+
@DependsOn("processEngine")
25+
public org.flowable.engine.HistoryService historyService(ProcessEngine processEngine) {
26+
return processEngine.getHistoryService();
27+
}
28+
}

0 commit comments

Comments
 (0)