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 testFunctionCallingFunctionWithEclipse() throws Exception { KnowledgeBuilderConfiguration kbconf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(); kbconf.setProperty( "drools.dialect.java.compiler", "ECLIPSE" ); KieBase kbase = loadKnowledgeBase( kbconf, "test_functionCallingFunction.drl" ); KieSession ksession = createKnowledgeSession(kbase); final List<Integer> list = new ArrayList<Integer>(); ksession.setGlobal( "results", list ); ksession.fireAllRules(); assertEquals( 1, list.size() ); assertEquals( 12, list.get( 0 ).intValue() ); }
@Test public void testFunctionCallingFunctionWithJanino() throws Exception { KnowledgeBuilderConfiguration kbconf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(); kbconf.setProperty( "drools.dialect.java.compiler", "JANINO" ); KieBase kbase = loadKnowledgeBase( kbconf, "test_functionCallingFunction.drl" ); KieSession ksession = createKnowledgeSession(kbase); final List<Integer> list = new ArrayList<Integer>(); ksession.setGlobal( "results", list ); ksession.fireAllRules(); assertEquals( 1, list.size() ); assertEquals( 12, list.get( 0 ).intValue() ); }
KnowledgeBuilderConfiguration kbConfig = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(); kbConfig.setProperty("drools.dialect.mvel.strict", "false"); KnowledgeBuilder kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder( kbConfig );
public void setProperty(String name, String value) { delegate.setProperty(name, value); }
@Test public void testDumpDirectoryConfiguration() { File dumpDir = new File("target"); // setting the dump directory using the type safe method config.setOption( DumpDirOption.get( dumpDir ) ); // checking the type safe getOption() method assertEquals( DumpDirOption.get( dumpDir ), config.getOption( DumpDirOption.class ) ); // checking string conversion assertEquals( dumpDir, config.getOption( DumpDirOption.class ).getDirectory() ); // checking the string based getProperty() method assertEquals( dumpDir.toString(), config.getProperty( DumpDirOption.PROPERTY_NAME ) ); // setting the dump dir using the string based setProperty() method dumpDir = new File( System.getProperty( "java.io.tmpdir" ) ); config.setProperty( DumpDirOption.PROPERTY_NAME, System.getProperty( "java.io.tmpdir" ) ); // checking the type safe getOption() method assertEquals( DumpDirOption.get( dumpDir ), config.getOption( DumpDirOption.class ) ); // checking string conversion assertEquals( dumpDir, config.getOption( DumpDirOption.class ).getDirectory() ); // checking the string based getProperty() method assertEquals( dumpDir.toString(), config.getProperty( DumpDirOption.PROPERTY_NAME ) ); }
config.setProperty( AccumulateFunctionOption.PROPERTY_NAME+"maximum", MaxAccumulateFunction.class.getName() ); config.setProperty( AccumulateFunctionOption.PROPERTY_NAME+"inner", InnerAccumulateFuncion.class.getName() );
config.setProperty( EvaluatorOption.PROPERTY_NAME+"before", BeforeEvaluatorDefinition.class.getName() );
@Test public void testProcessStringEscapesConfiguration() { // setting the process string escapes option using the type safe method config.setOption( ProcessStringEscapesOption.YES ); // checking the type safe getOption() method assertEquals( ProcessStringEscapesOption.YES, config.getOption( ProcessStringEscapesOption.class ) ); // checking the string based getProperty() method assertEquals( "true", config.getProperty( ProcessStringEscapesOption.PROPERTY_NAME ) ); // setting the default dialect using the string based setProperty() method config.setProperty( ProcessStringEscapesOption.PROPERTY_NAME, "false" ); // checking the type safe getOption() method assertEquals( ProcessStringEscapesOption.NO, config.getOption( ProcessStringEscapesOption.class ) ); // checking the string based getProperty() method assertEquals( "false", config.getProperty( ProcessStringEscapesOption.PROPERTY_NAME ) ); }
@Test public void testLanguageLevelConfiguration() { // setting the language level using the type safe method config.setOption( LanguageLevelOption.DRL5 ); // checking the type safe getOption() method assertEquals( LanguageLevelOption.DRL5, config.getOption( LanguageLevelOption.class ) ); // checking string conversion assertEquals( LanguageLevelOption.DRL5, config.getOption( LanguageLevelOption.class ) ); // checking the string based getProperty() method assertEquals( "DRL5", config.getProperty( LanguageLevelOption.PROPERTY_NAME ) ); // setting the default dialect using the string based setProperty() method config.setProperty( LanguageLevelOption.PROPERTY_NAME, "DRL6" ); // checking the type safe getOption() method assertEquals(LanguageLevelOption.DRL6, config.getOption(LanguageLevelOption.class)); assertEquals( "DRL6", config.getOption( LanguageLevelOption.class ).toString() ); // checking string conversion assertEquals( LanguageLevelOption.DRL6, config.getOption( LanguageLevelOption.class ) ); // checking the string based getProperty() method assertEquals( "DRL6", config.getProperty( LanguageLevelOption.PROPERTY_NAME ) ); }
@Test public void testDefaultPackageNameConfiguration() { // setting the default dialect using the type safe method config.setOption( DefaultPackageNameOption.get( "org.drools.compiler.test" ) ); // checking the type safe getOption() method assertEquals( DefaultPackageNameOption.get( "org.drools.compiler.test" ), config.getOption( DefaultPackageNameOption.class ) ); // checking string conversion assertEquals( "org.drools.compiler.test", config.getOption( DefaultPackageNameOption.class ).getPackageName() ); // checking the string based getProperty() method assertEquals( "org.drools.compiler.test", config.getProperty( DefaultPackageNameOption.PROPERTY_NAME ) ); // setting the default dialect using the string based setProperty() method config.setProperty( DefaultPackageNameOption.PROPERTY_NAME, "org.drools" ); // checking the type safe getOption() method assertEquals( DefaultPackageNameOption.get( "org.drools" ), config.getOption( DefaultPackageNameOption.class ) ); // checking string conversion assertEquals( "org.drools", config.getOption( DefaultPackageNameOption.class ).getPackageName() ); // checking the string based getProperty() method assertEquals( "org.drools", config.getProperty( DefaultPackageNameOption.PROPERTY_NAME ) ); }
@Test public void testDefaultDialectConfiguration() { // setting the default dialect using the type safe method config.setOption( DefaultDialectOption.get( "mvel" ) ); // checking the type safe getOption() method assertEquals( DefaultDialectOption.get( "mvel" ), config.getOption( DefaultDialectOption.class ) ); // checking string conversion assertEquals( "mvel", config.getOption( DefaultDialectOption.class ).getName() ); // checking the string based getProperty() method assertEquals( "mvel", config.getProperty( DefaultDialectOption.PROPERTY_NAME ) ); // setting the default dialect using the string based setProperty() method config.setProperty( DefaultDialectOption.PROPERTY_NAME, "java" ); // checking the type safe getOption() method assertEquals( DefaultDialectOption.get( "java" ), config.getOption( DefaultDialectOption.class ) ); assertEquals( "DefaultDialectOption( name=java )", config.getOption( DefaultDialectOption.class ).toString() ); // checking string conversion assertEquals( "java", config.getOption( DefaultDialectOption.class ).getName() ); // checking the string based getProperty() method assertEquals( "java", config.getProperty( DefaultDialectOption.PROPERTY_NAME ) ); }
@Test public void testJaninoEval() throws Exception { KnowledgeBuilderConfiguration kbconf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(); kbconf.setProperty( JavaDialectConfiguration.JAVA_COMPILER_PROPERTY, "JANINO" ); KnowledgeBase kbase = loadKnowledgeBase( kbconf, "eval_rule_test.drl" ); kbase = SerializationHelper.serializeObject( kbase ); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); ksession.setGlobal( "five", new Integer( 5 ) ); final List list = new ArrayList(); ksession.setGlobal( "list", list ); final Cheese stilton = new Cheese( "stilton", 5 ); ksession.insert( stilton ); ksession = SerializationHelper.getSerialisedStatefulKnowledgeSession( ksession, true ); ksession.fireAllRules(); assertEquals( stilton, ((List) ksession.getGlobal( "list" )).get( 0 ) ); }