[jboss-svn-commits] JBL Code SVN: r12369 - in labs/jbossrules/trunk/drools-jbrms/src: main/java/org/drools/brms/client/packages and 6 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jun 7 05:25:43 EDT 2007


Author: michael.neale at jboss.com
Date: 2007-06-07 05:25:42 -0400 (Thu, 07 Jun 2007)
New Revision: 12369

Added:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleFlowUploadWidget.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/ruleflow_large.png
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/ruleflow_small.gif
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/RuleFlowHandler.java
   labs/jbossrules/trunk/drools-jbrms/src/test/resources/ruleflow.rf
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/AssetFormats.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/NewAssetWizard.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ContentHandler.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/common/AssetFormatsTest.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java
Log:
JBRULES-912 Ruleflow in BRMS

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/AssetFormats.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/AssetFormats.java	2007-06-07 08:19:46 UTC (rev 12368)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/AssetFormats.java	2007-06-07 09:25:42 UTC (rev 12369)
@@ -38,11 +38,15 @@
     /** Use a decision table.*/
     public static final String DECISION_SPREADSHEET_XLS = "xls";
 
+    /** Use a ruleflow.*/
+    public static final String RULE_FLOW_RF = "rf";
+    
+    
     /**
      * The following group the assets together for lists, helpers etc... 
      */
     public static final String[] BUSINESS_RULE_FORMATS = new String[] {AssetFormats.BUSINESS_RULE, AssetFormats.DSL_TEMPLATE_RULE, AssetFormats.DECISION_SPREADSHEET_XLS};
