[jboss-svn-commits] JBL Code SVN: r33728 - in labs/jbossrules/trunk: drools-verifier/src/main/java/org/drools/verifier and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jul 2 06:53:42 EDT 2010


Author: Rikkola
Date: 2010-07-02 06:53:41 -0400 (Fri, 02 Jul 2010)
New Revision: 33728

Added:
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/RangeTest.drl
Removed:
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/MetaDataAgendaFilter.java
Modified:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/VerificationServiceImplementation.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Verifier.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierImpl.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java
Log:
faster verification. -Cached verifier in Guvnor

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/VerificationServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/VerificationServiceImplementation.java	2010-07-02 10:49:38 UTC (rev 33727)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/VerificationServiceImplementation.java	2010-07-02 10:53:41 UTC (rev 33728)
@@ -67,9 +67,13 @@
 
         VerifierRunner runner = new VerifierRunner( defaultVerifier );
 
-        return runner.verify( packageItem,
-                              new ScopesAgendaFilter( true,
-                                                      ScopesAgendaFilter.VERIFYING_SCOPE_KNOWLEDGE_PACKAGE ) );
+        AnalysisReport report = runner.verify( packageItem,
+                                               new ScopesAgendaFilter( true,
+                                                                       ScopesAgendaFilter.VERIFYING_SCOPE_KNOWLEDGE_PACKAGE ) );
+
+        defaultVerifier.flushKnowledgeSession();
+
+        return report;
     }
 
     @WebRemote
@@ -128,6 +132,8 @@
             AnalysisReport report = runner.verify( packageItem,
                                                    verificationScope );
 
+            defaultVerifier.flushKnowledgeSession();
+
             log.debug( "Asset verification took: " + (System.currentTimeMillis() - startTime) );
 
             return report;

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Verifier.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Verifier.java	2010-07-02 10:49:38 UTC (rev 33727)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Verifier.java	2010-07-02 10:53:41 UTC (rev 33728)
@@ -23,6 +23,8 @@
      */
     public void addObjectModel(JarInputStream jar);
 
+    public void flushKnowledgeSession();
+
     /**
      * 
      * This will run the verifier.

Deleted: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/MetaDataAgendaFilter.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/MetaDataAgendaFilter.java	2010-07-02 10:49:38 UTC (rev 33727)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/MetaDataAgendaFilter.java	2010-07-02 10:53:41 UTC (rev 33728)
@@ -1,54 +0,0 @@
-package org.drools.verifier.builder;
-
-import java.util.Collection;
-
-import org.drools.runtime.rule.Activation;
-import org.drools.runtime.rule.AgendaFilter;
-
-/**
- * 
- * @author rikkola
- *
- */
-public class MetaDataAgendaFilter
-    implements
-    AgendaFilter {
-
-    private final boolean            acceptEmpty;
-    private final String             metadata;
-
-    private final Collection<String> validValues;
-
-    /**
-     * 
-     * @param acceptEmpty true accepts rules that do not have metadata set.
-     * @param metadata Name of the meta data.
-     * @param validValues Valid values that the meta data can have.
-     */
-    public MetaDataAgendaFilter(boolean acceptEmpty,
-                                String metadata,
-                                Collection<String> validValues) {
-        this.acceptEmpty = acceptEmpty;
-        this.metadata = metadata;
-        this.validValues = validValues;
-    }
-
-    public boolean accept(Activation activation) {
-        if ( acceptEmpty && activation.getRule().listMetaAttributes().isEmpty() ) {
-            return true;
-        }
-
-        if ( activation.getRule().listMetaAttributes().contains( metadata ) ) {
-            String[] values = activation.getRule().getMetaAttribute( metadata ).split( "," );
-
-            for ( String value : values ) {
-                if ( validValues.contains( value.trim() ) ) {
-                    return true;
-                }
-            }
-        }
-
-        return false;
-    }
-
-}

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-07-02 10:49:38 UTC (rev 33727)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierImpl.java	2010-07-02 10:53:41 UTC (rev 33728)
@@ -9,6 +9,13 @@
 import org.drools.builder.KnowledgeBuilderError;
 import org.drools.builder.ResourceType;
 import org.drools.compiler.PackageBuilderErrors;
