package cl.mop.ryc.bpm.bo; import java.util.HashMap; import java.util.Map; import java.util.Properties; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import org.drools.KnowledgeBaseFactory; import org.drools.base.MapGlobalResolver; import org.drools.builder.KnowledgeBuilder; import org.drools.builder.KnowledgeBuilderFactory; import org.drools.builder.ResourceType; import org.drools.io.ResourceFactory; import org.drools.persistence.jpa.JPAKnowledgeService; import org.drools.runtime.Environment; import org.drools.runtime.EnvironmentName; import org.drools.runtime.KnowledgeSessionConfiguration; import org.drools.runtime.StatefulKnowledgeSession; import org.drools.runtime.process.ProcessInstance; import org.jbpm.process.audit.JPAWorkingMemoryDbLogger; import org.jbpm.process.workitem.wsht.MinaHTWorkItemHandler; import bitronix.tm.TransactionManagerServices; public class ClasesJbpm { public EntityManagerFactory emf; public Environment env; public StatefulKnowledgeSession ksession; public MinaHTWorkItemHandler hornetQHTWorkItemHandler; public JPAWorkingMemoryDbLogger logger; public org.jbpm.task.TaskService client; public void persistenciaSesion() { emf = Persistence .createEntityManagerFactory("org.jbpm.persistence.jpa"); env = KnowledgeBaseFactory.newEnvironment(); env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf); env.set(EnvironmentName.TRANSACTION_MANAGER, TransactionManagerServices.getTransactionManager()); env.set(EnvironmentName.GLOBALS, new MapGlobalResolver()); Properties properties = new Properties(); properties .put("drools.processInstanceManagerFactory", "org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory"); properties.put("drools.processSignalManagerFactory", "org.jbpm.persistence.processinstance.JPASignalManagerFactory"); KnowledgeSessionConfiguration config = KnowledgeBaseFactory .newKnowledgeSessionConfiguration(properties); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory .newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("HumanTask.bpmn"), ResourceType.BPMN2); ksession = JPAKnowledgeService.newStatefulKnowledgeSession( kbuilder.newKnowledgeBase(), config, env); } public void persistenciaSesionLoad(int id) { emf = Persistence .createEntityManagerFactory("org.jbpm.persistence.jpa"); env = KnowledgeBaseFactory.newEnvironment(); env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf); env.set(EnvironmentName.TRANSACTION_MANAGER, TransactionManagerServices.getTransactionManager()); env.set(EnvironmentName.GLOBALS, new MapGlobalResolver()); Properties properties = new Properties(); properties .put("drools.processInstanceManagerFactory", "org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory"); properties.put("drools.processSignalManagerFactory", "org.jbpm.persistence.processinstance.JPASignalManagerFactory"); KnowledgeSessionConfiguration config = KnowledgeBaseFactory .newKnowledgeSessionConfiguration(properties); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory .newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("HumanTask.bpmn"), ResourceType.BPMN2); ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(id, kbuilder.newKnowledgeBase(), config, env); } public void persistenciaSesionConcesion() { emf = Persistence .createEntityManagerFactory("org.jbpm.persistence.jpa"); env = KnowledgeBaseFactory.newEnvironment(); env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf); env.set(EnvironmentName.TRANSACTION_MANAGER, TransactionManagerServices.getTransactionManager()); env.set(EnvironmentName.GLOBALS, new MapGlobalResolver()); Properties properties = new Properties(); properties .put("drools.processInstanceManagerFactory", "org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory"); properties.put("drools.processSignalManagerFactory", "org.jbpm.persistence.processinstance.JPASignalManagerFactory"); KnowledgeSessionConfiguration config = KnowledgeBaseFactory .newKnowledgeSessionConfiguration(properties); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory .newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("Concesiones.bpmn"), ResourceType.BPMN2); ksession = JPAKnowledgeService.newStatefulKnowledgeSession( kbuilder.newKnowledgeBase(), config, env); } public void persistenciaSesionTransparencia() { emf = Persistence .createEntityManagerFactory("org.jbpm.persistence.jpa"); env = KnowledgeBaseFactory.newEnvironment(); env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf); env.set(EnvironmentName.TRANSACTION_MANAGER, TransactionManagerServices.getTransactionManager()); env.set(EnvironmentName.GLOBALS, new MapGlobalResolver()); Properties properties = new Properties(); properties .put("drools.processInstanceManagerFactory", "org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory"); properties.put("drools.processSignalManagerFactory", "org.jbpm.persistence.processinstance.JPASignalManagerFactory"); KnowledgeSessionConfiguration config = KnowledgeBaseFactory .newKnowledgeSessionConfiguration(properties); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory .newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newClassPathResource("Transparencia.bpmn"), ResourceType.BPMN2); ksession = JPAKnowledgeService.newStatefulKnowledgeSession( kbuilder.newKnowledgeBase(), config, env); } public void persistenciaSesionActoresRelevantes() { emf = Persistence .createEntityManagerFactory("org.jbpm.persistence.jpa"); env = KnowledgeBaseFactory.newEnvironment(); env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf); env.set(EnvironmentName.TRANSACTION_MANAGER, TransactionManagerServices.getTransactionManager()); env.set(EnvironmentName.GLOBALS, new MapGlobalResolver()); Properties properties = new Properties(); properties .put("drools.processInstanceManagerFactory", "org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory"); properties.put("drools.processSignalManagerFactory", "org.jbpm.persistence.processinstance.JPASignalManagerFactory"); KnowledgeSessionConfiguration config = KnowledgeBaseFactory .newKnowledgeSessionConfiguration(properties); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory .newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newClassPathResource("ActoresRelevantes.bpmn"), ResourceType.BPMN2); ksession = JPAKnowledgeService.newStatefulKnowledgeSession( kbuilder.newKnowledgeBase(), config, env); } public void persistenciaSesionLoadActoresRelevantes(int id) { emf = Persistence .createEntityManagerFactory("org.jbpm.persistence.jpa"); env = KnowledgeBaseFactory.newEnvironment(); env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf); env.set(EnvironmentName.TRANSACTION_MANAGER, TransactionManagerServices.getTransactionManager()); env.set(EnvironmentName.GLOBALS, new MapGlobalResolver()); Properties properties = new Properties(); properties .put("drools.processInstanceManagerFactory", "org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory"); properties.put("drools.processSignalManagerFactory", "org.jbpm.persistence.processinstance.JPASignalManagerFactory"); KnowledgeSessionConfiguration config = KnowledgeBaseFactory .newKnowledgeSessionConfiguration(properties); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory .newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newClassPathResource("ActoresRelevantes.bpmn"), ResourceType.BPMN2); ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(id, kbuilder.newKnowledgeBase(), config, env); } public void persistenciaSesionLoadTransparencia(int id) { emf = Persistence .createEntityManagerFactory("org.jbpm.persistence.jpa"); env = KnowledgeBaseFactory.newEnvironment(); env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf); env.set(EnvironmentName.TRANSACTION_MANAGER, TransactionManagerServices.getTransactionManager()); env.set(EnvironmentName.GLOBALS, new MapGlobalResolver()); Properties properties = new Properties(); properties .put("drools.processInstanceManagerFactory", "org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory"); properties.put("drools.processSignalManagerFactory", "org.jbpm.persistence.processinstance.JPASignalManagerFactory"); KnowledgeSessionConfiguration config = KnowledgeBaseFactory .newKnowledgeSessionConfiguration(properties); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory .newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newClassPathResource("Transparencia.bpmn"), ResourceType.BPMN2); ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(id, kbuilder.newKnowledgeBase(), config, env); } public void persistenciaSesionLoadConcesion(int id) { emf = Persistence .createEntityManagerFactory("org.jbpm.persistence.jpa"); env = KnowledgeBaseFactory.newEnvironment(); env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf); env.set(EnvironmentName.TRANSACTION_MANAGER, TransactionManagerServices.getTransactionManager()); env.set(EnvironmentName.GLOBALS, new MapGlobalResolver()); Properties properties = new Properties(); properties .put("drools.processInstanceManagerFactory", "org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory"); properties.put("drools.processSignalManagerFactory", "org.jbpm.persistence.processinstance.JPASignalManagerFactory"); KnowledgeSessionConfiguration config = KnowledgeBaseFactory .newKnowledgeSessionConfiguration(properties); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory .newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("Concesiones.bpmn"), ResourceType.BPMN2); ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(id, kbuilder.newKnowledgeBase(), config, env); } public void registrarWorkItemHandler() { hornetQHTWorkItemHandler = new MinaHTWorkItemHandler(ksession); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", hornetQHTWorkItemHandler); hornetQHTWorkItemHandler.setIpAddress("127.0.0.1"); hornetQHTWorkItemHandler.setPort(9123); hornetQHTWorkItemHandler.connect(); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", hornetQHTWorkItemHandler); } public void registrarLogger() { logger = new JPAWorkingMemoryDbLogger(ksession); } public void instanciarProceso(String idProceso, Map<String, Object> params) { ksession.startProcess(idProceso, params); } public ProcessInstance instanciarProceso(String idProceso) { ProcessInstance pi = ksession.startProcess(idProceso); return pi; } public ProcessInstance instanciarProcesoParam(String idProceso, HashMap<String, Object> param) { ProcessInstance pi = ksession.startProcess(idProceso, param); return pi; } public void obtenerCliente() { client = hornetQHTWorkItemHandler.getClient(); } public void cerrarConexion() { try { client.disconnect(); hornetQHTWorkItemHandler.dispose(); } catch (Exception e) { e.printStackTrace(); } logger.dispose(); ksession.dispose(); } } |