-    public static final String[] TECHNICAL_RULE_FORMATS = new String[] {AssetFormats.DRL};
+    public static final String[] TECHNICAL_RULE_FORMATS = new String[] {AssetFormats.DRL, AssetFormats.RULE_FLOW_RF};
     
     /**
      * These define assets that are really package level "things" 

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java	2007-06-07 08:19:46 UTC (rev 12368)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java	2007-06-07 09:25:42 UTC (rev 12369)
@@ -5,6 +5,7 @@
 import org.drools.brms.client.common.DirtyableFlexTable;
 import org.drools.brms.client.common.FormStyleLayout;
 import org.drools.brms.client.common.GenericCallback;
+import org.drools.brms.client.common.ImageButton;
 import org.drools.brms.client.common.LoadingPopup;
 import org.drools.brms.client.rpc.PackageConfigData;
 import org.drools.brms.client.rpc.RepositoryServiceFactory;
@@ -132,27 +133,17 @@
             }            
         });
         
-        Image uploadModel = new Image("images/model_asset.gif");
+        Image uploadModel = new ImageButton("images/model_asset.gif");
         uploadModel.addClickListener( new ClickListener() {
             public void onClick(Widget w) {
-                int left = 70;
-                int top = 100;
-                  
-                NewAssetWizard pop = new NewAssetWizard(new EditItemEvent() {
-                    public void open(String key) {                  
-                        editEvent.open( key );                      
-                    }
-                }, false, AssetFormats.MODEL, "Create a new model archive");
-                pop.setPopupPosition( left, top );
-                
-                pop.show();  
+                launchWizard( AssetFormats.MODEL, "Create a new model archive" );
             }            
         });
         uploadModel.setTitle( "This creates a new model archive - models contain classes/types that rules use." );
         
         
         
-        Image newRule = new Image("images/new_rule.gif");
+        Image newRule = new ImageButton("images/new_rule.gif");
         newRule.setTitle( "Create new rule" );
 
         newRule.addClickListener( new ClickListener() {
@@ -173,47 +164,36 @@
             
         });
         
-        final Image newFunction = new Image("images/function_assets.gif");
+        final Image newFunction = new ImageButton("images/function_assets.gif");
         newFunction.setTitle( "Create a new function" );
         newFunction.addClickListener( new ClickListener() {
             public void onClick(Widget w) {
-                int left = 70;
-                int top = 100;
-                  
-                NewAssetWizard pop = new NewAssetWizard(new EditItemEvent() {
-                    public void open(String key) {                  
-                        editEvent.open( key );                      
-                    }
-                }, false, AssetFormats.FUNCTION, "Create a new function");
-                pop.setPopupPosition( left, top );
-                
-                pop.show();                
+                launchWizard( AssetFormats.FUNCTION, "Create a new function" );
             }
         } );
         
-        final Image newDSL = new Image("images/dsl.gif");
+        final Image newDSL = new ImageButton("images/dsl.gif");
         newDSL.setTitle( "Create a new DSL (language configuration)" );
         newDSL.addClickListener( new ClickListener() {
             public void onClick(Widget w) {
-                int left = 70;
-                int top = 100;
-                  
-                NewAssetWizard pop = new NewAssetWizard(new EditItemEvent() {
-                    public void open(String key) {                  
-                        editEvent.open( key );                      
-                    }
-                }, false, AssetFormats.DSL, "Create a new language configuration");
-                pop.setPopupPosition( left, top );
-                
-                pop.show();                
+                launchWizard( AssetFormats.DSL, "Create a new language configuration" );
             }
-        } );        
+        } );    
         
+        final Image newRuleflow = new ImageButton("images/ruleflow_small.gif");
+        newRuleflow.setTitle( "Upload a new ruleflow." );
+        newRuleflow.addClickListener( new ClickListener() {
+            public void onClick(Widget w) {
+                launchWizard(AssetFormats.RULE_FLOW_RF, "Create a new ruleflow");                 
+            }
+        } );
+        
         newWizards.add( newPackage );
         newWizards.add( uploadModel );
         newWizards.add( newRule );
         newWizards.add( newFunction );
         newWizards.add( newDSL );
+        newWizards.add( newRuleflow );
         return newWizards;
 
     }
@@ -293,8 +273,8 @@
             }
         }));
         
-        pkg.addItem( makeItem("Business rules", "images/rule_asset.gif", showListEvent(conf.uuid, AssetFormats.BUSINESS_RULE_FORMATS)) );
-        pkg.addItem( makeItem("Technical rules", "images/technical_rule_assets.gif", showListEvent(conf.uuid, AssetFormats.TECHNICAL_RULE_FORMATS)) );
+        pkg.addItem( makeItem("Business rule assets", "images/rule_asset.gif", showListEvent(conf.uuid, AssetFormats.BUSINESS_RULE_FORMATS)) );
+        pkg.addItem( makeItem("Technical rule assets", "images/technical_rule_assets.gif", showListEvent(conf.uuid, AssetFormats.TECHNICAL_RULE_FORMATS)) );
         pkg.addItem( makeItem("Functions", "images/function_assets.gif", showListEvent(conf.uuid, new String[] {AssetFormats.FUNCTION})) );
         pkg.addItem( makeItem("DSL", "images/dsl.gif", showListEvent(conf.uuid, new String[] {AssetFormats.DSL})) );
         pkg.addItem( makeItem("Model", "images/model_asset.gif", showListEvent(conf.uuid, new String[] {AssetFormats.MODEL}) ) );
@@ -426,6 +406,20 @@
         return item;
     }
     
+    private void launchWizard(String format, String title) {
+        int left = 70;
+        int top = 100;
+          
+        NewAssetWizard pop = new NewAssetWizard(new EditItemEvent() {
+            public void open(String key) {                  
+                editEvent.open( key );                      
+            }
+        }, false, format, title);
+        pop.setPopupPosition( left, top );
+        
+        pop.show();
+    }
+
     static class PackageTreeItem {
         Command command;
            

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java	2007-06-07 08:19:46 UTC (rev 12368)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java	2007-06-07 09:25:42 UTC (rev 12369)
@@ -48,6 +48,8 @@
             return new ModelAttachmentFileWidget( asset, viewer );
         } else if (asset.metaData.format.equals( AssetFormats.DECISION_SPREADSHEET_XLS )){
             return new RuleValidatorWrapper(new DecisionTableXLSWidget( asset, viewer ), asset);
+        } else if (asset.metaData.format.equals( AssetFormats.RULE_FLOW_RF )) {
+            return new RuleFlowUploadWidget(asset, viewer);
         } else {
             return new RuleValidatorWrapper(new DefaultRuleContentWidget( asset ), asset);
         }
@@ -65,7 +67,9 @@
         result.put( AssetFormats.DECISION_SPREADSHEET_XLS, "spreadsheet_small.gif" );
         result.put( AssetFormats.BUSINESS_RULE, "rule_asset.gif" );
         result.put( AssetFormats.DSL_TEMPLATE_RULE, "rule_asset.gif" );
+        result.put( AssetFormats.RULE_FLOW_RF, "ruleflow_small.gif" );
         
+        
         return result;
     }
     

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/NewAssetWizard.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/NewAssetWizard.java	2007-06-07 08:19:46 UTC (rev 12368)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/NewAssetWizard.java	2007-06-07 09:25:42 UTC (rev 12369)
@@ -90,9 +90,9 @@
         
         ListBox box = new ListBox();
         
-        box.addItem( "Business rule", AssetFormats.BUSINESS_RULE );
-        box.addItem( "DRL rule (technical rule)", AssetFormats.DRL );        
-        box.addItem( "Business rule using a DSL template", AssetFormats.DSL_TEMPLATE_RULE );
+        box.addItem( "Business rule (using guided editor)", AssetFormats.BUSINESS_RULE );
+        box.addItem( "DRL rule (technical rule - text editor)", AssetFormats.DRL );        
+        box.addItem( "Business rule using a DSL (text editor)", AssetFormats.DSL_TEMPLATE_RULE );
         box.addItem( "Decision table (spreadsheet)", AssetFormats.DECISION_SPREADSHEET_XLS );
         
         box.setSelectedIndex( 0 );

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleFlowUploadWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleFlowUploadWidget.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleFlowUploadWidget.java	2007-06-07 09:25:42 UTC (rev 12369)
@@ -0,0 +1,33 @@
+package org.drools.brms.client.ruleeditor;
+
+import org.drools.brms.client.packages.AssetAttachmentFileWidget;
+import org.drools.brms.client.rpc.RuleAsset;
+
+import com.google.gwt.user.client.ui.HTML;
+
+/**
+ * For ruleflow upload.
+ * 
+ * @author Michael Neale
+ */
+public class RuleFlowUploadWidget extends AssetAttachmentFileWidget {
+
+    public RuleFlowUploadWidget(
+                                  RuleAsset asset, RuleViewer viewer) {
+        super( asset,
+               viewer );
+        super.addDescription(new HTML("<small><i>Ruleflows allow flow control between rules. " +
+                "The eclipse plugin provides a graphical editor. Upload ruleflow .rf files for inclusion in this package.</i></small>"));
+    }
+
+    public String getIcon() {
+        return "images/ruleflow_large.png";
+    }
+    
+    public String getOverallStyleName() {
+        return "decision-Table-upload";
+    }
+    
+
+
+}
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleFlowUploadWidget.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/ruleflow_large.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/ruleflow_large.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/ruleflow_small.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/ruleflow_small.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ContentHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ContentHandler.java	2007-06-07 08:19:46 UTC (rev 12368)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ContentHandler.java	2007-06-07 09:25:42 UTC (rev 12369)
@@ -28,7 +28,7 @@
             put(AssetFormats.FUNCTION, new FunctionContentHandler());
             put(AssetFormats.MODEL, new ModelContentHandler());
             put(AssetFormats.DECISION_SPREADSHEET_XLS, new DecisionTableXLSHandler());
