From fd681e2c6663652be02a31f7b40da4cd283ab37e Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Mon, 21 Apr 2014 09:01:00 +0200 Subject: wip --- .../io/trygvis/calamus/engine/CalamusJbpm.java | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpm.java (limited to 'calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpm.java') 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); + } +} -- cgit v1.2.3