[jboss-svn-commits] JBL Code SVN: r25026 - in labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main: resources/META-INF and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jan 30 15:08:02 EST 2009


Author: salaboy21
Date: 2009-01-30 15:08:02 -0500 (Fri, 30 Jan 2009)
New Revision: 25026

Modified:
   labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/JPAProcessInstanceManager.java
   labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/ProcessInstanceInfo.java
   labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariableInstanceInfo.java
   labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/resources/META-INF/orm.xml
Log:
readProcessInstance modifications to retrive processVariables 

Modified: labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/JPAProcessInstanceManager.java
===================================================================
--- labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/JPAProcessInstanceManager.java	2009-01-30 18:51:32 UTC (rev 25025)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/JPAProcessInstanceManager.java	2009-01-30 20:08:02 UTC (rev 25026)
@@ -25,6 +25,7 @@
 import org.drools.process.instance.impl.ProcessInstanceImpl;
 import org.drools.ruleflow.instance.RuleFlowProcessInstance;
 import org.drools.util.StringUtils;
+import org.drools.workflow.instance.context.WorkflowContextInstance;
 
 public class JPAProcessInstanceManager implements ProcessInstanceManager {
 
@@ -47,6 +48,23 @@
         processInstanceInfo.updateLastReadDate();
     }
 
+    private ProcessInstance resolveInputVariables(ProcessInstance processInstance) {
+        
+        VariableScopeInstance variableScopeInstance = new VariableScopeInstance();
+
+        List<VariableInstanceInfo> variablesInfo = (List<VariableInstanceInfo>)manager.createNamedQuery("VariableInstancesInfoByProcessId")
+                    .setParameter("processId", processInstance.getId())
+                    .getResultList();
+        for(VariableInstanceInfo variable : variablesInfo){
+            variable.getClass().getName();
+            //@TODO: set variable in the variableScopeInstance
+            //variableScopeInstance.setVariable(name, this);
+        }
+        processInstance.addContextInstance(VariableScope.VARIABLE_SCOPE, variableScopeInstance);
+
+        return processInstance;
+    }
+
     private void resolveOutputVariables(ProcessInstanceInfo processInstanceInfo) {
         VariableScopeInstance variableScopeInstance =
                     (VariableScopeInstance)
@@ -66,6 +84,7 @@
             VariableInstanceInfo variable = persistenceStrategy.persistVariable(key, processVariables.get(key));
             manager.persist(((JPAPersistedVariable)variable).getRealVariable());
             updateVariableInstanceInfo(variable);
+            variable.setProcessInstanceInfo(processInstanceInfo);
             processInstanceInfo.addVariables(variable);
         }
     }
@@ -82,6 +101,9 @@
         }
         processInstanceInfo.updateLastReadDate();
         ProcessInstance processInstance = (ProcessInstance) processInstanceInfo.getProcessInstance();
+
+        
+
         Process process = ((InternalRuleBase) workingMemory.getRuleBase()).getProcess(processInstance.getProcessId());
         if (process == null) {
         	throw new IllegalArgumentException(
@@ -92,6 +114,7 @@
             processInstance.setWorkingMemory((InternalWorkingMemory) workingMemory);
             ((ProcessInstanceImpl) processInstance).reconnect();
         }
+        processInstance = resolveInputVariables(processInstance);
         return processInstance;
     }
 

Modified: labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/ProcessInstanceInfo.java
===================================================================
--- labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/ProcessInstanceInfo.java	2009-01-30 18:51:32 UTC (rev 25025)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/ProcessInstanceInfo.java	2009-01-30 20:08:02 UTC (rev 25026)
@@ -51,8 +51,8 @@
 	private Set<String> eventTypes = new HashSet<String>();
 	private @Transient ProcessInstance processInstance;
 
-    @OneToMany(cascade=CascadeType.ALL)
-    @JoinColumn(name="process_instance")
+    @OneToMany(cascade=CascadeType.ALL, mappedBy="processInstanceInfo")
+   
     private List<VariableInstanceInfo> variables = new ArrayList<VariableInstanceInfo>();
 
 
@@ -100,7 +100,7 @@
 			try {
 				ByteArrayInputStream bais = new ByteArrayInputStream(processInstanceByteArray);
 				MarshallerReaderContext context = new MarshallerReaderContext(bais, null, null, null);
-				processInstance = InputMarshaller.readProcessInstance(context);
+				processInstance = InputMarshaller.readProcessInstance(context,false);
 				context.close();
 			} catch (IOException e) {
 				e.printStackTrace();

Modified: labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariableInstanceInfo.java
===================================================================
--- labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariableInstanceInfo.java	2009-01-30 18:51:32 UTC (rev 25025)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariableInstanceInfo.java	2009-01-30 20:08:02 UTC (rev 25026)
@@ -30,6 +30,8 @@
 import javax.persistence.Id;
 import javax.persistence.Inheritance;
 import javax.persistence.InheritanceType;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
 
 
 
@@ -45,7 +47,9 @@
     @Id @GeneratedValue(strategy=GenerationType.AUTO)
     private Long id;
     private String name;
-   
+    @ManyToOne()
+    @JoinColumn(name="processInstanceInfoId")
+    private ProcessInstanceInfo processInstanceInfo;
 
     public Long getId() {
         return id;
@@ -69,6 +73,20 @@
         this.name = name;
     }
 
+    /**
+     * @return the processInstanceInfo
+     */
+    public ProcessInstanceInfo getProcessInstanceInfo() {
+        return processInstanceInfo;
+    }
+
+    /**
+     * @param processInstanceInfo the processInstanceInfo to set
+     */
+    public void setProcessInstanceInfo(ProcessInstanceInfo processInstanceInfo) {
+        this.processInstanceInfo = processInstanceInfo;
+    }
+
    
   
 

Modified: labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/resources/META-INF/orm.xml
===================================================================
--- labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/resources/META-INF/orm.xml	2009-01-30 18:51:32 UTC (rev 25025)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/resources/META-INF/orm.xml	2009-01-30 20:08:02 UTC (rev 25026)
@@ -13,4 +13,15 @@
     :type in elements(processInstanceInfo.eventTypes)
           </query>
       </named-query>
+
+      <named-query name="VariableInstancesInfoByProcessId">
+          <query>
+select
+    v
+from
+    VariableInstanceInfo v
+where
+    v.processInstanceInfo.id = :processId
+          </query>
+      </named-query>
 </entity-mappings>




More information about the jboss-svn-commits mailing list