package io.trygvis.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.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 assets = new HashMap<>(); assets.put(ResourceFactory.newClassPathResource("/Deploy.bpmn2"), ResourceType.BPMN2); x.setAssets(assets); x.setEntityManagerFactory(entityManagerFactory); x.setTransactionManager(platformTransactionManager); return x; } // @Bean // public RuntimeManagerFactoryBean runtimeManagerFactoryBean(RuntimeEnvironment runtimeEnvironment) { // RuntimeManagerFactoryBean x = new RuntimeManagerFactoryBean(); // x.setIdentifier("spring-rm"); // x.setRuntimeEnvironment(runtimeEnvironment); // return x; // } @Bean public JPAAuditLogService jpaAuditLogService(EntityManagerFactory entityManagerFactory) { return new JPAAuditLogService(entityManagerFactory); } }