[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