summaryrefslogtreecommitdiff
path: root/calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpm.java
diff options
context:
space:
mode:
Diffstat (limited to 'calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpm.java')
-rw-r--r--calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpm.java80
1 files changed, 80 insertions, 0 deletions
diff --git a/calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpm.java b/calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpm.java
new file mode 100644
index 0000000..af6f489
--- /dev/null
+++ b/calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpm.java
@@ -0,0 +1,80 @@
+package io.trygvis.calamus.engine;
+
+import org.kie.api.runtime.KieSession;
+import org.kie.api.runtime.manager.RuntimeEngine;
+import org.kie.api.runtime.manager.RuntimeManager;
+import org.kie.api.runtime.process.ProcessInstance;
+import org.kie.internal.runtime.manager.context.ProcessInstanceIdContext;
+import org.slf4j.Logger;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.transaction.support.TransactionTemplate;
+
+import javax.persistence.EntityManagerFactory;
+
+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 KieSession session;
+
+ public static enum CalamusProcess {
+ DEPLOY("io.trygvis.bpm.Deploy");
+
+ private String name;
+
+ CalamusProcess(String name) {
+ this.name = name;
+ }
+ }
+
+ public CalamusJbpm() {
+ 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);
+
+ RuntimeManager runtimeManager = spring.getBean(RuntimeManager.class);
+ RuntimeEngine engine = runtimeManager.getRuntimeEngine(ProcessInstanceIdContext.get());
+ session = engine.getKieSession();
+// 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 TransactionTemplate getTransactionTemplate() {
+ return transactionTemplate;
+ }
+
+ public EntityManagerFactory getEntityManagerFactory() {
+ return emf;
+ }
+
+ public KieSession getSession() {
+ return session;
+ }
+
+ public void startProcess(CalamusProcess process) {
+ ProcessInstance processInstance = session.startProcess(process.name);
+ }
+}