summaryrefslogtreecommitdiff
path: root/calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpmConfig.java
diff options
context:
space:
mode:
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.java68
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);
+ }
+}