Пример #1
0
  /** 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);
  }