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