Advertisement
Guest User

Untitled

a guest
Jan 13th, 2015
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.61 KB | None | 0 0
  1. package com.sample;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5.  
  6. import javax.persistence.EntityManagerFactory;
  7. import javax.persistence.Persistence;
  8.  
  9. import org.drools.core.command.GetVariableCommand;
  10. import org.drools.core.command.impl.GenericCommand;
  11. import org.jbpm.process.audit.AuditLogService;
  12. import org.jbpm.process.audit.AuditLoggerFactory;
  13. import org.jbpm.process.audit.AuditLoggerFactory.Type;
  14. import org.jbpm.process.audit.JPAAuditLogService;
  15. import org.jbpm.process.core.context.variable.VariableScope;
  16. import org.jbpm.process.instance.context.variable.VariableScopeInstance;
  17. import org.jbpm.test.JBPMHelper;
  18. import org.kie.api.KieBase;
  19. import org.kie.api.KieServices;
  20. import org.kie.api.runtime.KieContainer;
  21. import org.kie.api.runtime.KieSession;
  22. import org.kie.api.runtime.manager.RuntimeEngine;
  23. import org.kie.api.runtime.manager.RuntimeEnvironmentBuilder;
  24. import org.kie.api.runtime.manager.RuntimeManager;
  25. import org.kie.api.runtime.manager.RuntimeManagerFactory;
  26. import org.kie.api.runtime.process.WorkflowProcessInstance;
  27. import org.kie.internal.command.Context;
  28.  
  29. public class ProcessMain {
  30.  
  31.     private static AuditLogService audit;
  32.  
  33.     public static void main(String[] args) {
  34.         KieServices ks = KieServices.Factory.get();
  35.         KieContainer kContainer = ks.getKieClasspathContainer();
  36.         KieBase kbase = kContainer.getKieBase("kbase");
  37.  
  38.         RuntimeManager manager = createRuntimeManager(kbase);
  39.         RuntimeEngine engine = manager.getRuntimeEngine(null);
  40.         final KieSession ksession = engine.getKieSession();
  41.  
  42.         AuditLoggerFactory.newInstance(Type.JPA, ksession, null);
  43.  
  44.         Map<String, Object> params = new HashMap<String, Object>();
  45.         params.put("test", "value");
  46.  
  47.         final WorkflowProcessInstance p = (WorkflowProcessInstance) ksession.startProcess("com.sample.bpmn.hello", params);
  48.  
  49.         Map<String, Object> variables = ksession.execute(new GenericCommand<Map<String, Object>>() {
  50.  
  51.             private static final long serialVersionUID = 1L;
  52.  
  53.             @Override
  54.             public Map<String, Object> execute(Context context) {
  55.                 org.jbpm.process.instance.ProcessInstance processInstance = (org.jbpm.process.instance.ProcessInstance) ksession.getProcessInstance(p
  56.                         .getId());
  57.                 VariableScopeInstance variableScope = (VariableScopeInstance) processInstance.getContextInstance(VariableScope.VARIABLE_SCOPE);
  58.                 return variableScope.getVariables();
  59.             }
  60.  
  61.         });
  62.  
  63.         /**
  64.          * Via Command
  65.          */
  66.         String cmdStr = (String) ksession.execute(new GetVariableCommand("test"));
  67.  
  68.         /**
  69.          * Via WorkflowProcessInstance
  70.          */
  71.         String wfStr = (String) p.getVariable("test");
  72.  
  73.         /**
  74.          * Via Audit Log
  75.          */
  76.  
  77.         String auditStr = audit.findVariableInstances(p.getId(), "test").get(0).getValue();
  78.  
  79.         /**
  80.          * Via VariableScopeInstance
  81.          */
  82.         String varScopeStr = (String) variables.get("test");
  83.  
  84.         System.out.println(cmdStr);
  85.         System.out.println(wfStr);
  86.         System.out.println(auditStr);
  87.         System.out.println(varScopeStr);
  88.  
  89.         manager.disposeRuntimeEngine(engine);
  90.         System.exit(0);
  91.     }
  92.  
  93.     private static RuntimeManager createRuntimeManager(KieBase kbase) {
  94.         JBPMHelper.startH2Server();
  95.         JBPMHelper.setupDataSource();
  96.         EntityManagerFactory emf = Persistence.createEntityManagerFactory("org.jbpm.persistence.jpa");
  97.  
  98.         audit = new JPAAuditLogService(emf);
  99.         ((JPAAuditLogService) audit).setPersistenceUnitName("org.jbpm.persistence.jpa");
  100.  
  101.         RuntimeEnvironmentBuilder builder = RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder().entityManagerFactory(emf)
  102.                 .knowledgeBase(kbase);
  103.         return RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(builder.get(), "com.sample:example:1.0");
  104.     }
  105.  
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement