public void initialize() { try { Resource addTask = ResourceFactory.newClassPathResource(DEFAULT_ADD_TASK_RULES); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(addTask, ResourceType.DRL); kieBases.put(TaskRuleService.ADD_TASK_SCOPE, kbuilder.newKieBase()); } catch (Exception e) { } try { Resource completeTask = ResourceFactory.newClassPathResource(DEFAULT_COMPLETE_TASK_RULES); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(completeTask, ResourceType.DRL); kieBases.put(TaskRuleService.COMPLETE_TASK_SCOPE, kbuilder.newKieBase()); } catch (Exception e) { } }
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; }
private KieBase createBase() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("processinstance/HelloWorld.rf"), ResourceType.DRF); assertFalse(kbuilder.getErrors().toString(), kbuilder.hasErrors()); return kbuilder.newKieBase(); }
@Test public void testSingleActionNode() throws Exception { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( new ClassPathResource( "ActionNodeTest.xml", ActionNodeTest.class ), ResourceType.DRF ); KieBase kbase = kbuilder.newKieBase(); KieSession ksession = kbase.newKieSession(); List<String> list = new ArrayList<String>(); ksession.setGlobal( "list", list ); ksession.startProcess( "process name" ); assertEquals( 1, list.size() ); assertEquals( "action node was here", list.get(0) ); } }
@Test public void testKnowledgeProviderWithProcesses() { KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder(); str += " <connections><connection from=\"1\" to=\"2\"/></connections>"; str += "</process>"; builder.add(ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRF ); str += " <connections><connection from=\"1\" to=\"2\"/></connections>"; str += "</process>"; builder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRF ); Collection<KiePackage> pkgs = builder.getKnowledgePackages(); assertNotNull( pkgs ); assertEquals( 2, pkgs.size() );
public void loadPackages( Resource res, ResourceType type ) { kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( res, type ); KnowledgeBuilderErrors errors = kbuilder.getErrors(); if (errors.size() > 0) { for (KnowledgeBuilderError error : errors) { System.err.println( error ); } throw new IllegalArgumentException( "Could not parse knowledge." ); } }
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 testGetListeners() { // JBRULES-3378 KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); if (kbuilder.hasErrors()) { throw new RuntimeException(kbuilder.getErrors().toString()); } KieSession ksession = kbuilder.newKieBase().newKieSession(); ksession.getAgendaEventListeners(); ksession.getProcessEventListeners(); ksession.getRuleRuntimeEventListeners(); ksession.dispose(); } }
@Test public void testMultiThreadProcessInstanceWorkItem() throws Exception { final ConcurrentHashMap<Long, Long> workItems = new ConcurrentHashMap<Long, Long>(); final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("BPMN2-MultiThreadServiceProcess.bpmn"), ResourceType.BPMN2 ); KieBase kbase = kbuilder.newKieBase();
@Test @SuppressWarnings("unchecked") public void testMarshallingProcessInstancesAndGlobals() throws Exception { "</process>"; KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newReaderResource(new StringReader(rule)), ResourceType.DRL ); kbuilder.add( ResourceFactory.newReaderResource( new StringReader( process ) ), ResourceType.DRF ); KieSession ksession = createKieSession(kbuilder.getKnowledgePackages().toArray(new KiePackage[0])); ksession.getEnvironment().set("org.jbpm.rule.task.waitstate", true);
private KieBase loadKnowledgeBase() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( new ClassPathResource( RF_FILE ), ResourceType.DRF ); KieBase kbase = kbuilder.newKieBase(); return kbase; }
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 testAgendaFilter() { "</process>"; KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newByteArrayResource(drl.getBytes()), ResourceType.DRL ); kbuilder.add( ResourceFactory.newByteArrayResource(rf.getBytes()), ResourceType.DRF ); if ( kbuilder.hasErrors() ) { fail( kbuilder.getErrors().toString() ); KieSession ksession = createKieSession(kbuilder.getKnowledgePackages().toArray(new KiePackage[0]));
@Test public void testRuleFlowUpgrade() throws Exception { final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); // Set the system property so that automatic conversion can happen System.setProperty( "drools.ruleflow.port", "true" ); kbuilder.add( ResourceFactory.newClassPathResource("ruleflow.drl", ExecutionFlowControlTest.class), ResourceType.DRL); kbuilder.add( ResourceFactory.newClassPathResource("ruleflow40.rfm", ExecutionFlowControlTest.class), ResourceType.DRF); KieBase kbase = kbuilder.newKieBase(); final KieSession ksession = kbase.newKieSession(); final List list = new ArrayList(); ksession.setGlobal("list", list); ksession.fireAllRules(); assertEquals(0, list.size()); final ProcessInstance processInstance = ksession.startProcess("0"); assertEquals( ProcessInstance.STATE_COMPLETED, processInstance.getState() ); assertEquals( 4, list.size() ); assertEquals( "Rule1", list.get( 0 ) ); list.subList(1,2).contains( "Rule2" ); list.subList(1,2).contains( "Rule3" ); assertEquals( "Rule4", list.get( 3 ) ); assertEquals( ProcessInstance.STATE_COMPLETED, processInstance.getState() ); // Reset the system property so that automatic conversion should not happen System.setProperty("drools.ruleflow.port", "false"); }
private KieBase createKnowledgeBase() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("processinstance/Subprocess.rf"), ResourceType.DRF); kbuilder.add(ResourceFactory.newClassPathResource("processinstance/HelloWorld.rf"), ResourceType.DRF); return kbuilder.newKieBase(); }
@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 testActionContextMVEL() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); Reader source = new StringReader( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "\n" + "</process>"); kbuilder.add(new ReaderResource(source), ResourceType.DRF); if ( kbuilder.hasErrors() ) { fail( kbuilder.getErrors().toString() );
@Test public void testActionVariableMVEL() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); Reader source = new StringReader( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "\n" + "</process>"); kbuilder.add(new ReaderResource(source), ResourceType.DRF); KieBase kbase = kbuilder.newKieBase(); KieSession ksession = kbase.newKieSession();
private static KieBase readKnowledgeBase() throws Exception { ProcessBuilderFactory.setProcessBuilderFactoryService(new ProcessBuilderFactoryServiceImpl()); ProcessRuntimeFactory.setProcessRuntimeFactoryService(new ProcessRuntimeFactoryServiceImpl()); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("BPMN2-TwoUserTasks.bpmn2"), ResourceType.BPMN2); return kbuilder.newKieBase(); }
@Test public void testLocalTransactionPerStatement() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newByteArrayResource( ruleString.getBytes() ), ResourceType.DRL ); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); if ( kbuilder.hasErrors() ) { fail( kbuilder.getErrors().toString() ); } kbase.addPackages( kbuilder.getKnowledgePackages() ); StatefulKnowledgeSession ksession = JPAKnowledgeService.newStatefulKnowledgeSession( kbase, null, env ); List<?> list = new ArrayList<Object>(); ksession.setGlobal( "list", list ); ksession.insert( 1 ); ksession.insert( 2 ); ksession.insert( 3 ); ksession.fireAllRules(); assertEquals( 3, list.size() ); }