[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