/** Please note that this is the "low level" rule assembly API. */ private RuleBase readRule() throws Exception, DroolsParserException, RuleIntegrationException, PackageIntegrationException, InvalidPatternException { // read in the source final Reader reader = new InputStreamReader(Waltz.class.getResourceAsStream("waltz.drl")); final DrlParser parser = new DrlParser(LanguageLevelOption.DRL5); final PackageDescr packageDescr = parser.parse(reader); if (parser.hasErrors()) { for (DroolsError error : parser.getErrors()) { System.out.println(error); } assertFalse(parser.getErrors().toString(), parser.hasErrors()); } // pre build the package final PackageBuilder builder = new PackageBuilder(); builder.addPackage(packageDescr); final Package pkg = builder.getPackage(); // add the package to a rulebase final RuleBase ruleBase = getRuleBase(); ruleBase.addPackage(pkg); return ruleBase; // return SerializationHelper.serializeObject(ruleBase); }
private RuleBase loadRuleBase(final Reader reader) throws IOException, DroolsParserException, Exception { final DrlParser parser = new DrlParser(); final PackageDescr packageDescr = parser.parse(reader); if (parser.hasErrors()) { System.out.println(parser.getErrors()); Assert.fail( "Error messages in parser, need to sort this our (or else collect error messages)"); } // pre build the package final PackageBuilder builder = new PackageBuilder(); builder.addPackage(packageDescr); final Package pkg = builder.getPackage(); // add the package to a rulebase final RuleBase ruleBase = getRuleBase(); ruleBase.addPackage(pkg); // load up the rulebase return serializeRuleBase(ruleBase); }