Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
fa8f480121 |
@@ -0,0 +1,57 @@
|
|||||||
|
package com.inteligr8.activiti.ext;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
import org.activiti.engine.cfg.ProcessEngineConfigurator;
|
||||||
|
import org.activiti.spring.SpringProcessEngineConfiguration;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.ApplicationContext;
|
||||||
|
import org.springframework.context.annotation.Primary;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import com.activiti.api.engine.ProcessEngineConfigurationConfigurer;
|
||||||
|
|
||||||
|
@Component(MultiProcessEngineConfigurer.BEAN_NAME)
|
||||||
|
@Primary
|
||||||
|
public class MultiProcessEngineConfigurer implements ProcessEngineConfigurationConfigurer {
|
||||||
|
|
||||||
|
public static final String BEAN_NAME = "inteligr8.multiext.processEngineConfigurer";
|
||||||
|
|
||||||
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ApplicationContext applicationContext;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void processEngineConfigurationInitialized(SpringProcessEngineConfiguration springProcessEngineConfiguration) {
|
||||||
|
this.logger.info("Multi-Ext enabled for ProcessEngineConfigurationConfigurer");
|
||||||
|
|
||||||
|
this.wrapSpringProcessEngineConfigurationConfigurers(springProcessEngineConfiguration);
|
||||||
|
this.wrapProcessEngineConfigurators(springProcessEngineConfiguration);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void wrapSpringProcessEngineConfigurationConfigurers(SpringProcessEngineConfiguration springProcessEngineConfiguration) {
|
||||||
|
Map<String, ProcessEngineConfigurationConfigurer> beans = this.applicationContext.getBeansOfType(ProcessEngineConfigurationConfigurer.class);
|
||||||
|
beans.remove(BEAN_NAME);
|
||||||
|
|
||||||
|
this.logger.debug("Executing {} spring process engine configurers", beans.size());
|
||||||
|
for (Entry<String, ProcessEngineConfigurationConfigurer> configurer : beans.entrySet()) {
|
||||||
|
this.logger.trace("Executing spring process engine configurer: {}: {}", configurer.getKey(), configurer.getValue().getClass());
|
||||||
|
configurer.getValue().processEngineConfigurationInitialized(springProcessEngineConfiguration);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void wrapProcessEngineConfigurators(SpringProcessEngineConfiguration springProcessEngineConfiguration) {
|
||||||
|
Map<String, ProcessEngineConfigurator> beans = this.applicationContext.getBeansOfType(ProcessEngineConfigurator.class);
|
||||||
|
|
||||||
|
this.logger.debug("Executing {} process engine configurators", beans.size());
|
||||||
|
for (Entry<String, ProcessEngineConfigurator> configurator : beans.entrySet()) {
|
||||||
|
this.logger.trace("Executing process engine configurator: {}: {}", configurator.getKey(), configurator.getValue().getClass());
|
||||||
|
springProcessEngineConfiguration.addConfigurator(configurator.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Reference in New Issue
Block a user