[jboss-svn-commits] JBL Code SVN: r15539 - in labs/jbossrules/trunk/drools-compiler/src: test/java/org/drools/integrationtests and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Oct 3 09:21:34 EDT 2007


Author: KrisVerlaenen
Date: 2007-10-03 09:21:34 -0400 (Wed, 03 Oct 2007)
New Revision: 15539

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/error_ruleflow.rfm
Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java
Log:
JBRULES-1244: Ruleflows should have a package name
 - Immediately adding ruleflows (and errors) to package after parsing

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	2007-10-03 11:51:07 UTC (rev 15538)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2007-10-03 13:21:34 UTC (rev 15539)
@@ -79,8 +79,6 @@
 
     private DialectRegistry             dialectRegistry;
     
-    private ProcessBuilder              processBuilder;
-
     /**
      * Use this when package is starting from scratch.
      */
@@ -214,11 +212,14 @@
      * Add a ruleflow (.rt) asset to this package.
      */
     public void addRuleFlow(Reader processSource) {
-        if ( this.processBuilder == null ) {
-            this.processBuilder = new ProcessBuilder( this );
-        }
+        ProcessBuilder processBuilder = new ProcessBuilder( this );
         try {
-            this.processBuilder.addProcessFromFile( processSource );
+            processBuilder.addProcessFromFile( processSource );
+            Process[] processes = processBuilder.getProcesses();
+            for ( int i = 0; i < processes.length; i++ ) {
+                pkg.addRuleFlow( processes[i] );
+            }
+            this.results.addAll(processBuilder.getErrors());
         } catch ( Exception e ) {
             if ( e instanceof RuntimeException ) {
                 throw (RuntimeException) e;
@@ -471,8 +472,6 @@
         if ( this.pkg != null && this.pkg.getPackageCompilationData() != null && this.pkg.getPackageCompilationData().isDirty() ) {
             this.pkg.getPackageCompilationData().reload();
         }
-        
-        addRuleFlowsToPackage( this.processBuilder, pkg );
         if ( hasErrors() ) {
             this.pkg.setError( getErrors().toString() );
         }
@@ -496,17 +495,6 @@
     	return this.dialect;
     }
     
-    private void addRuleFlowsToPackage(ProcessBuilder processBuilder,
-                                       Package pkg) {
-        if ( processBuilder != null ) {
-            Process[] processes = processBuilder.getProcesses();
-            for ( int i = 0; i < processes.length; i++ ) {
-                pkg.addRuleFlow( processes[i] );
-            }
-            this.results.addAll(processBuilder.getErrors());
-        }
-    }
-
     /**
      * Return the ClassFieldExtractorCache, this should only be used internally, and is subject to change
      * @return

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java	2007-10-03 11:51:07 UTC (rev 15538)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java	2007-10-03 13:21:34 UTC (rev 15539)
@@ -732,6 +732,13 @@
         }
     }
 
+    public void testLoadingRuleFlowInPackage7() throws Exception {
+    	// loading a ruleflow with errors
+        final PackageBuilder builder = new PackageBuilder();
+    	builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "error_ruleflow.rfm" ) ) );
+    	assertEquals(1, builder.getErrors().getErrors().length);
+    }
+
     private RuleBase loadRuleBase(final Reader reader) throws IOException,
                                                       DroolsParserException,
                                                       Exception {

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/error_ruleflow.rfm
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/error_ruleflow.rfm	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/error_ruleflow.rfm	2007-10-03 13:21:34 UTC (rev 15539)
@@ -0,0 +1,45 @@
+<org.drools.ruleflow.core.impl.RuleFlowProcessImpl id="1">
+  <nodes id="2">
+    <entry>
+      <long>1</long>
+      <org.drools.ruleflow.core.impl.StartNodeImpl id="3">
+        <id>1</id>
+        <name>Start</name>
+        <incomingConnections id="4"/>
+        <outgoingConnections id="5">
+          <org.drools.ruleflow.core.impl.ConnectionImpl id="6">
+            <type>1</type>
+            <from class="org.drools.ruleflow.core.impl.StartNodeImpl" reference="3"/>
+            <to class="org.drools.ruleflow.core.impl.EndNodeImpl" id="7">
+              <id>4</id>
+              <name>End</name>
+              <incomingConnections id="8">
+                <org.drools.ruleflow.core.impl.ConnectionImpl reference="6"/>
+              </incomingConnections>
+              <outgoingConnections id="9"/>
+            </to>
+          </org.drools.ruleflow.core.impl.ConnectionImpl>
+        </outgoingConnections>
+      </org.drools.ruleflow.core.impl.StartNodeImpl>
+    </entry>
+    <entry>
+      <long>4</long>
+      <org.drools.ruleflow.core.impl.EndNodeImpl reference="7"/>
+    </entry>
+  </nodes>
+  <variables id="10"/>
+  <lastNodeId>9</lastNodeId>
+  <imports id="11">
+    <string>com.sample.Property</string>
+  </imports>
+  <globals id="12">
+    <entry>
+      <string>property</string>
+      <string>Property</string>
+    </entry>
+  </globals>
+  <id>com.sample.ruleflow</id>
+  <name>Ruleflow</name>
+  <version>1.0</version>
+  <type>RuleFlow</type>
+</org.drools.ruleflow.core.impl.RuleFlowProcessImpl>
\ No newline at end of file




More information about the jboss-svn-commits mailing list