[jboss-svn-commits] JBL Code SVN: r25508 - in labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main: resources/org/drools/eclipse/wizard/project and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Mar 5 18:05:55 EST 2009


Author: KrisVerlaenen
Date: 2009-03-05 18:05:55 -0500 (Thu, 05 Mar 2009)
New Revision: 25508

Added:
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/DecisionTableLauncherSample_4.java.template
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/RuleFlowLauncherSample_4.java.template
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/RuleLauncherSample_4.java.template
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ruleflow_4.drl.template
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ruleflow_4.rf.template
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ruleflow_4.rfm.template
Modified:
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/wizard/project/NewDroolsProjectRuntimeWizardPage.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/wizard/project/NewDroolsProjectWizard.java
Log:
JBRULES-1967: Drools IDE - wizard should be able to determine the generated code according to the selected runtime
 - You can now select which runtime the code will be generated for

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/wizard/project/NewDroolsProjectRuntimeWizardPage.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/wizard/project/NewDroolsProjectRuntimeWizardPage.java	2009-03-05 17:45:41 UTC (rev 25507)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/wizard/project/NewDroolsProjectRuntimeWizardPage.java	2009-03-05 23:05:55 UTC (rev 25508)
@@ -20,10 +20,15 @@
 
 public class NewDroolsProjectRuntimeWizardPage extends WizardPage {
 
+	public static final String DROOLS4 = "Drools 4.x";
+	public static final String DROOLS5 = "Drools 5.x";
+	
 	private boolean isDefaultRuntime = true;
 	private String selectedRuntime;
+	private String generationType = DROOLS5;
 	private Button projectSpecificRuntime;
 	private Combo droolsRuntimeCombo;
+	private Combo droolsGenerateCombo;
 	
 	public NewDroolsProjectRuntimeWizardPage() {
 		super("extendedNewProjectRuntimePage");
@@ -59,7 +64,7 @@
         
         Label nameLabel = new Label(composite, SWT.NONE);
         nameLabel.setText("Drools Runtime: ");
-        droolsRuntimeCombo = new Combo(composite, SWT.LEFT);
+        droolsRuntimeCombo = new Combo(composite, SWT.READ_ONLY);
         droolsRuntimeCombo.setEnabled(false);
         droolsRuntimeCombo.addSelectionListener(new SelectionListener() {
 			public void widgetDefaultSelected(SelectionEvent e) {
@@ -85,8 +90,37 @@
         gridData.horizontalAlignment = GridData.FILL;
         droolsRuntimeCombo.setLayoutData(gridData);
         Link changeWorkspaceSettingsLink = createLink(composite, "Configure Workspace Settings...");
-        changeWorkspaceSettingsLink.setLayoutData(new GridData(SWT.END, SWT.CENTER, false, false));
+        changeWorkspaceSettingsLink.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
 
+		Composite subPanel = new Composite(composite, SWT.NONE);
+		gridLayout = new GridLayout();
+        gridLayout.numColumns = 2;
+        subPanel.setLayout(gridLayout);
+        gridData = new GridData();
+        gridData.grabExcessHorizontalSpace = true;
+        gridData.horizontalAlignment = GridData.FILL;
+        gridData.horizontalSpan = 2;
+        subPanel.setLayoutData(gridData);
+
+        Label generateLabel = new Label(subPanel, SWT.NONE);
+        generateLabel.setText("Generate code compatible with: ");
+        droolsGenerateCombo = new Combo(subPanel, SWT.READ_ONLY);
+        droolsGenerateCombo.add("Drools 4.x");
+        droolsGenerateCombo.add("Drools 5.x");
+        droolsGenerateCombo.addSelectionListener(new SelectionListener() {
+			public void widgetDefaultSelected(SelectionEvent e) {
+				generationType = droolsGenerateCombo.getText();
+			}
+			public void widgetSelected(SelectionEvent e) {
+				generationType = droolsGenerateCombo.getText();
+			}
+        });
+        droolsGenerateCombo.select(1);
+        gridData = new GridData();
+        gridData.grabExcessHorizontalSpace = true;
+        gridData.horizontalAlignment = GridData.FILL;
+        droolsGenerateCombo.setLayoutData(gridData);
+        
         setMessage(null);
         setPageComplete(runtimes.length > 0);
         setControl(composite);
@@ -145,4 +179,8 @@
 		return DroolsRuntimeManager.getDroolsRuntime(selectedRuntime);
 	}
 	
+	public String getGenerationType() {
+		return generationType;
+	}
+	
 }

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/wizard/project/NewDroolsProjectWizard.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/wizard/project/NewDroolsProjectWizard.java	2009-03-05 17:45:41 UTC (rev 25507)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/wizard/project/NewDroolsProjectWizard.java	2009-03-05 23:05:55 UTC (rev 25508)
@@ -10,6 +10,7 @@
 
 import org.drools.eclipse.DroolsEclipsePlugin;
 import org.drools.eclipse.builder.DroolsBuilder;
+import org.drools.eclipse.preferences.DroolsRuntimesPreferencePage;
 import org.drools.eclipse.util.DroolsClasspathContainer;
 import org.drools.eclipse.util.DroolsRuntime;
 import org.eclipse.core.resources.ICommand;
@@ -304,7 +305,12 @@
     private void createRuleSampleLauncher(IJavaProject project)
             throws JavaModelException, IOException {
         
-        String s = "org/drools/eclipse/wizard/project/RuleLauncherSample.java.template";
+    	String s;
+    	if (runtimePage.getGenerationType() == NewDroolsProjectRuntimeWizardPage.DROOLS4) {
+    		s = "org/drools/eclipse/wizard/project/RuleLauncherSample_4.java.template";
+    	} else {
+    		s = "org/drools/eclipse/wizard/project/RuleLauncherSample.java.template";
+    	}
         IFolder folder = project.getProject().getFolder("src/main/java");
         IPackageFragmentRoot packageFragmentRoot = project
                 .getPackageFragmentRoot(folder);
@@ -322,7 +328,12 @@
     private void createDecisionTableSampleLauncher(IJavaProject project)
             throws JavaModelException, IOException {
         
-        String s = "org/drools/eclipse/wizard/project/DecisionTableLauncherSample.java.template";
+        String s;
+        if (runtimePage.getGenerationType() == NewDroolsProjectRuntimeWizardPage.DROOLS4) {
+    		s = "org/drools/eclipse/wizard/project/DecisionTableLauncherSample_4.java.template";
+        } else {
+        	s = "org/drools/eclipse/wizard/project/DecisionTableLauncherSample.java.template";
+        }
         IFolder folder = project.getProject().getFolder("src/main/java");
         IPackageFragmentRoot packageFragmentRoot = project
                 .getPackageFragmentRoot(folder);
@@ -371,15 +382,46 @@
      */
     private void createRuleFlow(IJavaProject project, IProgressMonitor monitor)
             throws CoreException {
-        String fileName = "org/drools/eclipse/wizard/project/ruleflow.rf.template";
-        IFolder folder = project.getProject().getFolder("src/main/rules");
-        IFile file = folder.getFile("ruleflow.rf");
-        InputStream inputstream = getClass().getClassLoader().getResourceAsStream(fileName);
-        if (!file.exists()) {
-        	file.create(inputstream, true, monitor);
-        } else {
-        	file.setContents(inputstream, true, false, monitor);
-        }
+
+    	if (runtimePage.getGenerationType() == NewDroolsProjectRuntimeWizardPage.DROOLS4) {
+    		String fileName = "org/drools/eclipse/wizard/project/ruleflow_4.rf.template";
+	        IFolder folder = project.getProject().getFolder("src/main/rules");
+	        IFile file = folder.getFile("ruleflow.rf");
+	        InputStream inputstream = getClass().getClassLoader().getResourceAsStream(fileName);
+	        if (!file.exists()) {
+	        	file.create(inputstream, true, monitor);
+	        } else {
+	        	file.setContents(inputstream, true, false, monitor);
+	        }
+	        
+	        fileName = "org/drools/eclipse/wizard/project/ruleflow_4.rfm.template";
+	        file = folder.getFile("ruleflow.rfm");
+	        inputstream = getClass().getClassLoader().getResourceAsStream(fileName);
+	        if (!file.exists()) {
+	        	file.create(inputstream, true, monitor);
+	        } else {
+	        	file.setContents(inputstream, true, false, monitor);
+	        }
+	        
+	        fileName = "org/drools/eclipse/wizard/project/ruleflow_4.drl.template";
+	        file = folder.getFile("ruleflow.drl");
+	        inputstream = getClass().getClassLoader().getResourceAsStream(fileName);
+	        if (!file.exists()) {
+	        	file.create(inputstream, true, monitor);
+	        } else {
+	        	file.setContents(inputstream, true, false, monitor);
+	        }
+    	} else {
+	        String fileName = "org/drools/eclipse/wizard/project/ruleflow.rf.template";
+	        IFolder folder = project.getProject().getFolder("src/main/rules");
+	        IFile file = folder.getFile("ruleflow.rf");
+	        InputStream inputstream = getClass().getClassLoader().getResourceAsStream(fileName);
+	        if (!file.exists()) {
+	        	file.create(inputstream, true, monitor);
+	        } else {
+	        	file.setContents(inputstream, true, false, monitor);
+	        }
+    	}
     }
 
     /**
@@ -388,7 +430,12 @@
     private void createRuleFlowSampleLauncher(IJavaProject project)
             throws JavaModelException, IOException {
         
-        String s = "org/drools/eclipse/wizard/project/RuleFlowLauncherSample.java.template";
+        String s;
+        if (runtimePage.getGenerationType() == NewDroolsProjectRuntimeWizardPage.DROOLS4) {
+    		s = "org/drools/eclipse/wizard/project/RuleFlowLauncherSample_4.java.template";
+        } else {
+        	s = "org/drools/eclipse/wizard/project/RuleFlowLauncherSample.java.template";
+        }
         IFolder folder = project.getProject().getFolder("src/main/java");
         IPackageFragmentRoot packageFragmentRoot = project
                 .getPackageFragmentRoot(folder);

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/DecisionTableLauncherSample_4.java.template
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/DecisionTableLauncherSample_4.java.template	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/DecisionTableLauncherSample_4.java.template	2009-03-05 23:05:55 UTC (rev 25508)
@@ -0,0 +1,91 @@
+package com.sample;
+
+/*
+ * Copyright 2005 JBoss Inc
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.StringReader;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.WorkingMemory;
+import org.drools.compiler.PackageBuilder;
+import org.drools.decisiontable.InputType;
+import org.drools.decisiontable.SpreadsheetCompiler;
+import org.drools.rule.Package;
+
+public class DecisionTableTest {
+
+    public static final void main(String[] args) {
+        try {
+        	
+        	//load up the rulebase
+            RuleBase ruleBase = readDecisionTable();
+            WorkingMemory workingMemory = ruleBase.newStatefulSession();
+            
+            //go !
+            Message message = new Message();
+            message.setMessage(  "Hello World" );
+            message.setStatus( Message.HELLO );
+            workingMemory.insert( message );
+            workingMemory.fireAllRules();   
+            
+            
+        } catch (Throwable t) {
+            t.printStackTrace();
+        }
+    }
+
+    /**
+     * Please note that this is the "low level" rule assembly API.
+     */
+	private static RuleBase readDecisionTable() throws Exception {
+		//read in the source
+        final SpreadsheetCompiler converter = new SpreadsheetCompiler();
+        final String drl = converter.compile( "/Sample.xls", InputType.XLS );
+		PackageBuilder builder = new PackageBuilder();
+		builder.addPackageFromDrl( new StringReader( drl ) );
+		Package pkg = builder.getPackage();
+		RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+		ruleBase.addPackage( pkg );
+		return ruleBase;
+	}
+
+	public static class Message {
+		public static final int HELLO = 0;
+		public static final int GOODBYE = 1;
+		
+		private String message;
+		
+		private int status;
+		
+		public String getMessage() {
+			return this.message;
+		}
+		
+		public void setMessage(String message) {
+			this.message = message;
+		}
+		
+		public int getStatus() {
+			return this.status;
+		}
+		
+		public void setStatus( int status ) {
+			this.status = status;
+		}
+	}
+    
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/RuleFlowLauncherSample_4.java.template
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/RuleFlowLauncherSample_4.java.template	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/RuleFlowLauncherSample_4.java.template	2009-03-05 23:05:55 UTC (rev 25508)
@@ -0,0 +1,99 @@
+package com.sample;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.WorkingMemory;
+import org.drools.compiler.PackageBuilder;
+import org.drools.rule.Package;
+
+/**
+ * This is a sample file to launch a ruleflow.
+ */
+public class RuleFlowTest {
+
+    public static final void main(String[] args) {
+        try {
+        	
+        	//load up the rulebase
+            RuleBase ruleBase = readRule();
+            WorkingMemory workingMemory = ruleBase.newStatefulSession();
+            
+            //go !
+            Message message = new Message();
+            message.setMessage(  "Hello World" );
+            message.setStatus( Message.HELLO );
+            workingMemory.insert( message );
+            
+            workingMemory.startProcess("com.sample.ruleflow");
+            workingMemory.fireAllRules();   
+            
+        } catch (Throwable t) {
+            t.printStackTrace();
+        }
+    }
+
+    /**
+     * Please note that this is the "low level" rule assembly API.
+     */
+	private static RuleBase readRule() throws Exception {
+		//read in the source
+		Reader source = new InputStreamReader( RuleFlowTest.class.getResourceAsStream( "/ruleflow.drl" ) );
+		
+		//optionally read in the DSL (if you are using it).
+		//Reader dsl = new InputStreamReader( DroolsTest.class.getResourceAsStream( "/mylang.dsl" ) );
+
+		//Use package builder to build up a rule package.
+		//An alternative lower level class called "DrlParser" can also be used...
+		
+		PackageBuilder builder = new PackageBuilder();
+
+		//this wil parse and compile in one step
+		//NOTE: There are 2 methods here, the one argument one is for normal DRL.
+		builder.addPackageFromDrl( source );
+
+		//Use the following instead of above if you are using a DSL:
+		//builder.addPackageFromDrl( source, dsl );
+		
+		//add ruleflow
+		source = new InputStreamReader( RuleFlowTest.class.getResourceAsStream( "/ruleflow.rfm" ) );
+		builder.addRuleFlow(source);
+		
+		//get the compiled package (which is serializable)
+		Package pkg = builder.getPackage();
+		
+		//add the package to a rulebase (deploy the rule package).
+		RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+		ruleBase.addPackage( pkg );
+		
+		return ruleBase;
+	}
+	
+	public static class Message {
+		public static final int HELLO = 0;
+		public static final int GOODBYE = 1;
+		
+		private String message;
+		
+		private int status;
+		
+		public String getMessage() {
+			return this.message;
+		}
+		
+		public void setMessage(String message) {
+			this.message = message;
+		}
+		
+		public int getStatus() {
+			return this.status;
+		}
+		
+		public void setStatus( int status ) {
+			this.status = status;
+		}
+	}
+    
+}

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/RuleLauncherSample_4.java.template
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/RuleLauncherSample_4.java.template	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/RuleLauncherSample_4.java.template	2009-03-05 23:05:55 UTC (rev 25508)
@@ -0,0 +1,93 @@
+package com.sample;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.WorkingMemory;
+import org.drools.compiler.PackageBuilder;
+import org.drools.rule.Package;
+
+/**
+ * This is a sample file to launch a rule package from a rule source file.
+ */
+public class DroolsTest {
+
+    public static final void main(String[] args) {
+        try {
+        	
+        	//load up the rulebase
+            RuleBase ruleBase = readRule();
+            WorkingMemory workingMemory = ruleBase.newStatefulSession();
+            
+            //go !
+            Message message = new Message();
+            message.setMessage(  "Hello World" );
+            message.setStatus( Message.HELLO );
+            workingMemory.insert( message );
+            workingMemory.fireAllRules();   
+            
+            
+        } catch (Throwable t) {
+            t.printStackTrace();
+        }
+    }
+
+    /**
+     * Please note that this is the "low level" rule assembly API.
+     */
+	private static RuleBase readRule() throws Exception {
+		//read in the source
+		Reader source = new InputStreamReader( DroolsTest.class.getResourceAsStream( "/Sample.drl" ) );
+		
+		//optionally read in the DSL (if you are using it).
+		//Reader dsl = new InputStreamReader( DroolsTest.class.getResourceAsStream( "/mylang.dsl" ) );
+
+		//Use package builder to build up a rule package.
+		//An alternative lower level class called "DrlParser" can also be used...
+		
+		PackageBuilder builder = new PackageBuilder();
+
+		//this wil parse and compile in one step
+		//NOTE: There are 2 methods here, the one argument one is for normal DRL.
+		builder.addPackageFromDrl( source );
+
+		//Use the following instead of above if you are using a DSL:
+		//builder.addPackageFromDrl( source, dsl );
+		
+		//get the compiled package (which is serializable)
+		Package pkg = builder.getPackage();
+		
+		//add the package to a rulebase (deploy the rule package).
+		RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+		ruleBase.addPackage( pkg );
+		return ruleBase;
+	}
+	
+	public static class Message {
+		public static final int HELLO = 0;
+		public static final int GOODBYE = 1;
+		
+		private String message;
+		
+		private int status;
+		
+		public String getMessage() {
+			return this.message;
+		}
+		
+		public void setMessage(String message) {
+			this.message = message;
+		}
+		
+		public int getStatus() {
+			return this.status;
+		}
+		
+		public void setStatus( int status ) {
+			this.status = status;
+		}
+	}
+    
+}

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ruleflow_4.drl.template
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ruleflow_4.drl.template	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ruleflow_4.drl.template	2009-03-05 23:05:55 UTC (rev 25508)
@@ -0,0 +1,23 @@
+package com.sample
+ 
+import com.sample.RuleFlowTest.Message;
+ 
+rule "Hello World" ruleflow-group "hello"
+	when
+		m : Message( status == Message.HELLO, message : message )
+	then
+		System.out.println( message ); 
+		m.setMessage( "Goodbye cruel world" );
+		m.setStatus( Message.GOODBYE );
+		update( m );
+end
+
+rule "GoodBye" ruleflow-group "goodbye"
+	no-loop true
+	when
+		m : Message( status == Message.GOODBYE, message : message )
+	then
+		System.out.println( message ); 
+		m.setMessage( message );
+		
+end
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ruleflow_4.rf.template
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ruleflow_4.rf.template	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ruleflow_4.rf.template	2009-03-05 23:05:55 UTC (rev 25508)
@@ -0,0 +1,211 @@
+<org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper id="1" serialization="custom">
+  <org.drools.eclipse.flow.common.editor.core.ProcessWrapper>
+    <default>
+      <elements id="2">
+        <entry>
+          <string>2-Wrapper</string>
+          <org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper id="3" serialization="custom">
+            <org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+              <default>
+                <constraint id="4">
+                  <x>190</x>
+                  <y>101</y>
+                  <width>80</width>
+                  <height>40</height>
+                </constraint>
+                <element class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" id="5">
+                  <ruleFlowGroup>hello</ruleFlowGroup>
+                  <id>2</id>
+                  <name>hello</name>
+                  <incomingConnections id="6">
+                    <org.drools.ruleflow.core.impl.ConnectionImpl id="7">
+                      <type>1</type>
+                      <from class="org.drools.ruleflow.core.impl.StartNodeImpl" id="8">
+                        <id>1</id>
+                        <name>Start</name>
+                        <incomingConnections id="9"/>
+                        <outgoingConnections id="10">
+                          <org.drools.ruleflow.core.impl.ConnectionImpl reference="7"/>
+                        </outgoingConnections>
+                      </from>
+                      <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="5"/>
+                    </org.drools.ruleflow.core.impl.ConnectionImpl>
+                  </incomingConnections>
+                  <outgoingConnections id="11">
+                    <org.drools.ruleflow.core.impl.ConnectionImpl id="12">
+                      <type>1</type>
+                      <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="5"/>
+                      <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" id="13">
+                        <ruleFlowGroup>goodbye</ruleFlowGroup>
+                        <id>3</id>
+                        <name>goodbye</name>
+                        <incomingConnections id="14">
+                          <org.drools.ruleflow.core.impl.ConnectionImpl reference="12"/>
+                        </incomingConnections>
+                        <outgoingConnections id="15">
+                          <org.drools.ruleflow.core.impl.ConnectionImpl id="16">
+                            <type>1</type>
+                            <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="13"/>
+                            <to class="org.drools.ruleflow.core.impl.EndNodeImpl" id="17">
+                              <id>4</id>
+                              <name>End</name>
+                              <incomingConnections id="18">
+                                <org.drools.ruleflow.core.impl.ConnectionImpl reference="16"/>
+                              </incomingConnections>
+                              <outgoingConnections id="19"/>
+                            </to>
+                          </org.drools.ruleflow.core.impl.ConnectionImpl>
+                        </outgoingConnections>
+                      </to>
+                    </org.drools.ruleflow.core.impl.ConnectionImpl>
+                  </outgoingConnections>
+                </element>
+                <incomingConnections id="20">
+                  <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="21" serialization="custom">
+                    <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+                      <default>
+                        <type>1</type>
+                        <bendpoints id="22"/>
+                        <source class="org.drools.eclipse.flow.ruleflow.core.StartNodeWrapper" id="23" serialization="custom">
+                          <org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+                            <default>
+                              <constraint id="24">
+                                <x>57</x>
+                                <y>100</y>
+                                <width>80</width>
+                                <height>40</height>
+                              </constraint>
+                              <element class="org.drools.ruleflow.core.impl.StartNodeImpl" reference="8"/>
+                              <incomingConnections id="25"/>
+                              <outgoingConnections id="26">
+                                <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="21"/>
+                              </outgoingConnections>
+                            </default>
+                          </org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+                        </source>
+                        <target class="org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper" reference="3"/>
+                      </default>
+                    </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+                    <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+                      <default>
+                        <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="7"/>
+                      </default>
+                    </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+                  </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+                </incomingConnections>
+                <outgoingConnections id="27">
+                  <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="28" serialization="custom">
+                    <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+                      <default>
+                        <type>1</type>
+                        <bendpoints id="29"/>
+                        <source class="org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper" reference="3"/>
+                        <target class="org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper" id="30" serialization="custom">
+                          <org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+                            <default>
+                              <constraint id="31">
+                                <x>336</x>
+                                <y>101</y>
+                                <width>80</width>
+                                <height>40</height>
+                              </constraint>
+                              <element class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="13"/>
+                              <incomingConnections id="32">
+                                <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="28"/>
+                              </incomingConnections>
+                              <outgoingConnections id="33">
+                                <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="34" serialization="custom">
+                                  <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+                                    <default>
+                                      <type>1</type>
+                                      <bendpoints id="35"/>
+                                      <source class="org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper" reference="30"/>
+                                      <target class="org.drools.eclipse.flow.ruleflow.core.EndNodeWrapper" id="36" serialization="custom">
+                                        <org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+                                          <default>
+                                            <constraint id="37">
+                                              <x>473</x>
+                                              <y>102</y>
+                                              <width>80</width>
+                                              <height>40</height>
+                                            </constraint>
+                                            <element class="org.drools.ruleflow.core.impl.EndNodeImpl" reference="17"/>
+                                            <incomingConnections id="38">
+                                              <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="34"/>
+                                            </incomingConnections>
+                                            <outgoingConnections id="39"/>
+                                            <parent class="org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper" reference="1"/>
+                                          </default>
+                                        </org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+                                      </target>
+                                    </default>
+                                  </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+                                  <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+                                    <default>
+                                      <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="16"/>
+                                    </default>
+                                  </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+                                </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+                              </outgoingConnections>
+                              <parent class="org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper" reference="1"/>
+                            </default>
+                          </org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+                        </target>
+                      </default>
+                    </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+                    <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+                      <default>
+                        <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="12"/>
+                      </default>
+                    </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+                  </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+                </outgoingConnections>
+                <parent class="org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper" reference="1"/>
+              </default>
+            </org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+          </org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper>
+        </entry>
+        <entry>
+          <string>4-Wrapper</string>
+          <org.drools.eclipse.flow.ruleflow.core.EndNodeWrapper reference="36"/>
+        </entry>
+        <entry>
+          <string>3-Wrapper</string>
+          <org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper reference="30"/>
+        </entry>
+        <entry>
+          <string>1-Wrapper</string>
+          <org.drools.eclipse.flow.ruleflow.core.StartNodeWrapper reference="23"/>
+        </entry>
+      </elements>
+      <process class="org.drools.ruleflow.core.impl.RuleFlowProcessImpl" id="40">
+        <nodes id="41">
+          <entry>
+            <long>2</long>
+            <org.drools.ruleflow.core.impl.RuleSetNodeImpl reference="5"/>
+          </entry>
+          <entry>
+            <long>4</long>
+            <org.drools.ruleflow.core.impl.EndNodeImpl reference="17"/>
+          </entry>
+          <entry>
+            <long>1</long>
+            <org.drools.ruleflow.core.impl.StartNodeImpl reference="8"/>
+          </entry>
+          <entry>
+            <long>3</long>
+            <org.drools.ruleflow.core.impl.RuleSetNodeImpl reference="13"/>
+          </entry>
+        </nodes>
+        <variables id="42"/>
+        <lastNodeId>4</lastNodeId>
+        <id>com.sample.ruleflow</id>
+        <name>Ruleflow</name>
+        <version>1.0</version>
+        <type>RuleFlow</type>
+        <packageName>com.sample</packageName>
+      </process>
+      <routerLayout>2</routerLayout>
+    </default>
+  </org.drools.eclipse.flow.common.editor.core.ProcessWrapper>
+</org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper>
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ruleflow_4.rfm.template
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ruleflow_4.rfm.template	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ruleflow_4.rfm.template	2009-03-05 23:05:55 UTC (rev 25508)
@@ -0,0 +1,73 @@
+<org.drools.ruleflow.core.impl.RuleFlowProcessImpl id="1">
+  <nodes id="2">
+    <entry>
+      <long>2</long>
+      <org.drools.ruleflow.core.impl.RuleSetNodeImpl id="3">
+        <ruleFlowGroup>hello</ruleFlowGroup>
+        <id>2</id>
+        <name>hello</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.RuleSetNodeImpl" id="11">
+              <ruleFlowGroup>goodbye</ruleFlowGroup>
+              <id>3</id>
+              <name>goodbye</name>
+              <incomingConnections id="12">
+                <org.drools.ruleflow.core.impl.ConnectionImpl reference="10"/>
+              </incomingConnections>
+              <outgoingConnections id="13">
+                <org.drools.ruleflow.core.impl.ConnectionImpl id="14">
+                  <type>1</type>
+                  <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="11"/>
+                  <to class="org.drools.ruleflow.core.impl.EndNodeImpl" id="15">
+                    <id>4</id>
+                    <name>End</name>
+                    <incomingConnections id="16">
+                      <org.drools.ruleflow.core.impl.ConnectionImpl reference="14"/>
+                    </incomingConnections>
+                    <outgoingConnections id="17"/>
+                  </to>
+                </org.drools.ruleflow.core.impl.ConnectionImpl>
+              </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.EndNodeImpl reference="15"/>
+    </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="11"/>
+    </entry>
+  </nodes>
+  <variables id="18"/>
+  <lastNodeId>4</lastNodeId>
+  <id>com.sample.ruleflow</id>
+  <name>Ruleflow</name>
+  <version>1.0</version>
+  <type>RuleFlow</type>
+  <packageName>com.sample</packageName>
+</org.drools.ruleflow.core.impl.RuleFlowProcessImpl>
\ No newline at end of file




More information about the jboss-svn-commits mailing list