public CaseData internalGetCaseFile(KieRuntime kruntime) { Collection<? extends Object> caseFiles = kruntime.getObjects(new ClassObjectFilter(CaseData.class)); if (caseFiles.size() != 1) { return null; } CaseData caseFile = (CaseData) caseFiles.iterator().next(); return caseFile; }
private void initSignalManager() { String signalManagerClass = ((SessionConfiguration) kruntime.getSessionConfiguration()).getSignalManagerFactory(); try { signalManager = ((SignalManagerFactory) loadClass(signalManagerClass).newInstance()) .createSignalManager(kruntime); } catch (InstantiationException e) { throw new RuntimeException(e); } catch (IllegalAccessException e) { throw new RuntimeException(e); } }
private void initProcessInstanceManager() { String processInstanceManagerClass = ((SessionConfiguration) kruntime.getSessionConfiguration()).getProcessInstanceManagerFactory(); try { processInstanceManager = ((ProcessInstanceManagerFactory) loadClass(processInstanceManagerClass).newInstance()) .createProcessInstanceManager(kruntime); } catch (InstantiationException e) { throw new RuntimeException(e); } catch (IllegalAccessException e) { throw new RuntimeException(e); } }
properties.setProperty( "drools.timerService", JpaJDKTimerService.class.getName() ); SessionConfiguration config = SessionConfiguration.newInstance( properties ); InternalKnowledgeBase ruleBase = KnowledgeBaseFactory.newKnowledgeBase(); KiePackage pkg = getProcessSubProcess(); ruleBase.addPackages( (Collection) Arrays.asList(pkg) ); env ); Long sessionId = service.getSessionId(); StartProcessCommand startProcessCommand = new StartProcessCommand(); startProcessCommand.setProcessId( "org.drools.test.TestProcess" ); RuleFlowProcessInstance processInstance = (RuleFlowProcessInstance) service.execute( startProcessCommand ); logger.info( "Started process instance {}", processInstance.getId() ); config, env ); GetProcessInstanceCommand getProcessInstanceCommand = new GetProcessInstanceCommand(); getProcessInstanceCommand.setProcessInstanceId( processInstanceId ); processInstance = (RuleFlowProcessInstance) service.execute( getProcessInstanceCommand ); assertNotNull( processInstance ); SubProcessNodeInstance subProcessNodeInstance = (SubProcessNodeInstance) nodeInstances.iterator().next(); long subProcessInstanceId = subProcessNodeInstance.getProcessInstanceId(); getProcessInstanceCommand = new GetProcessInstanceCommand(); getProcessInstanceCommand.setProcessInstanceId( subProcessInstanceId ); RuleFlowProcessInstance subProcessInstance = (RuleFlowProcessInstance) service.execute( getProcessInstanceCommand ); assertNotNull( subProcessInstance );
JPASignalManagerFactory.class.getName() ); SessionConfiguration config = SessionConfiguration.newInstance( properties ); config.setOption( TimerJobFactoryOption.get(TimerJobFactoryType.JPA.getId()) ); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); Collection<KiePackage> kpkgs = getProcessTimer2(); kbase.addPackages( kpkgs ); env ); Long sessionId = service.getSessionId(); StartProcessCommand startProcessCommand = new StartProcessCommand(); startProcessCommand.setProcessId( "org.drools.test.TestProcess" ); ProcessInstance processInstance = service.execute( startProcessCommand ); logger.info( "Started process instance {}", processInstance.getId() ); config, env ); GetProcessInstanceCommand getProcessInstanceCommand = new GetProcessInstanceCommand(); getProcessInstanceCommand.setProcessInstanceId( processInstance.getId() ); processInstance = service.execute( getProcessInstanceCommand ); assertNull( processInstance );
InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addPackages(Arrays.asList(builder.getPackages())); SessionConfiguration conf = SessionConfiguration.newInstance(); conf.setOption( ClockTypeOption.get( ClockType.PSEUDO_CLOCK.getId() ) ); session = kbase.newKieSession(conf, null); assertEquals(0, myList.size()); assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState()); assertEquals(2, ((InternalProcessRuntime) ((InternalWorkingMemory) session).getProcessRuntime()).getTimerManager().getTimers().size());
StatefulKnowledgeSession result; if (conf == null) { conf = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(); } else { if (env == null) { env = EnvironmentFactory.newEnvironment(); defaultProps.setProperty("drools.processInstanceManagerFactory", DefaultProcessInstanceManagerFactory.class.getName()); conf = SessionConfiguration.newInstance(defaultProps); conf.setOption(ForceEagerActivationOption.YES); result = (StatefulKnowledgeSession) kbase.newKieSession(conf, env); logger = new WorkingMemoryInMemoryLogger(result);
public static StatefulKnowledgeSession deserializeKnowledgeSession(Marshaller marshaller, byte [] serializedKsession) throws Exception { ByteArrayInputStream bais = new ByteArrayInputStream( serializedKsession ); StatefulKnowledgeSession deserializedKsession = (StatefulKnowledgeSession) marshaller.unmarshall( bais, SessionConfiguration.newInstance(), EnvironmentFactory.newEnvironment() ); bais.close(); return deserializedKsession; }
public void internalSetVariable(String name, Object value) { if (name.startsWith(VariableScope.CASE_FILE_PREFIX)) { String nameInCaseFile = name.replaceFirst(VariableScope.CASE_FILE_PREFIX, ""); // store it under case file rather regular variables @SuppressWarnings("unchecked") Collection<CaseData> caseFiles = (Collection<CaseData>) getProcessInstance().getKnowledgeRuntime().getObjects(new ClassObjectFilter(CaseData.class)); if (caseFiles.size() == 1) { CaseData caseFile = (CaseData) caseFiles.iterator().next(); FactHandle factHandle = getProcessInstance().getKnowledgeRuntime().getFactHandle(caseFile); if (value == null) { caseFile.remove(nameInCaseFile); } else { caseFile.add(nameInCaseFile, value); } getProcessInstance().getKnowledgeRuntime().update(factHandle, caseFile); ((KieSession)getProcessInstance().getKnowledgeRuntime()).fireAllRules(); return; } } // not a case, store it in normal variables variables.put(name, value); }
if (session.getProcessInstance(workItem.getProcessInstanceId()) != null) { taskData.setProcessId(session.getProcessInstance(workItem.getProcessInstanceId()).getProcess().getId()); String deploymentId = ((WorkItemImpl) workItem).getDeploymentId(); taskData.setDeploymentId(deploymentId); Collection<CaseData> caseFiles = (Collection<CaseData>) session.getObjects(new ClassObjectFilter(CaseData.class)); if (caseFiles != null && caseFiles.size() == 1) { caseFile = caseFiles.iterator().next();
value = getProcessInstance().getKnowledgeRuntime().getGlobal(name); if (value != null) { return value; Collection<CaseData> caseFiles = (Collection<CaseData>) getProcessInstance().getKnowledgeRuntime().getObjects(new ClassObjectFilter(CaseData.class)); if (caseFiles.size() == 1) { CaseData caseFile = caseFiles.iterator().next();
@Override public ProcessInstance startProcess(String processId) { if (session == null) { // load the process KieBase kbase = createKnowledgeBase(); // create a new session Properties properties = new Properties(); properties.put("drools.processInstanceManagerFactory", "org.jbpm.process.instance.impl.DefaultProcessInstanceManagerFactory"); properties.put("drools.processSignalManagerFactory", "org.jbpm.process.instance.event.DefaultSignalManagerFactory"); SessionConfiguration config = SessionConfiguration.newInstance(properties); session = kbase.newKieSession(config, createEnvironment(context)); new JPAWorkingMemoryDbLogger(session); session.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); } return session.startProcess(processId); }
private static ReteooBuilder[] getReteBuilders(int count) { System.out.println("Creating "+count+" ReteBuilder's"); ReteooBuilder[] reteBuilders = new ReteooBuilder[count]; RuleBaseConfiguration conf = new RuleBaseConfiguration(); for (int i = 0; i < reteBuilders.length; i++) { reteBuilders[i] = new ReteooBuilder(new KnowledgeBaseImpl( "id1", conf )); } return reteBuilders; }
assertEquals(((SessionConfiguration) kieSession.getSessionConfiguration()).getSignalManagerFactory(), DefaultSignalManagerFactory.class.getName());
InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); Collection<KiePackage> kpkgs = getProcessWorkItems(); kbase.addPackages( kpkgs ); properties.setProperty( "drools.timerService", JpaJDKTimerService.class.getName() ); SessionConfiguration config = SessionConfiguration.newInstance( properties ); StartProcessCommand startProcessCommand = new StartProcessCommand(); startProcessCommand.setProcessId( "org.drools.test.TestProcess" ); ProcessInstance processInstance = service.execute( startProcessCommand ); logger.info( "Started process instance {}", processInstance.getId() ); config, env ); GetProcessInstanceCommand getProcessInstanceCommand = new GetProcessInstanceCommand(); getProcessInstanceCommand.setProcessInstanceId( processInstance.getId() ); processInstance = service.execute( getProcessInstanceCommand ); assertNotNull( processInstance ); config, env ); CompleteWorkItemCommand completeWorkItemCommand = new CompleteWorkItemCommand(); completeWorkItemCommand.setWorkItemId( workItem.getId() ); service.execute( completeWorkItemCommand ); config, env ); getProcessInstanceCommand = new GetProcessInstanceCommand();
SessionConfiguration config = SessionConfiguration.newInstance( properties ); config.setOption( TimerJobFactoryOption.get(TimerJobFactoryType.JPA.getId()) ); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); Collection<KiePackage> kpkgs = getProcessTimer(); kbase.addPackages( kpkgs ); env ); Long sessionId = service.getSessionId(); StartProcessCommand startProcessCommand = new StartProcessCommand(); startProcessCommand.setProcessId( "org.drools.test.TestProcess" ); ProcessInstance processInstance = service.execute( startProcessCommand ); logger.info( "Started process instance {}", processInstance.getId() ); config, env ); GetProcessInstanceCommand getProcessInstanceCommand = new GetProcessInstanceCommand(); getProcessInstanceCommand.setProcessInstanceId( processInstance.getId() ); processInstance = service.execute( getProcessInstanceCommand ); assertNotNull( processInstance ); env ); Thread.sleep( 5000 ); getProcessInstanceCommand = new GetProcessInstanceCommand(); getProcessInstanceCommand.setProcessInstanceId( processInstance.getId() ); processInstance = service.execute( getProcessInstanceCommand ); assertNull( processInstance );
public static String getCaseId(KieRuntime kruntime) { Collection<? extends Object> caseFiles = kruntime.getObjects(new ClassObjectFilter(CaseFileInstance.class)); if (caseFiles.size() != 1) { throw new IllegalStateException("Not able to find distinct case file - found case files " + caseFiles.size()); } CaseFileInstance caseFile = (CaseFileInstance) caseFiles.iterator().next(); return caseFile.getCaseId(); } }
@Override public ProcessInstance startProcess(String processName) { if( ksession == null ) { KieBase kbase = createKnowledgeBase(); Properties properties = new Properties(); properties.put("drools.processInstanceManagerFactory", "org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory"); properties.put("drools.processSignalManagerFactory", "org.jbpm.persistence.processinstance.JPASignalManagerFactory"); KieSessionConfiguration conf = SessionConfiguration.newInstance(properties); Environment env = createEnvironment(context); env.set("IS_JTA_TRANSACTION", false); ksession = JPAKnowledgeService.newStatefulKnowledgeSession(kbase, conf, env); ksession.addEventListener(new JPAWorkingMemoryDbLogger(emf, env)); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); } return ksession.startProcess(processName); }
InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); Collection<KiePackage> kpkgs = getProcessWorkItems(); kbase.addPackages( kpkgs ); properties.setProperty( "drools.timerService", JpaJDKTimerService.class.getName() ); SessionConfiguration config = SessionConfiguration.newInstance( properties ); StartProcessCommand startProcessCommand = new StartProcessCommand(); startProcessCommand.setProcessId( "org.drools.test.TestProcess" ); ProcessInstance processInstance = service.execute( startProcessCommand ); logger.info( "Started process instance {}", processInstance.getId() ); env ); ut.begin(); GetProcessInstanceCommand getProcessInstanceCommand = new GetProcessInstanceCommand(); getProcessInstanceCommand.setProcessInstanceId( processInstance.getId() ); processInstance = service.execute( getProcessInstanceCommand ); assertNotNull( processInstance ); env ); ut.begin(); CompleteWorkItemCommand completeWorkItemCommand = new CompleteWorkItemCommand(); completeWorkItemCommand.setWorkItemId( workItem.getId() ); service.execute( completeWorkItemCommand ); ut.commit(); env ); ut.begin();
} else { logger.debug("No query defined, retrieving all facts of type Assignment"); Collection<Assignment> results = (Collection<Assignment>) kieSession.getObjects(new ClassObjectFilter(Assignment.class));