[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