[jboss-cvs] jboss-seam/src/main/org/jboss/seam/drools ...

Gavin King gavin.king at jboss.com
Fri Jun 22 19:32:59 EDT 2007


  User: gavin   
  Date: 07/06/22 19:32:59

  Modified:    src/main/org/jboss/seam/drools  RuleBase.java
  Log:
  add logging of drools parse errors
  
  Revision  Changes    Path
  1.10      +18 -2     jboss-seam/src/main/org/jboss/seam/drools/RuleBase.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: RuleBase.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/drools/RuleBase.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -b -r1.9 -r1.10
  --- RuleBase.java	21 Jun 2007 04:07:14 -0000	1.9
  +++ RuleBase.java	22 Jun 2007 23:32:59 -0000	1.10
  @@ -3,11 +3,13 @@
   import java.io.InputStream;
   import java.io.InputStreamReader;
   import java.io.Reader;
  +import java.util.List;
   
   import org.drools.RuleBaseFactory;
   import org.drools.compiler.DrlParser;
   import org.drools.compiler.PackageBuilder;
   import org.drools.compiler.PackageBuilderConfiguration;
  +import org.drools.compiler.ParserError;
   import org.drools.lang.descr.PackageDescr;
   import org.jboss.seam.ScopeType;
   import org.jboss.seam.annotations.Create;
  @@ -15,6 +17,8 @@
   import org.jboss.seam.annotations.Unwrap;
   import org.jboss.seam.annotations.intercept.BypassInterceptors;
   import org.jboss.seam.core.ResourceLoader;
  +import org.jboss.seam.log.LogProvider;
  +import org.jboss.seam.log.Logging;
   
   /**
    * Manager component for a Drools RuleBase
  @@ -26,6 +30,8 @@
   @BypassInterceptors
   public class RuleBase
   {
  +   private static final LogProvider log = Logging.getLogProvider(RuleBase.class);
  +   
      private String[] ruleFiles;
      private String dslFile;
      private org.drools.RuleBase ruleBase;
  @@ -41,6 +47,7 @@
         {
            for (String ruleFile: ruleFiles)
            {
  +            log.info("parsing rules: " + ruleFile);
               InputStream stream = ResourceLoader.instance().getResourceAsStream(ruleFile);
               if (stream==null)
               {
  @@ -49,14 +56,23 @@
               // read in the source
               Reader drlReader = new InputStreamReader(stream);
               PackageDescr packageDescr;
  +            DrlParser drlParser = new DrlParser();
               if (dslFile==null)
               {
  -               packageDescr = new DrlParser().parse(drlReader);
  +               packageDescr = drlParser.parse(drlReader);
               }
               else
               {
                  Reader dslReader = new InputStreamReader( ResourceLoader.instance().getResourceAsStream(dslFile) );
  -               packageDescr = new DrlParser().parse(drlReader, dslReader);
  +               packageDescr = drlParser.parse(drlReader, dslReader);
  +            }
  +            if ( drlParser.hasErrors() )
  +            {
  +               log.error("errors parsing rules in: " + ruleFile);
  +               for ( ParserError error: (List<ParserError>) drlParser.getErrors() )
  +               {
  +                  log.error( error.getMessage() + " (" + ruleFile + ':' + error.getRow() + ')' );
  +               }
               }
               // pre build the package
               builder.addPackage(packageDescr);
  
  
  



More information about the jboss-cvs-commits mailing list