[jboss-svn-commits] JBL Code SVN: r32303 - in labs/jbossrules/trunk/drools-verifier/src: test/java/org/drools/verifier and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Mar 30 09:43:53 EDT 2010
Author: Rikkola
Date: 2010-03-30 09:43:52 -0400 (Tue, 30 Mar 2010)
New Revision: 32303
Modified:
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:
Better error reporting if verifiable resources have errors or PackageDescr can not be created.
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-03-30 12:09:17 UTC (rev 32302)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierImpl.java 2010-03-30 13:43:52 UTC (rev 32303)
@@ -14,6 +14,7 @@
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.compiler.DrlParser;
+import org.drools.compiler.DroolsError;
import org.drools.compiler.DroolsParserException;
import org.drools.io.Resource;
import org.drools.lang.descr.PackageDescr;
@@ -185,7 +186,7 @@
// TODO: Other than DRL
if ( type.matchesExtension( ".drl" ) ) {
- DrlParser p = new DrlParser();
+ DrlParser drlParser = new DrlParser();
try {
@@ -202,11 +203,17 @@
}
} while ( line != null );
- PackageDescr pkg = p.parse( drl.toString() );
+ PackageDescr pkg = drlParser.parse( drl.toString() );
- addPackageDescr( pkg );
+ if ( drlParser.hasErrors() ) {
+ addVerifierErrors( drlParser );
+ } else if ( pkg == null ) {
+ errors.add( new VerifierError( "Verifier could not form a PackageDescr from the resources that it was trying to verify." ) );
+ } else {
+ addPackageDescr( pkg );
- addDrlData( drl.toString() );
+ addDrlData( drl.toString() );
+ }
reader.close();
@@ -218,6 +225,12 @@
}
}
+ private void addVerifierErrors(DrlParser p) {
+ for ( DroolsError droolsError : p.getErrors() ) {
+ errors.add( new VerifierError( droolsError.getMessage() ) );
+ }
+ }
+
/**
*
* Adds meta data from DRL to package and rule.
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-03-30 12:09:17 UTC (rev 32302)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java 2010-03-30 13:43:52 UTC (rev 32303)
@@ -56,6 +56,50 @@
}
+ public void testVerifierInvalidDRLs() {
+ VerifierBuilder vBuilder = VerifierBuilderFactory.newVerifierBuilder();
+
+ // Check that the builder works.
+ assertFalse( vBuilder.hasErrors() );
+ assertEquals( 0,
+ vBuilder.getErrors().size() );
+
+ Verifier verifier = vBuilder.newVerifier();
+
+ String drl = "This will not work";
+
+ verifier.addResourcesToVerify( new ReaderResource( new StringReader( drl ) ),
+ ResourceType.DRL );
+
+ assertTrue( verifier.hasErrors() );
+
+ assertEquals( 3,
+ verifier.getErrors().size() );
+
+ }
+
+ public void testVerifierNullPackageDescr() {
+ VerifierBuilder vBuilder = VerifierBuilderFactory.newVerifierBuilder();
+
+ // Check that the builder works.
+ assertFalse( vBuilder.hasErrors() );
+ assertEquals( 0,
+ vBuilder.getErrors().size() );
+
+ Verifier verifier = vBuilder.newVerifier();
+
+ String drl = "#This will not work";
+
+ verifier.addResourcesToVerify( new ReaderResource( new StringReader( drl ) ),
+ ResourceType.DRL );
+
+ assertTrue( verifier.hasErrors() );
+
+ assertEquals( 1,
+ verifier.getErrors().size() );
+
+ }
+
public void testFactTypesFromJar() {
VerifierBuilder vBuilder = VerifierBuilderFactory.newVerifierBuilder();
More information about the jboss-svn-commits
mailing list