[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