-            
+            put(AssetFormats.RULE_FLOW_RF, new RuleFlowHandler());
         }};        
     }
     

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/RuleFlowHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/RuleFlowHandler.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/RuleFlowHandler.java	2007-06-07 09:25:42 UTC (rev 12369)
@@ -0,0 +1,37 @@
+package org.drools.brms.server.contenthandler;
+
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import org.drools.brms.client.rpc.RuleAsset;
+import org.drools.brms.server.builder.BRMSPackageBuilder;
+import org.drools.brms.server.builder.ContentPackageAssembler.ErrorLogger;
+import org.drools.compiler.DroolsParserException;
+import org.drools.repository.AssetItem;
+import org.drools.repository.PackageItem;
+
+import com.google.gwt.user.client.rpc.SerializableException;
+
+public class RuleFlowHandler extends ContentHandler implements IRuleAsset {
+
+    public void retrieveAssetContent(RuleAsset asset,
+                                     PackageItem pkg,
+                                     AssetItem item) throws SerializableException {
+        //do nothing, as we have an attachment
+    }
+
+    public void storeAssetContent(RuleAsset asset,
+                                  AssetItem repoAsset) throws SerializableException {
+        //do nothing, as we have an attachment
+    }
+
+    public void assembleDRL(BRMSPackageBuilder builder, AssetItem asset, StringBuffer buf) {
+        //do nothing... as no change to source.
+    }
+
+    public void compile(BRMSPackageBuilder builder, AssetItem asset, ErrorLogger logger) throws DroolsParserException,
+                                                                                        IOException {
+        builder.addRuleFlow( new InputStreamReader(asset.getBinaryContentAttachment()) );
+    }
+
+}


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/RuleFlowHandler.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/common/AssetFormatsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/common/AssetFormatsTest.java	2007-06-07 08:19:46 UTC (rev 12368)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/common/AssetFormatsTest.java	2007-06-07 09:25:42 UTC (rev 12369)
@@ -18,6 +18,19 @@
                 fail("Incorrect grouping of business rules.");
             }
         }
