private static KieBase loadKnowledgeBase(String bpmn2FileName) { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource(bpmn2FileName, UnmarshallingOverdueTimersTest.class), ResourceType.BPMN2); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addPackages(kbuilder.getKnowledgePackages()); return kbase; }
@Test public void multipleKSessionDifferentIdTest() { KieBase kbase1 = KnowledgeBaseFactory.newKnowledgeBase(); KieBase kbase2 = KnowledgeBaseFactory.newKnowledgeBase(); StatefulKnowledgeSession ksession1 = createSession(kbase1); StatefulKnowledgeSession ksession2 = createSession(kbase2); Assert.assertNotSame(ksession1.getIdentifier(), ksession2.getIdentifier()); }
@Test public void testPersistenceTimer2() throws Exception { setUp(); config.setOption( TimerJobFactoryOption.get(TimerJobFactoryType.JPA.getId()) ); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); Collection<KiePackage> kpkgs = getProcessTimer2(); kbase.addPackages( kpkgs );
@Test public void testMultipleTimers() throws Exception { Reader source = new StringReader( InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addPackages(Arrays.asList(builder.getPackages())); assertEquals(0, myList.size()); assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState()); assertEquals(2, ((InternalProcessRuntime) ((InternalWorkingMemory) session).getProcessRuntime()).getTimerManager().getTimers().size());
@Test @Ignore public void testCancelNonRegisteredWorkItemHandler() { String processId = "org.drools.actions"; String workName = "Unnexistent Task"; RuleFlowProcess process = getWorkItemProcess( processId, workName ); KieBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); ((KnowledgeBaseImpl) kbase).addProcess( process ); KieSession ksession = createSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler( workName, new DoNothingWorkItemHandler() ); Map<String, Object> parameters = new HashMap<String, Object>(); parameters.put( "UserName", "John Doe" ); parameters.put( "Person", new Person( "John Doe" ) ); ProcessInstance processInstance = ksession.startProcess( "org.drools.actions", parameters ); long processInstanceId = processInstance.getId(); Assert.assertEquals( ProcessInstance.STATE_ACTIVE, processInstance.getState() ); ksession.getWorkItemManager().registerWorkItemHandler( workName, null ); try { ksession.abortProcessInstance( processInstanceId ); Assert.fail( "should fail if WorkItemHandler for" + workName + "is not registered" ); } catch ( WorkItemHandlerNotFoundException wihnfe ) { } Assert.assertEquals( ProcessInstance.STATE_ABORTED, processInstance.getState() ); }
@Test public void testExtendSelf() throws Exception { String s1 = "package org.drools;\n" + "global java.util.List list;\n" + "\n" + "declare Bean extends Bean \n" + " foo : int @key\n" + "end\n"; KieBase kBase = KnowledgeBaseFactory.newKnowledgeBase(); KnowledgeBuilder kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder( ); kBuilder.add( new ByteArrayResource( s1.getBytes() ), ResourceType.DRL ); assertTrue( kBuilder.hasErrors() ); }
private KieBase getKnowledgeBase(final KnowledgeBuilder kbuilder) throws IOException, ClassNotFoundException { InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addPackages( kbuilder.getKnowledgePackages() ); kbase = SerializationHelper.serializeObject( kbase ); return kbase; }
public static KieBase createKnowledgeBase() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(new ClassPathResource("ruleflow.rf"), ResourceType.DRF); kbuilder.add(new ClassPathResource("ruleflow2.rf"), ResourceType.DRF); kbuilder.add(new ClassPathResource("ruleflow3.rf"), ResourceType.DRF); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addPackages(kbuilder.getKnowledgePackages()); return kbase; }
@Test public void testProcessEventListener() throws Exception { InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); List<KiePackage> pkgs = new ArrayList<KiePackage>(); pkgs.add( pkg ); kbase.addPackages( pkgs ); assertEquals( 16, processEventList.size() ); assertEquals( "org.drools.core.process.event", ((ProcessStartedEvent) processEventList.get(0)).getProcessInstance().getProcessId()); assertEquals( "Start", ((ProcessNodeTriggeredEvent) processEventList.get(1)).getNodeInstance().getNodeName()); assertEquals( "Start", ((ProcessNodeLeftEvent) processEventList.get(2)).getNodeInstance().getNodeName()); assertEquals( "Print", ((ProcessNodeTriggeredEvent) processEventList.get(3)).getNodeInstance().getNodeName());
@Test @Ignore public void testTimer() { KieBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); final KieSession workingMemory = kbase.newKieSession(); assertEquals(1, counter); timer.setDelay(500); timerManager.registerTimer(timer, processInstance); assertEquals(0, counter); try { Thread.sleep(1000); assertEquals(1, counter);
@Test public void testPersistenceTimer() throws Exception { setUp(); config.setOption( TimerJobFactoryOption.get(TimerJobFactoryType.JPA.getId()) ); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); Collection<KiePackage> kpkgs = getProcessTimer(); kbase.addPackages( kpkgs );
@Test public void testAccept() { KieBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); KieSession ksession = kbase.newKieSession(); WorkflowProcessImpl process = new WorkflowProcessImpl(); RuleFlowProcessInstance processInstance = new RuleFlowProcessInstance(); processInstance.setState(ProcessInstance.STATE_ACTIVE); processInstance.setProcess(process); processInstance.setKnowledgeRuntime((InternalKnowledgeRuntime) ksession); ProcessInstanceResolverStrategy strategy = new ProcessInstanceResolverStrategy(); assertTrue( strategy.accept(processInstance) ); Object object = new Object(); assertTrue( ! strategy.accept(object) ); }
private KieBase createKnowledgeBase(String flowFile) { KnowledgeBuilderConfiguration conf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(); conf.setProperty("drools.dialect.java.compiler", "JANINO"); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(conf); kbuilder.add( new ClassPathResource( flowFile ), ResourceType.DRF ); if(kbuilder.hasErrors()){ StringBuilder errorMessage = new StringBuilder(); for (KnowledgeBuilderError error: kbuilder.getErrors()) { errorMessage.append( error.getMessage() ); errorMessage.append( System.getProperty( "line.separator" ) ); } fail( errorMessage.toString()); } InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addPackages( kbuilder.getKnowledgePackages() ); return kbase; }
@Test public void testProcessEventListenerProcessState() throws Exception { InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); List<KiePackage> pkgs = new ArrayList<KiePackage>(); pkgs.add(pkg); kbase.addPackages(pkgs); assertEquals(2, processEventStatusList.size()); assertEquals(new Integer(ProcessInstance.STATE_ACTIVE), processEventStatusList.get(0)); assertEquals(new Integer(ProcessInstance.STATE_COMPLETED), processEventStatusList.get(1));
@Test public void testStartNode() { KieBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); KieSession ksession = kbase.newKieSession(); processInstance.setKnowledgeRuntime( (InternalKnowledgeRuntime) ksession ); assertEquals( ProcessInstance.STATE_PENDING, processInstance.getState() ); processInstance.start(); assertEquals( ProcessInstance.STATE_ACTIVE, processInstance.getState() ); mockNodeInstance.getTriggers().get(org.jbpm.workflow.core.Node.CONNECTION_DEFAULT_TYPE); assertNotNull(triggeredBy); assertEquals(1, triggeredBy.size()); assertSame(startNode.getId(), triggeredBy.get(0).getNodeId());
@Test public void testSimpleReturnValueConstraintEvaluator() throws Exception { final InternalKnowledgePackage pkg = new KnowledgePackageImpl( "pkg1" ); null ); final InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addPackages(Arrays.asList(pkgBuilder.getPackages())); final KieSession ksession = kbase.newKieSession();
@Test public void testCallActivity() throws Exception { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("BPMN2-CallActivity.bpmn2"), ResourceType.BPMN2); kbuilder.add(ResourceFactory.newClassPathResource("BPMN2-CallActivitySubProcess.bpmn2"), ResourceType.BPMN2); if (!kbuilder.getErrors().isEmpty()) { for (KnowledgeBuilderError error : kbuilder.getErrors()) { logger.error("{}", error); } throw new IllegalArgumentException("Errors while parsing knowledge base"); } InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addPackages(kbuilder.getKnowledgePackages()); KieSession ksession = createKnowledgeSession(kbase); Map<String, Object> params = new HashMap<String, Object>(); params.put("x", "oldValue"); ProcessInstance processInstance = ksession.startProcess("ParentProcess", params); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_COMPLETED); assertThat(((WorkflowProcessInstance) processInstance).getVariable("y")).isEqualTo("new value"); }
@Test public void testProcessEventListenerWithEndEvent() throws Exception { InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); List<KiePackage> pkgs = new ArrayList<KiePackage>(); pkgs.add( pkg ); kbase.addPackages( pkgs ); assertEquals( 14, processEventList.size() ); assertEquals( "org.drools.core.process.event", ((ProcessStartedEvent) processEventList.get(0)).getProcessInstance().getProcessId()); assertEquals( "Start", ((ProcessNodeTriggeredEvent) processEventList.get(1)).getNodeInstance().getNodeName()); assertEquals( "Start", ((ProcessNodeLeftEvent) processEventList.get(2)).getNodeInstance().getNodeName()); assertEquals( "Print", ((ProcessNodeTriggeredEvent) processEventList.get(3)).getNodeInstance().getNodeName());
@Test public void testEndNode() { KieBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); KieSession ksession = kbase.newKieSession(); assertEquals( ProcessInstance.STATE_COMPLETED, processInstance.getState() );
@Test public void testPersistenceWorkItems() throws Exception { setUp(); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); Collection<KiePackage> kpkgs = getProcessWorkItems(); kbase.addPackages( kpkgs );