[jboss-svn-commits] JBL Code SVN: r30437 - in labs/jbossrules/trunk: drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Dec 2 12:04:11 EST 2009


Author: KrisVerlaenen
Date: 2009-12-02 12:04:10 -0500 (Wed, 02 Dec 2009)
New Revision: 30437

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/WorkflowProcessInstanceImpl.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java
   labs/jbossrules/trunk/drools-process/drools-gwt-console/src/main/java/org/drools/integration/console/DroolsFlowCommandDelegate.java
Log:
JBRULES-2357: BPMN2 support in Guvnor and gwt-console
 - update Guvnor processes folder + fixed issue with variables in gzt-console

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/WorkflowProcessInstanceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/WorkflowProcessInstanceImpl.java	2009-12-02 14:39:02 UTC (rev 30436)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/WorkflowProcessInstanceImpl.java	2009-12-02 17:04:10 UTC (rev 30437)
@@ -186,6 +186,33 @@
 		return variableScopeInstance.getVariable(name);
 	}
 	
+	public Map<String, Object> getVariables() {
+        // for disconnected process instances, try going through the variable scope instances
+        // (as the default variable scope cannot be retrieved as the link to the process could
+        // be null and the associated working memory is no longer accessible)
+        if (getWorkingMemory() == null) {
+            List<ContextInstance> variableScopeInstances = 
+                getContextInstances(VariableScope.VARIABLE_SCOPE);
+            if (variableScopeInstances == null) {
+                return null;
+            }
+            Map<String, Object> result = new HashMap<String, Object>();
+            for (ContextInstance contextInstance: variableScopeInstances) {
+                Map<String, Object> variables = 
+                    ((VariableScopeInstance) contextInstance).getVariables();
+                result.putAll(variables);
+            }
+            return result;
+        }
+        // else retrieve the variable scope
+        VariableScopeInstance variableScopeInstance = (VariableScopeInstance)
+            getContextInstance(VariableScope.VARIABLE_SCOPE);
+        if (variableScopeInstance == null) {
+            return null;
+        }
+        return variableScopeInstance.getVariables();
+	}
+	
 	public void setVariable(String name, Object value) {
 		VariableScopeInstance variableScopeInstance = (VariableScopeInstance)
 			getContextInstance(VariableScope.VARIABLE_SCOPE);

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java	2009-12-02 14:39:02 UTC (rev 30436)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java	2009-12-02 17:04:10 UTC (rev 30437)
@@ -73,9 +73,9 @@
             return new DecisionTableXLSWidget( asset, viewer );
 
         } else if ( asset.metaData.format.equals( AssetFormats.RULE_FLOW_RF ) ) {
-            //            return new RuleFlowUploadWidget(asset, viewer);
-            return new RuleFlowWrapper( asset,
-                                        viewer );
+            return new RuleFlowWrapper( asset, viewer );
+        } else if ( asset.metaData.format.equals( AssetFormats.BPMN2_PROCESS ) ) {
+            return new RuleFlowWrapper( asset, viewer );
         } else if ( asset.metaData.format.equals( AssetFormats.DRL ) ) {
             return new DrlEditor( asset );
         } else if ( asset.metaData.format.equals( AssetFormats.ENUMERATION ) ) {
@@ -119,6 +119,8 @@
                     "business_rule.gif" );
         result.put( AssetFormats.RULE_FLOW_RF,
                     "ruleflow_small.gif" );
+        result.put( AssetFormats.BPMN2_PROCESS,
+                    "ruleflow_small.gif" );
         result.put( AssetFormats.TEST_SCENARIO,
                     "test_manager.gif" );
         result.put( AssetFormats.ENUMERATION,

Modified: labs/jbossrules/trunk/drools-process/drools-gwt-console/src/main/java/org/drools/integration/console/DroolsFlowCommandDelegate.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-gwt-console/src/main/java/org/drools/integration/console/DroolsFlowCommandDelegate.java	2009-12-02 14:39:02 UTC (rev 30436)
+++ labs/jbossrules/trunk/drools-process/drools-gwt-console/src/main/java/org/drools/integration/console/DroolsFlowCommandDelegate.java	2009-12-02 17:04:10 UTC (rev 30437)
@@ -26,6 +26,7 @@
 import org.drools.runtime.EnvironmentName;
 import org.drools.runtime.StatefulKnowledgeSession;
 import org.drools.runtime.process.ProcessInstance;
+import org.drools.workflow.instance.impl.WorkflowProcessInstanceImpl;
 
 public class DroolsFlowCommandDelegate {
 	
@@ -137,14 +138,12 @@
 	public Map<String, Object> getProcessInstanceVariables(String processInstanceId) {
 		ProcessInstance processInstance = ksession.getProcessInstance(new Long(processInstanceId));
 		if (processInstance != null) {
-			VariableScopeInstance variableScope = (VariableScopeInstance) 
-				((org.drools.process.instance.ProcessInstance) processInstance)
-					.getContextInstance(VariableScope.VARIABLE_SCOPE);
-			if (variableScope == null) {
+		    Map<String, Object> variables = 
+		        ((WorkflowProcessInstanceImpl) processInstance).getVariables();
+            if (variables == null) {
 				return new HashMap<String, Object>();
 			}
 			// filter out null values
-			Map<String, Object> variables = variableScope.getVariables();
 			Map<String, Object> result = new HashMap<String, Object>();
 			for (Map.Entry<String, Object> entry: variables.entrySet()) {
 				if (entry.getValue() != null) {



More information about the jboss-svn-commits mailing list