+import org.drools.event.rule.ActivationCancelledEvent;
+import org.drools.event.rule.ActivationCreatedEvent;
+import org.drools.event.rule.AfterActivationFiredEvent;
+import org.drools.event.rule.AgendaEventListener;
+import org.drools.event.rule.AgendaGroupPoppedEvent;
+import org.drools.event.rule.AgendaGroupPushedEvent;
+import org.drools.event.rule.BeforeActivationFiredEvent;
 import org.drools.io.Resource;
 import org.drools.lang.descr.PackageDescr;
 import org.drools.runtime.StatefulKnowledgeSession;
@@ -122,6 +129,7 @@
             // Object that returns the results.
             ksession.setGlobal( "result",
                                 result );
+
             ksession.fireAllRules( scopesAgendaFilter );
 
         } catch ( Throwable t ) {
@@ -133,6 +141,10 @@
         return true;
     }
 
+    public void flushKnowledgeSession() {
+        updateKnowledgeSession();
+    }
+
     private void updateKnowledgeSession() {
         if ( this.ksession != null ) {
             this.ksession.dispose();

Added: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckTest.java	2010-07-02 10:53:41 UTC (rev 33728)
@@ -0,0 +1,58 @@
+package org.drools.verifier;
+
+import junit.framework.Assert;
+
+import org.drools.builder.ResourceType;
+import org.drools.io.impl.ClassPathResource;
+import org.drools.verifier.builder.ScopesAgendaFilter;
+import org.drools.verifier.builder.VerifierBuilder;
+import org.drools.verifier.builder.VerifierBuilderFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.report.components.Severity;
+import org.drools.verifier.report.components.VerifierMessageBase;
+import org.junit.Test;
+
+/**
+ * 
+ * @author rikkola
+ *
+ */
+public class RangeCheckTest {
+
+    @Test
+    public void testVerifier() {
+        VerifierBuilder vBuilder = VerifierBuilderFactory.newVerifierBuilder();
+
+        // Check that the builder works.
+        Assert.assertFalse( vBuilder.hasErrors() );
+        Assert.assertEquals( 0,
+                             vBuilder.getErrors().size() );
+
+        Verifier verifier = vBuilder.newVerifier();
+
+        verifier.addResourcesToVerify( new ClassPathResource( "RangeTest.drl",
+                                                              Verifier.class ),
+                                       ResourceType.DRL );
+
+        Assert.assertFalse( verifier.hasErrors() );
+        Assert.assertEquals( 0,
+                             verifier.getErrors().size() );
+
+        boolean works = verifier.fireAnalysis();
+
+        Assert.assertTrue( works );
+
+        VerifierReport result = verifier.getResult();
+        Assert.assertNotNull( result );
+
+        for ( VerifierMessageBase message : result.getBySeverity( Severity.ERROR ) ) {
+            System.out.println( message );
+        }
+
+        // This rule should not have errors, evereververevernever!
+        Assert.assertEquals( 0,
+                             result.getBySeverity( Severity.ERROR ).size() );
+
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java	2010-07-02 10:49:38 UTC (rev 33727)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java	2010-07-02 10:53:41 UTC (rev 33728)
@@ -3,13 +3,11 @@
 import java.io.IOException;
 import java.io.StringReader;
 import java.util.Collection;
-import java.util.Iterator;
 import java.util.jar.JarInputStream;
 
 import junit.framework.TestCase;
 
 import org.drools.builder.ResourceType;
-import org.drools.io.ResourceFactory;
 import org.drools.io.impl.ClassPathResource;
 import org.drools.io.impl.ReaderResource;
 import org.drools.verifier.builder.VerifierBuilder;

Added: labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/RangeTest.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/RangeTest.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/RangeTest.drl	2010-07-02 10:53:41 UTC (rev 33728)
@@ -0,0 +1,10 @@
+package com.misc.someData
+
+import com.sample.DroolsTest.Message;
+
+rule "Test Rule"
+	when
+		Foo( bar > 10, bar <= 20 )
+	then
+		System.out.println("Test");
+end
\ No newline at end of file



More information about the jboss-svn-commits mailing list