[jboss-svn-commits] JBL Code SVN: r23789 - in labs/jbossrules/trunk: drools-compiler/src/main/java/org/drools/builder/impl and 4 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Nov 9 02:38:51 EST 2008


Author: mark.proctor at jboss.com
Date: 2008-11-09 02:38:51 -0500 (Sun, 09 Nov 2008)
New Revision: 23789

Added:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgePackageError.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgePackageErrors.java
Modified:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilder.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeType.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/builder/impl/KnowledgeBuilderImpl.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/DslTest.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/WSHumanTaskHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerTest.java
Log:
JBRULES-1734 Drools API 
-DSLs now work
-In the process of adding Error handling
-Fixed api issue for Task

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilder.java	2008-11-09 07:02:41 UTC (rev 23788)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilder.java	2008-11-09 07:38:51 UTC (rev 23789)
@@ -7,8 +7,22 @@
 import org.drools.definition.KnowledgePackage;
 
 public interface KnowledgeBuilder extends RuleBuilder, ProcessBuilder {
-    public void addResource(URL url, KnowledgeType type);    
-    public void addResource(Reader reader, KnowledgeType type);
+    void addResource(URL url, KnowledgeType type);    
+    void addResource(Reader reader, KnowledgeType type);
     
+    /**
+     * Returns the built packages.
+     * 
+     * If the KnowledgeBuilder has errors the Collection will be empty. The hasErrors()
+     * method should always be checked first, to make sure you are getting the packages
+     * that you wanted built.
+     * 
+     * @return
+     *     The Collection of KnowledgePackages
+     */
 	Collection<KnowledgePackage> getKnowledgePackages();
+	
+	boolean hasErrors();
+	
+	
 }

Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgePackageError.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgePackageError.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgePackageError.java	2008-11-09 07:38:51 UTC (rev 23789)
@@ -0,0 +1,15 @@
+package org.drools.builder;
+
+public interface KnowledgePackageError {
+    
+    /**
+     * Returns the error message
+     */
+    String getMessage();
+    
+    /**
+     * Returns the lines of the error in the source file
+     * @return
+     */
+    int[] getErrorLines();
+}

Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgePackageErrors.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgePackageErrors.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgePackageErrors.java	2008-11-09 07:38:51 UTC (rev 23789)
@@ -0,0 +1,7 @@
+package org.drools.builder;
+
+import java.util.List;
+
+public interface KnowledgePackageErrors extends List<KnowledgePackageError> {
+    
+}

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeType.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeType.java	2008-11-09 07:02:41 UTC (rev 23788)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeType.java	2008-11-09 07:38:51 UTC (rev 23789)
@@ -1,5 +1,21 @@
 package org.drools.builder;
 
 public enum KnowledgeType {
-    DRL, DSLR, DSL, XDRL, DRF, XLS;
+    /** Drools Rule Language */
+    DRL, 
+    
+    /** Drools DSL Rule */    
+    DSLR, 
+    
+    /** Drools DSL */    
+    DSL, 
+    
+    /** Drools XML Rule Language */
+    XDRL, 
+    
+    /** Drools Rule Flow Language */
+    DRF, 
+    
+    /** Excel Decision Table */
+    XLS;
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/builder/impl/KnowledgeBuilderImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/builder/impl/KnowledgeBuilderImpl.java	2008-11-09 07:02:41 UTC (rev 23788)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/builder/impl/KnowledgeBuilderImpl.java	2008-11-09 07:38:51 UTC (rev 23789)
@@ -30,11 +30,22 @@
     }	
 
 	public Collection<KnowledgePackage> getKnowledgePackages() {
+	    if ( pkgBuilder.hasErrors() ) {
+	        return new ArrayList<KnowledgePackage>( 0 );
+	    }
+	    
 		Package[] pkgs = pkgBuilder.getPackages();
 		List<KnowledgePackage> list = new ArrayList<KnowledgePackage>( pkgs.length );
+		
 		for ( Package pkg : pkgs ) {
 			list.add( new KnowledgePackageImp( pkg ) );
 		}
+		
 		return list;
 	}	
