diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2014-04-13 09:59:38 +0200 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2014-04-13 09:59:38 +0200 |
commit | d38810a179a6f669ea0d3e7588f2aabed762deff (patch) | |
tree | d8417283259e4f4722167bbe18b7448d8453938c /calamus-engine/src/main/java/io/trygvis/engine/CalamusJbpm.java | |
parent | 07dde8de9d6040e60bf59e238444f620dba330c0 (diff) | |
download | calamus-d38810a179a6f669ea0d3e7588f2aabed762deff.tar.gz calamus-d38810a179a6f669ea0d3e7588f2aabed762deff.tar.bz2 calamus-d38810a179a6f669ea0d3e7588f2aabed762deff.tar.xz calamus-d38810a179a6f669ea0d3e7588f2aabed762deff.zip |
yay
Diffstat (limited to 'calamus-engine/src/main/java/io/trygvis/engine/CalamusJbpm.java')
-rw-r--r-- | calamus-engine/src/main/java/io/trygvis/engine/CalamusJbpm.java | 111 |
1 files changed, 34 insertions, 77 deletions
diff --git a/calamus-engine/src/main/java/io/trygvis/engine/CalamusJbpm.java b/calamus-engine/src/main/java/io/trygvis/engine/CalamusJbpm.java index cc2ff41..5b0e8ec 100644 --- a/calamus-engine/src/main/java/io/trygvis/engine/CalamusJbpm.java +++ b/calamus-engine/src/main/java/io/trygvis/engine/CalamusJbpm.java @@ -1,34 +1,20 @@ package io.trygvis.engine; -import bitronix.tm.TransactionManagerServices; -import bitronix.tm.resource.jdbc.PoolingDataSource; -import com.googlecode.flyway.core.Flyway; -import com.googlecode.flyway.core.api.MigrationInfo; -import com.googlecode.flyway.core.api.MigrationInfoService; -import org.jbpm.bpmn2.handler.ServiceTaskHandler; -import org.jbpm.process.audit.AuditLoggerFactory; -import org.kie.api.KieBase; -import org.kie.api.runtime.Environment; -import org.kie.api.runtime.EnvironmentName; import org.kie.api.runtime.process.ProcessInstance; -import org.kie.internal.KnowledgeBaseFactory; -import org.kie.internal.io.ResourceFactory; -import org.kie.internal.persistence.jpa.JPAKnowledgeService; import org.kie.internal.runtime.StatefulKnowledgeSession; -import org.kie.internal.utils.KieHelper; import org.slf4j.Logger; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.transaction.support.TransactionTemplate; import javax.persistence.EntityManagerFactory; -import javax.persistence.Persistence; -import javax.sql.DataSource; -import java.util.Date; -import static java.lang.String.format; import static org.slf4j.LoggerFactory.getLogger; public class CalamusJbpm { private final Logger log = getLogger(getClass()); + private final TransactionTemplate transactionTemplate; + private final EntityManagerFactory emf; private final StatefulKnowledgeSession session; @@ -44,74 +30,45 @@ public class CalamusJbpm { } public CalamusJbpm() { - PoolingDataSource ds = new PoolingDataSource(); - ds.setUniqueName("jdbc/jbpm-ds"); - ds.setClassName(bitronix.tm.resource.jdbc.lrc.LrcXADataSource.class.getCanonicalName()); - ds.setMaxPoolSize(3); - ds.setAllowLocalTransactions(true); - ds.getDriverProperties().put("user", "jbpm"); - ds.getDriverProperties().put("password", "jbpm"); - ds.getDriverProperties().put("url", "jdbc:postgresql://localhost/jbpm"); - ds.getDriverProperties().put("driverClassName", org.postgresql.Driver.class.getCanonicalName()); - ds.init(); - - runFlyway(log, ds, "", "public"); - - emf = Persistence.createEntityManagerFactory("org.jbpm.persistence.jpa"); - Environment env = KnowledgeBaseFactory.newEnvironment(); - env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf); - env.set(EnvironmentName.TRANSACTION_MANAGER, TransactionManagerServices.getTransactionManager()); - - KieBase kieBase = new KieHelper() - .addResource(ResourceFactory.newClassPathResource("Deploy.bpmn2")) - .build(); - - session = JPAKnowledgeService.newStatefulKnowledgeSession(kieBase, null, env); - session.addEventListener(AuditLoggerFactory.newJPAInstance(env)); - - session.getWorkItemManager().registerWorkItemHandler("Service Task", new ServiceTaskHandler()); - session.getWorkItemManager().registerWorkItemHandler("Upgrade App", new UpgradeAppWorkItemHandler()); - session.getWorkItemManager().registerWorkItemHandler("Restart App", new RestartAppWorkItemHandler()); + AnnotationConfigApplicationContext spring = new AnnotationConfigApplicationContext(CalamusDbConfig.class, CalamusJbpmConfig.class); + +// emf = Persistence.createEntityManagerFactory("org.jbpm.persistence.jpa"); +// Environment env = KnowledgeBaseFactory.newEnvironment(); +// env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf); +// env.set(EnvironmentName.TRANSACTION_MANAGER, TransactionManagerServices.getTransactionManager()); + +// KieBase kieBase = new KieHelper() +// .addResource(ResourceFactory.newClassPathResource("Deploy.bpmn2")) +// .build(); + +// RuntimeEnvironment runtimeEnvironment = spring.getBean(RuntimeEnvironment.class); +// +// KieBase kieBase = runtimeEnvironment.getKieBase(); + + transactionTemplate = spring.getBean(TransactionTemplate.class); + emf = spring.getBean(EntityManagerFactory.class); + session = null; +// session = JPAKnowledgeService.newStatefulKnowledgeSession(kieBase, null, env); +// session.addEventListener(AuditLoggerFactory.newJPAInstance(env)); + +// session.getWorkItemManager().registerWorkItemHandler("Service Task", new ServiceTaskHandler()); +// session.getWorkItemManager().registerWorkItemHandler("Upgrade App", new UpgradeAppWorkItemHandler()); +// session.getWorkItemManager().registerWorkItemHandler("Restart App", new RestartAppWorkItemHandler()); } - public StatefulKnowledgeSession getSession() { - return session; + public TransactionTemplate getTransactionTemplate() { + return transactionTemplate; } public EntityManagerFactory getEntityManagerFactory() { return emf; } - public void startProcess(CalamusProcess process) { - ProcessInstance processInstance = session.startProcess(process.name); - } - - private static void runFlyway(Logger log, DataSource dataSource, String prefix, String schema) { - log.info("Running migrations for {}", schema); - - Flyway flyway = new Flyway(); - flyway.setDataSource(dataSource); - flyway.setSchemas(schema); - flyway.setLocations("db/" + prefix); - flyway.setInitOnMigrate(true); - MigrationInfoService info = flyway.info(); - log.info(format("%-15s %-10s %-19s %s", "Version", "State", "Installed on", "Description")); - for (MigrationInfo mi : info.all()) { - Date installedOn = mi.getInstalledOn(); - log.info(format("%-15s %-10s %-19s %s", - mi.getVersion(), - trimToEmpty(mi.getState().getDisplayName()), - installedOn != null ? new Date(installedOn.getTime()).toString() : "", - trimToEmpty(mi.getDescription()))); - } - flyway.migrate(); + public StatefulKnowledgeSession getSession() { + return session; } - private static String trimToEmpty(String string) { - if (string == null) { - return ""; - } - - return string.trim(); + public void startProcess(CalamusProcess process) { + ProcessInstance processInstance = session.startProcess(process.name); } } |