StringBuffer errorMessage = new StringBuffer(); for( KnowledgeBuilderError error : kbuilder.getErrors()) { errorMessage.append(error.getMessage() + ",");
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; }
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; }
KnowledgeBuilderErrors kbErrors = kbuilder.getErrors(); for (KnowledgeBuilderError nextError: kbErrors) { fail(nextError.getMessage());
public String getMessage() { return delegate.getMessage(); }
switch (javaConf.getCompiler()) { case NATIVE: assertTrue(errors[2].getMessage().contains("illegal")); break; case ECLIPSE: assertTrue(errors[2].getMessage().contains("add")); break; case JANINO: assertTrue(errors[2].getMessage().contains("Unexpected")); break; default:
for (KnowledgeBuilderError error : kbuilder.getErrors()) { logger.error("Error: {}", error.getMessage());
StringBuffer errorMessage = new StringBuffer(); for( KnowledgeBuilderError error : kbuilder.getErrors()) { errorMessage.append(error.getMessage() + ",");
if (kbuilder.hasErrors()) { for(KnowledgeBuilderError error: kbuilder.getErrors()){ System.out.println("Error: "+error.getMessage());
private Collection<KiePackage> buildKnowledgePackage(Resource resource, ResourceType resourceType) { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( resource, resourceType ); KnowledgeBuilderErrors errors = kbuilder.getErrors(); if ( errors != null && errors.size() > 0 ) { for ( KnowledgeBuilderError error : errors ) { System.err.println( "Error: " + error.getMessage() ); } Assert.fail( "KnowledgeBase did not build" ); } Collection<KiePackage> packages = kbuilder.getKnowledgePackages(); return packages; }
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 testMvelFunctionWithDeclaredTypeArgForGuvnor() throws Exception { // JBRULES-3562 String function = "function String getFieldValue(Bean bean) {" + " return bean.getField();" + "}\n"; String declaredFactType = "declare Bean \n" + " field : String \n" + "end \n"; String rule = "rule R2 \n" + "dialect 'mvel'\n" + "when \n" + " $bean : Bean( ) \n" + "then \n" + " System.out.println( getFieldValue($bean) ); \n" + "end\n"; KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newByteArrayResource(declaredFactType.getBytes()), ResourceType.DRL); kbuilder.add(ResourceFactory.newByteArrayResource(function.getBytes()), ResourceType.DRL); kbuilder.add(ResourceFactory.newByteArrayResource(rule.getBytes()), ResourceType.DRL); for ( KnowledgeBuilderError error : kbuilder.getErrors() ) { System.out.println( "ERROR:" ); System.out.println( error.getMessage() ); } assertFalse( kbuilder.hasErrors() ); }
KnowledgeBuilderErrors kbErrors = kbuilder.getErrors(); for (KnowledgeBuilderError nextError: kbErrors) { fail(nextError.getMessage());
JavaDialectConfiguration javaConf = (JavaDialectConfiguration) cfg.getDialectConfiguration( "java" ); switch ( javaConf.getCompiler() ) { case JavaDialectConfiguration.NATIVE : assertTrue( errors[2].getMessage().contains( "illegal" ) ); break; case JavaDialectConfiguration.ECLIPSE: assertTrue( errors[2].getMessage().contains( "add" ) ); break; case JavaDialectConfiguration.JANINO: assertTrue( errors[2].getMessage().contains( "Unexpected" ) ); break; default: fail( "Unknown compiler used" );