+        
+        formats = AssetFormats.TECHNICAL_RULE_FORMATS;
+        for ( int i = 0; i < formats.length; i++ ) {
+            String fmt = formats[i];
+            if (! (fmt.equals( AssetFormats.RULE_FLOW_RF )
+                    ||
+                    fmt.equals( AssetFormats.DRL )
+            ) ) {
+                fail("Incorrect grouping of technical rules.");
+            }
+        }        
+        
+        
     }
     
     public void testPackageDependencies() {

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-06-07 08:19:46 UTC (rev 12368)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java	2007-06-07 09:25:42 UTC (rev 12369)
@@ -1,6 +1,8 @@
 package org.drools.brms.server.builder;
 
 import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.Map;
 
 import junit.framework.TestCase;
 
@@ -23,6 +25,7 @@
 import org.drools.repository.PackageItem;
 import org.drools.repository.RulesRepository;
 import org.drools.rule.Package;
+import org.drools.ruleflow.core.RuleFlowProcess;
 
 /**
  * This will unit test package assembly into a binary.
@@ -115,7 +118,42 @@
         assertTrue(assembler.getErrors().get( 0 ).itemInError.getName().equals( func.getName() ));
         assertNotEmpty(assembler.getErrors().get( 0 ).errorReport);
     }
+    
 
+    public void testPackageWithRuleflow() throws Exception {
+        RulesRepository repo = getRepo();
+        
+        PackageItem pkg = repo.createPackage( "testPackageWithRuleFlow", "" );
+        AssetItem model = pkg.addAsset( "model", "qed" );
+        model.updateFormat( AssetFormats.MODEL );
+        
+        model.updateBinaryContentAttachment( this.getClass().getResourceAsStream( "/billasurf.jar" ) );
+        model.checkin( "" );
+        
+        pkg.updateHeader( "import com.billasurf.Board\n global com.billasurf.Person customer" );
+        
+        AssetItem rule1 = pkg.addAsset( "rule_1", "" );
+        rule1.updateFormat( AssetFormats.DRL );
+        rule1.updateContent( "rule 'rule1' \n when Board() \n then customer.setAge(42); \n end"); 
+        rule1.checkin( "" );
+        
+        AssetItem ruleFlow = pkg.addAsset( "ruleFlow", "" );
+        ruleFlow.updateFormat( AssetFormats.RULE_FLOW_RF );
+        
+        ruleFlow.updateBinaryContentAttachment( this.getClass().getResourceAsStream( "/ruleflow.rf" ) );
+        ruleFlow.checkin( "" );
+        
+        ContentPackageAssembler asm = new ContentPackageAssembler(pkg);
+        assertFalse(asm.hasErrors());
+        Map flows = asm.getBinaryPackage().getRuleFlows();
+        assertNotNull(flows);
+        
+        assertEquals(1, flows.size());
+        Object flow = flows.values().iterator().next();
+        assertNotNull(flow);
+        assertTrue(flow instanceof RuleFlowProcess);
+        
+    }
     
     public void testSimplePackageBuildNoErrors() throws Exception {
         RulesRepository repo = getRepo();

Added: labs/jbossrules/trunk/drools-jbrms/src/test/resources/ruleflow.rf
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/resources/ruleflow.rf	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/resources/ruleflow.rf	2007-06-07 09:25:42 UTC (rev 12369)
@@ -0,0 +1,150 @@
+<org.drools.ruleflow.core.impl.RuleFlowProcessImpl id="1">
+  <nodes id="2">
+    <entry>
+      <long>2</long>
+      <org.drools.ruleflow.core.impl.RuleSetNodeImpl id="3">
+        <ruleFlowGroup>flowgroup-1</ruleFlowGroup>
+        <id>2</id>
+        <name>RuleSet1</name>
+        <incomingConnections id="4">
+          <org.drools.ruleflow.core.impl.ConnectionImpl id="5">
+            <type>1</type>
+            <from class="org.drools.ruleflow.core.impl.StartNodeImpl" id="6">
+              <id>1</id>
+              <name>Start</name>
+              <incomingConnections id="7"/>
+              <outgoingConnections id="8">
+                <org.drools.ruleflow.core.impl.ConnectionImpl reference="5"/>
+              </outgoingConnections>
+            </from>
+            <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="3"/>
+          </org.drools.ruleflow.core.impl.ConnectionImpl>
+        </incomingConnections>
+        <outgoingConnections id="9">
+          <org.drools.ruleflow.core.impl.ConnectionImpl id="10">
+            <type>1</type>
+            <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="3"/>
+            <to class="org.drools.ruleflow.core.impl.SplitImpl" id="11">
+              <type>1</type>
+              <constraints id="12"/>
+              <id>5</id>
+              <name>Split</name>
+              <incomingConnections id="13">
+                <org.drools.ruleflow.core.impl.ConnectionImpl reference="10"/>
+              </incomingConnections>
+              <outgoingConnections id="14">
+                <org.drools.ruleflow.core.impl.ConnectionImpl id="15">
+                  <type>1</type>
+                  <from class="org.drools.ruleflow.core.impl.SplitImpl" reference="11"/>
+                  <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" id="16">
+                    <ruleFlowGroup>flowgroup-2</ruleFlowGroup>
+                    <id>3</id>
+                    <name>RuleSet2</name>
+                    <incomingConnections id="17">
+                      <org.drools.ruleflow.core.impl.ConnectionImpl reference="15"/>
+                    </incomingConnections>
+                    <outgoingConnections id="18">
+                      <org.drools.ruleflow.core.impl.ConnectionImpl id="19">
+                        <type>1</type>
+                        <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="16"/>
+                        <to class="org.drools.ruleflow.core.impl.JoinImpl" id="20">
+                          <type>1</type>
+                          <id>6</id>
+                          <name>Join</name>
+                          <incomingConnections id="21">
+                            <org.drools.ruleflow.core.impl.ConnectionImpl id="22">
+                              <type>1</type>
+                              <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" id="23">
+                                <ruleFlowGroup>flowgroup-3</ruleFlowGroup>
+                                <id>4</id>
+                                <name>RuleSet3</name>
+                                <incomingConnections id="24">
+                                  <org.drools.ruleflow.core.impl.ConnectionImpl id="25">
+                                    <type>1</type>
+                                    <from class="org.drools.ruleflow.core.impl.SplitImpl" reference="11"/>
+                                    <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="23"/>
+                                  </org.drools.ruleflow.core.impl.ConnectionImpl>
+                                </incomingConnections>
+                                <outgoingConnections id="26">
+                                  <org.drools.ruleflow.core.impl.ConnectionImpl reference="22"/>
+                                </outgoingConnections>
+                              </from>
+                              <to class="org.drools.ruleflow.core.impl.JoinImpl" reference="20"/>
+                            </org.drools.ruleflow.core.impl.ConnectionImpl>
+                            <org.drools.ruleflow.core.impl.ConnectionImpl reference="19"/>
+                          </incomingConnections>
+                          <outgoingConnections id="27">
+                            <org.drools.ruleflow.core.impl.ConnectionImpl id="28">
+                              <type>1</type>
+                              <from class="org.drools.ruleflow.core.impl.JoinImpl" reference="20"/>
+                              <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" id="29">
+                                <ruleFlowGroup>flowgroup-4</ruleFlowGroup>
+                                <id>7</id>
+                                <name>RuleSet4</name>
+                                <incomingConnections id="30">
+                                  <org.drools.ruleflow.core.impl.ConnectionImpl reference="28"/>
+                                </incomingConnections>
+                                <outgoingConnections id="31">
+                                  <org.drools.ruleflow.core.impl.ConnectionImpl id="32">
+                                    <type>1</type>
+                                    <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="29"/>
+                                    <to class="org.drools.ruleflow.core.impl.EndNodeImpl" id="33">
+                                      <id>8</id>
+                                      <name>End</name>
+                                      <incomingConnections id="34">
+                                        <org.drools.ruleflow.core.impl.ConnectionImpl reference="32"/>
+                                      </incomingConnections>
+                                      <outgoingConnections id="35"/>
+                                    </to>
+                                  </org.drools.ruleflow.core.impl.ConnectionImpl>
+                                </outgoingConnections>
+                              </to>
+                            </org.drools.ruleflow.core.impl.ConnectionImpl>
+                          </outgoingConnections>
+                        </to>
+                      </org.drools.ruleflow.core.impl.ConnectionImpl>
+                    </outgoingConnections>
+                  </to>
+                </org.drools.ruleflow.core.impl.ConnectionImpl>
+                <org.drools.ruleflow.core.impl.ConnectionImpl reference="25"/>
+              </outgoingConnections>
+            </to>
+          </org.drools.ruleflow.core.impl.ConnectionImpl>
+        </outgoingConnections>
+      </org.drools.ruleflow.core.impl.RuleSetNodeImpl>
+    </entry>
+    <entry>
+      <long>4</long>
+      <org.drools.ruleflow.core.impl.RuleSetNodeImpl reference="23"/>
+    </entry>
+    <entry>
+      <long>8</long>
+      <org.drools.ruleflow.core.impl.EndNodeImpl reference="33"/>
+    </entry>
+    <entry>
+      <long>6</long>
+      <org.drools.ruleflow.core.impl.JoinImpl reference="20"/>
+    </entry>
+    <entry>
+      <long>1</long>
+      <org.drools.ruleflow.core.impl.StartNodeImpl reference="6"/>
+    </entry>
+    <entry>
+      <long>3</long>
+      <org.drools.ruleflow.core.impl.RuleSetNodeImpl reference="16"/>
+    </entry>
+    <entry>
+      <long>7</long>
+      <org.drools.ruleflow.core.impl.RuleSetNodeImpl reference="29"/>
+    </entry>
+    <entry>
+      <long>5</long>
+      <org.drools.ruleflow.core.impl.SplitImpl reference="11"/>
+    </entry>
+  </nodes>
+  <variables id="36"/>
+  <lastNodeId>8</lastNodeId>
+  <id>0</id>
+  <name>flow</name>
+  <type>Workflow</type>
+</org.drools.ruleflow.core.impl.RuleFlowProcessImpl>
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/test/resources/ruleflow.rf
___________________________________________________________________
Name: svn:eol-style
   + native




More information about the jboss-svn-commits mailing list