/** * Compiles the given rule strings into a single rulebase * * @param rules * @return * @throws Exception */ public static RuleBase compile(List<String> rules) throws Exception { Properties properties = new Properties(); properties.setProperty("drools.dialect.java.compiler", "JANINO"); properties.setProperty("drools.dialect.default", "java"); properties.setProperty("drools.dialect.java.compiler.lnglevel", "1.5"); // properties.setProperty("drools.dump.dir", "/tmp"); // log.debug("drools.dump.dir value is set to " + dumpDir); PackageBuilderConfiguration conf = new PackageBuilderConfiguration(properties); PackageBuilder builder = new PackageBuilder(conf); RuleBase ruleBase = RuleBaseFactory.newRuleBase(); for (String rule : rules) { StringReader drl = new StringReader(rule); builder.addPackageFromDrl(drl); PackageBuilderErrors errors = builder.getErrors(); for (DroolsError error : errors.getErrors()) { log.warn(error); } } ruleBase.addPackage(builder.getPackage()); return ruleBase; }