diff options
Diffstat (limited to 'calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpmConfig.java')
-rw-r--r-- | calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpmConfig.java | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpmConfig.java b/calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpmConfig.java new file mode 100644 index 0000000..edfda28 --- /dev/null +++ b/calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpmConfig.java @@ -0,0 +1,68 @@ +package io.trygvis.calamus.engine; + +import org.jbpm.process.audit.JPAAuditLogService; +import org.kie.api.io.Resource; +import org.kie.api.io.ResourceType; +import org.kie.api.runtime.manager.RuntimeEnvironment; +import org.kie.api.runtime.manager.RuntimeManager; +import org.kie.internal.io.ResourceFactory; +import org.kie.spring.factorybeans.RuntimeEnvironmentFactoryBean; +import org.kie.spring.factorybeans.RuntimeManagerFactoryBean; +import org.slf4j.Logger; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; +import org.springframework.transaction.PlatformTransactionManager; + +import javax.persistence.EntityManagerFactory; +import javax.sql.DataSource; +import java.util.HashMap; +import java.util.Map; + +import static org.slf4j.LoggerFactory.getLogger; + +/** + * http://planet.jboss.org/post/jbpm_6_with_spring + */ +@Configuration +public class CalamusJbpmConfig { + private final Logger log = getLogger(getClass()); + + @Bean + @Lazy + public RuntimeEnvironmentFactoryBean runtimeEnvironment(DataSource dataSource, CalamusDbConfig.DbMigrations dbMigrations, EntityManagerFactory entityManagerFactory, PlatformTransactionManager platformTransactionManager) { + System.out.println("CalamusConfig.runtimeEnvironmentFactoryBean"); + System.out.println("dataSource = " + dataSource); + System.out.println("dbMigrations = " + dbMigrations); + System.out.println("entityManagerFactory = " + entityManagerFactory); + System.out.println("platformTransactionManager = " + platformTransactionManager); + RuntimeEnvironmentFactoryBean x = new RuntimeEnvironmentFactoryBean(); + x.setType("DEFAULT"); + + Map<Resource, ResourceType> assets = new HashMap<>(); + System.out.println("getClass().getClassLoader() = " + getClass().getClassLoader()); + assets.put(ResourceFactory.newClassPathResource("Deploy.bpmn2", getClass()), ResourceType.BPMN2); + x.setAssets(assets); +// x.setClassLoader(getClass().getClassLoader()); + + x.setEntityManagerFactory(entityManagerFactory); + x.setTransactionManager(platformTransactionManager); + + return x; + } + + @Bean + @Lazy + public RuntimeManager runtimeManagerFactoryBean(RuntimeEnvironment runtimeEnvironment) throws Exception { + RuntimeManagerFactoryBean x = new RuntimeManagerFactoryBean(); + x.setIdentifier("spring-rm"); + x.setRuntimeEnvironment(runtimeEnvironment); + x.afterPropertiesSet(); + return (RuntimeManager) x.getObject(); + } + + @Bean + public JPAAuditLogService jpaAuditLogService(EntityManagerFactory entityManagerFactory) { + return new JPAAuditLogService(entityManagerFactory); + } +} |