[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