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(); }
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." ); } }
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 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"); }
private KieBase createKnowledgeBase() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("memory/BPMN2-RuleTaskWithInsertProcessInstance.bpmn2"), ResourceType.BPMN2); kbuilder.add(ResourceFactory.newClassPathResource("memory/ProcessInstanceRule.drl"), ResourceType.DRL); if (!kbuilder.getErrors().isEmpty()) { Iterator<KnowledgeBuilderError> errIter = kbuilder.getErrors().iterator(); while( errIter.hasNext() ) { KnowledgeBuilderError err = errIter.next(); StringBuilder lines = new StringBuilder(""); if( err.getLines().length > 0 ) { lines.append(err.getLines()[0]); for( int i = 1; i < err.getLines().length; ++i ) { lines.append(", " + err.getLines()[i]); } } logger.warn( err.getMessage() + " (" + lines.toString() + ")" ); } throw new IllegalArgumentException("Errors while parsing knowledge base"); } 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 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() ); }
@Test public void testSetFocus() { String str = ""; str += "\n"; KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL ); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); if ( kbuilder.hasErrors() ) { fail( kbuilder.getErrors().toString() ); kbase.addPackages( kbuilder.getKnowledgePackages() );
@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 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 testUserTransactions() throws Exception { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newByteArrayResource(ruleString.getBytes()), ResourceType.DRL ); if ( kbuilder.hasErrors() ) { fail( kbuilder.getErrors().toString() ); kbase.addPackages( kbuilder.getKnowledgePackages() );
@Test public void testDeclaredTypesInSequenceFlowDroolsExpression() { + "end\n"; KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); CompositeKnowledgeBuilder ckbuilder = kbuilder.batch(); if (kbuilder.hasErrors()) { KnowledgeBuilderErrors kbErrors = kbuilder.getErrors(); for (KnowledgeBuilderError nextError: kbErrors) { fail(nextError.getMessage());
@Test public void testActivationCancelled() { "</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() ); kbase.addPackages( kbuilder.getKnowledgePackages() ); KieSession ksession = kbase.newKieSession();
@Test public void testSplitWithProcessInstanceConstraint2() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); Reader source = new StringReader( "<process xmlns=\"http://drools.org/drools-5.0/process\"" + "" + "</process>"); kbuilder.add( ResourceFactory.newReaderResource( source ), ResourceType.DRF ); for (KnowledgeBuilderError error: kbuilder.getErrors()) { logger.error(error.toString()); Collection<KiePackage> kpkgs = kbuilder.getKnowledgePackages(); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addPackages( kpkgs ); KieSession ksession = kbase.newKieSession(); List<Long> list = new ArrayList<Long>();
@Test public void testPersistenceVariables() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( new ClassPathResource( "VariablesProcess.rf" ), ResourceType.DRF ); for (KnowledgeBuilderError error: kbuilder.getErrors()) { logger.debug(error.toString()); kbase.addPackages( kbuilder.getKnowledgePackages() );
@Test public void testNoNewlineAtTheEnd() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newReaderResource(new StringReader(drl + "//test")), ResourceType.DRL); if (kbuilder.hasErrors()) { fail(kbuilder.getErrors().toString()); } }
private KieSession getSessionFromString( String drl ) { KnowledgeBuilder knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); knowledgeBuilder.add( ResourceFactory.newByteArrayResource( drl.getBytes() ), ResourceType.DRL ); if (knowledgeBuilder.hasErrors()) { throw new RuntimeException( knowledgeBuilder.getErrors().toString() ); } InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addPackages( knowledgeBuilder.getKnowledgePackages() ); KieSession session = kbase.newKieSession(); return session; }
@Test public void testDeclareExtendsJavaParentOuterPackaga() { String drl = "package org.drools.test; \n" + "import org.drools.compiler.integrationtests.ExtendsTest.X; \n" + "declare Student extends X end \n" + ""; KnowledgeBuilder kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder( ); kBuilder.add( new ByteArrayResource( drl.getBytes() ), ResourceType.DRL ); if ( kBuilder.hasErrors() ) { System.err.println( kBuilder.getErrors() ); } assertFalse( kBuilder.hasErrors() ); }
public Collection<KiePackage> loadKnowledgePackages(KnowledgeBuilderConfiguration kbuilderConf, PackageDescr descr) { if (kbuilderConf == null) { kbuilderConf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(); } KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(kbuilderConf); kbuilder.add(ResourceFactory.newDescrResource(descr), ResourceType.DESCR); if (kbuilder.hasErrors()) { fail(kbuilder.getErrors().toString()); } Collection<KiePackage> knowledgePackages = kbuilder.getKnowledgePackages(); return knowledgePackages; }