[jboss-svn-commits] JBL Code SVN: r33659 - labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Jun 26 13:06:07 EDT 2010


Author: Rikkola
Date: 2010-06-26 13:06:07 -0400 (Sat, 26 Jun 2010)
New Revision: 33659

Added:
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierKnowledgeBaseBuilder.java
Modified:
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierImpl.java
Log:
Step closer to faster verifier. Verifier KnowledgeBase can be build without VerifierImpl once, saved and used several times

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierImpl.java	2010-06-26 16:40:40 UTC (rev 33658)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierImpl.java	2010-06-26 17:06:07 UTC (rev 33659)
@@ -4,16 +4,10 @@
 import java.io.IOException;
 import java.text.ParseException;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 import java.util.jar.JarInputStream;
 
 import org.drools.KnowledgeBase;
-import org.drools.KnowledgeBaseFactory;
-import org.drools.builder.KnowledgeBuilder;
-import org.drools.builder.KnowledgeBuilderConfiguration;
-import org.drools.builder.KnowledgeBuilderError;
-import org.drools.builder.KnowledgeBuilderFactory;
 import org.drools.builder.ResourceType;
 import org.drools.compiler.DrlParser;
 import org.drools.compiler.DroolsError;
@@ -150,32 +144,15 @@
         return result;
     }
 
-    private void updateRuleBase() throws Exception {
+    private void updateRuleBase() {
 
-        verifierKnowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
+        VerifierKnowledgeBaseBuilder verifierKnowledgeBaseBuilder = new VerifierKnowledgeBaseBuilder();
 
-        KnowledgeBuilderConfiguration kbuilderConfiguration = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
-        kbuilderConfiguration.setProperty( "drools.dialect.java.compiler",
-                                           "JANINO" );
+        verifierKnowledgeBase = verifierKnowledgeBaseBuilder.newVerifierKnowledgeBase( conf );
 
-        KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder( kbuilderConfiguration );
-
-        if ( conf.getVerifyingResources() != null ) {
-            for ( Resource resource : conf.getVerifyingResources().keySet() ) {
-                kbuilder.add( resource,
-                              conf.getVerifyingResources().get( resource ) );
-            }
+        if ( verifierKnowledgeBaseBuilder.hasErrors() ) {
+            this.errors.addAll( verifierKnowledgeBaseBuilder.getErrors() );
         }
-
-        if (kbuilder.hasErrors()){
-            Iterator<KnowledgeBuilderError> errors = kbuilder.getErrors().iterator();
-            while(errors.hasNext()){
-                this.errors.add(new VerifierError("Error compiling verifier rules: "+errors.next().getMessage()));
-            }
-            throw new IllegalStateException("Error compiling verifier rules");
-        }
-
-        verifierKnowledgeBase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
     }
 
     /*

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierKnowledgeBaseBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierKnowledgeBaseBuilder.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierKnowledgeBaseBuilder.java	2010-06-26 17:06:07 UTC (rev 33659)
@@ -0,0 +1,61 @@
+package org.drools.verifier.builder;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderConfiguration;
+import org.drools.builder.KnowledgeBuilderError;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.io.Resource;
+import org.drools.verifier.VerifierConfiguration;
+import org.drools.verifier.VerifierError;
+
+/**
+ * 
+ * @author rikkola
+ */
+public class VerifierKnowledgeBaseBuilder {
+
+    private List<VerifierError> errors = new ArrayList<VerifierError>();
+
+    public KnowledgeBase newVerifierKnowledgeBase(VerifierConfiguration conf) {
+
+        KnowledgeBase verifierKnowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
+
+        KnowledgeBuilderConfiguration kbuilderConfiguration = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
+        kbuilderConfiguration.setProperty( "drools.dialect.java.compiler",
+                                           "JANINO" );
+
+        KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder( kbuilderConfiguration );
+
+        if ( conf.getVerifyingResources() != null ) {
+            for ( Resource resource : conf.getVerifyingResources().keySet() ) {
+                kbuilder.add( resource,
+                              conf.getVerifyingResources().get( resource ) );
+            }
+        }
+
+        if ( kbuilder.hasErrors() ) {
+            Iterator<KnowledgeBuilderError> errors = kbuilder.getErrors().iterator();
+            while ( errors.hasNext() ) {
+                this.errors.add( new VerifierError( "Error compiling verifier rules: " + errors.next().getMessage() ) );
+            }
+        }
+
+        verifierKnowledgeBase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+        return verifierKnowledgeBase;
+    }
+
+    public List<VerifierError> getErrors() {
+        return errors;
+    }
+
+    public boolean hasErrors() {
+        return !errors.isEmpty();
+    }
+}



More information about the jboss-svn-commits mailing list