/**
   * 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;
  }