+	
+	
+	public boolean hasErrors() {
+	    return this.pkgBuilder.hasErrors();
+	}
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2008-11-09 07:02:41 UTC (rev 23788)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2008-11-09 07:38:51 UTC (rev 23789)
@@ -355,6 +355,9 @@
         try {
             DSLTokenizedMappingFile file = new DSLTokenizedMappingFile();
             file.parseAndLoad( dsl );
+            if ( this.dslFiles == null ) {
+                this.dslFiles = new ArrayList<DSLTokenizedMappingFile>();
+            }
             this.dslFiles.add( file );
         } catch ( Exception e ) {
             throw new RuntimeException( e );
@@ -422,7 +425,7 @@
                     break;
                 } 
                 case DSLR : {
-                    addPackageFromDrl( reader );
+                    addPackageFromDslr( reader );
                     break;
                 }
                 case DSL : {

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/DslTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/DslTest.java	2008-11-09 07:02:41 UTC (rev 23788)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/DslTest.java	2008-11-09 07:38:51 UTC (rev 23789)
@@ -4,22 +4,31 @@
 import java.io.Reader;
 import java.io.StringReader;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
 import junit.framework.TestCase;
 
 import org.drools.Cheese;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
 import org.drools.Person;
 import org.drools.RuleBase;
 import org.drools.RuleBaseConfiguration;
 import org.drools.RuleBaseFactory;
 import org.drools.WorkingMemory;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.KnowledgeType;
 import org.drools.compiler.PackageBuilder;
+import org.drools.definition.KnowledgePackage;
 import org.drools.lang.Expander;
 import org.drools.lang.dsl.DefaultExpanderResolver;
 import org.drools.rule.Package;
+import org.drools.runtime.StatefulKnowledgeSession;
 
 public class DslTest extends TestCase {
+   
     protected RuleBase getRuleBase() throws Exception {
 
         return RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
@@ -42,40 +51,45 @@
     }
 
     public void testWithExpanderDSL() throws Exception {
-        final PackageBuilder builder = new PackageBuilder();
+        //final PackageBuilder builder = new PackageBuilder();
+        KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+        
         final Reader source = new InputStreamReader( getClass().getResourceAsStream( "rule_with_expander_dsl.dslr" ) );
         final Reader dsl = new InputStreamReader( getClass().getResourceAsStream( "test_expander.dsl" ) );
-        builder.addPackageFromDrl( source,
-                                   dsl );
+        kbuilder.addResource( dsl,
+                              KnowledgeType.DSL );        
+        kbuilder.addResource( source,
+                              KnowledgeType.DSLR );
 
         // the compiled package
-        final Package pkg = builder.getPackage();
-        assertTrue( pkg.isValid() );
-        assertEquals( null,
-                      pkg.getErrorSummary() );
+        final Collection<KnowledgePackage> pkgs = kbuilder.getKnowledgePackages();
+        assertFalse( kbuilder.hasErrors() );
+        //assertTrue( pkg.isValid() );
+//        assertEquals( null,
+//                      pkg.getErrorSummary() );
         // Check errors
-        final String err = builder.getErrors().toString();
-        assertEquals( "",
-                      err );
+//        final String err = builder.getErrors().toString();
+//        assertEquals( "",
+//                      err );
+//
+//        assertEquals( 0,
+//                      builder.getErrors().getErrors().length );
 
-        assertEquals( 0,
-                      builder.getErrors().getErrors().length );
+        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+        kbase.addKnowledgePackages( pkgs );
+        kbase    = SerializationHelper.serializeObject( kbase );
 
-        RuleBase ruleBase = getRuleBase();
-        ruleBase.addPackage( pkg );
-        ruleBase    = SerializationHelper.serializeObject(ruleBase);
-
-        WorkingMemory wm = ruleBase.newStatefulSession();
-        wm.insert( new Person( "Bob",
+        StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();
+        session.insert( new Person( "Bob",
                                "http://foo.bar" ) );
-        wm.insert( new Cheese( "stilton",
+        session.insert( new Cheese( "stilton",
                                42 ) );
 
         final List messages = new ArrayList();
-        wm.setGlobal( "messages",
+        session.setGlobal( "messages",
                       messages );
 //        wm  = SerializationHelper.serializeObject(wm);
-        wm.fireAllRules();
+        session.fireAllRules();
 
         // should have fired
         assertEquals( 1,

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/WSHumanTaskHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/WSHumanTaskHandler.java	2008-11-09 07:02:41 UTC (rev 23788)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/WSHumanTaskHandler.java	2008-11-09 07:38:51 UTC (rev 23789)
@@ -11,9 +11,9 @@
 import org.drools.eventmessaging.EventKey;
 import org.drools.eventmessaging.EventResponseHandler;
 import org.drools.eventmessaging.Payload;
-import org.drools.process.instance.WorkItem;
-import org.drools.process.instance.WorkItemHandler;
-import org.drools.process.instance.WorkItemManager;
+import org.drools.runtime.process.WorkItem;
+import org.drools.runtime.process.WorkItemHandler;
+import org.drools.runtime.process.WorkItemManager;
 import org.drools.task.I18NText;
 import org.drools.task.OrganizationalEntity;
 import org.drools.task.PeopleAssignments;

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerTest.java	2008-11-09 07:02:41 UTC (rev 23788)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerTest.java	2008-11-09 07:38:51 UTC (rev 23789)
@@ -7,10 +7,10 @@
 import java.util.Set;
 
 import org.apache.mina.transport.socket.nio.NioSocketConnector;
-import org.drools.process.instance.WorkItem;
-import org.drools.process.instance.WorkItemHandler;
-import org.drools.process.instance.WorkItemManager;
 import org.drools.process.instance.impl.WorkItemImpl;
+import org.drools.runtime.process.WorkItem;
+import org.drools.runtime.process.WorkItemHandler;
+import org.drools.runtime.process.WorkItemManager;
 import org.drools.task.BaseTest;
 import org.drools.task.Status;
 import org.drools.task.query.TaskSummary;




More information about the jboss-svn-commits mailing list