[jboss-svn-commits] JBL Code SVN: r11066 - in labs/jbossrules/trunk/drools-jbrms/src: test/java/org/drools/brms/server/builder and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Apr 17 08:55:25 EDT 2007
Author: michael.neale at jboss.com
Date: 2007-04-17 08:55:25 -0400 (Tue, 17 Apr 2007)
New Revision: 11066
Modified:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/ContentPackageAssembler.java
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java
Log:
added test for correct error handling
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/ContentPackageAssembler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/ContentPackageAssembler.java 2007-04-17 12:46:00 UTC (rev 11065)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/ContentPackageAssembler.java 2007-04-17 12:55:25 UTC (rev 11066)
@@ -16,6 +16,7 @@
import org.drools.repository.AssetItemIterator;
import org.drools.repository.PackageItem;
import org.drools.repository.RulesRepositoryException;
+import org.drools.repository.VersionableItem;
import org.drools.rule.Package;
/**
@@ -27,7 +28,7 @@
public class ContentPackageAssembler {
private PackageItem pkg;
- private List errors = new ArrayList();
+ private List<ContentAssemblyError> errors = new ArrayList<ContentAssemblyError>();
private BRMSPackageBuilder builder;
List<DSLMappingFile> dslFiles;
@@ -59,7 +60,7 @@
builder.addPackage( new PackageDescr(pkg.getName()) );
addDrl(pkg.getHeader());
if (builder.hasErrors()) {
- recordBuilderErrors();
+ recordBuilderErrors(pkg);
return false;
}
@@ -75,7 +76,7 @@
AssetItem func = (AssetItem) it.next();
addDrl( func.getContent() );
if (builder.hasErrors()) {
- recordBuilderErrors();
+ recordBuilderErrors(func);
return false;
}
}
@@ -83,6 +84,18 @@
return errors.size() == 0;
}
+ /**
+ * This will return true if there is an error in the package configuration or functions.
+ * @return
+ */
+ public boolean isPackageConfigurationInError() {
+ if (this.errors.size() > 0) {
+ return this.errors.get( 0 ).itemInError instanceof PackageItem;
+ } else {
+ return false;
+ }
+ }
+
private void addDrl(String drl) {
try {
builder.addPackageFromDrl( new StringReader(drl) );
@@ -98,10 +111,10 @@
/**
* This will accumulate the errors.
*/
- private void recordBuilderErrors() {
+ private void recordBuilderErrors(VersionableItem asset) {
DroolsError[] errs = builder.getErrors();
for ( int i = 0; i < errs.length; i++ ) {
- this.errors.add( new ContentAssemblyError(pkg, errs[i].getMessage()) );
+ this.errors.add( new ContentAssemblyError(asset, errs[i].getMessage()) );
}
}
@@ -121,5 +134,9 @@
return errors.size() > 0;
}
+ public List<ContentAssemblyError> getErrors() {
+ return this.errors;
+ }
+
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java 2007-04-17 12:46:00 UTC (rev 11065)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java 2007-04-17 12:55:25 UTC (rev 11066)
@@ -49,6 +49,20 @@
assertEquals(1, assembler.dslFiles.size());
+ pkg.updateHeader( "koo koo ca choo" );
+ assembler = new ContentPackageAssembler(pkg);
+ assertTrue(assembler.hasErrors());
+ assertTrue(assembler.isPackageConfigurationInError());
+
+ pkg.updateHeader( "import java.util.Date" );
+ assembler = new ContentPackageAssembler(pkg);
+ assertTrue(assembler.hasErrors());
+ assertTrue(assembler.getErrors().get(0).itemInError instanceof AssetItem);
+
+ assertEquals("func1", assembler.getErrors().get( 0 ).itemInError.getName());
+
+
+
}
public void FIXME_testSimplePackage() throws Exception {
More information about the jboss-svn-commits
mailing list