[jboss-svn-commits] JBL Code SVN: r25136 - in labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src: test/java/org/drools/persistence/session and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Feb 6 09:13:33 EST 2009


Author: salaboy21
Date: 2009-02-06 09:13:33 -0500 (Fri, 06 Feb 2009)
New Revision: 25136

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/VariablePersistenceStrategyFactory.java
   labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/test/java/org/drools/persistence/session/MyEntity.java
Log:
Preserver the old persistence strategy - Not working.. refactoring

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-02-06 13:53:12 UTC (rev 25135)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/JPAProcessInstanceManager.java	2009-02-06 14:13:33 UTC (rev 25136)
@@ -90,9 +90,16 @@
                 manager.persist(((JPAPersistedVariable)variable).getRealVariable());
                 updateVariableInstanceInfo(variable);
             }
-            variable.setProcessInstanceInfo(processInstanceInfo);
-            processInstanceInfo.addVariables(variable);
+            if(variable != null){
+                variable.setProcessInstanceInfo(processInstanceInfo);
+                processInstanceInfo.addVariables(variable);
+            }
         }
+        //If we wont find any VariableInstanceInfo that mactches with the persistence strategy,
+        //we just serialize the variables inside the blob
+        if(processInstanceInfo.getVariables().size() == 0){
+            processInstanceInfo.setSerializeVariables(true);
+        }
     }
 
 

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-02-06 13:53:12 UTC (rev 25135)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/ProcessInstanceInfo.java	2009-02-06 14:13:33 UTC (rev 25136)
@@ -44,6 +44,7 @@
 	private Date lastReadDate;
 	private Date lastModificationDate;
 	private int state;
+    private boolean serializeVariables=false;
 	// TODO How do I mark a process instance info as dirty when the process instance
 	// has changed (so that byte array is regenerated and saved) ?
 	private @Lob byte[] processInstanceByteArray;
@@ -100,14 +101,14 @@
 			try {
 				ByteArrayInputStream bais = new ByteArrayInputStream(processInstanceByteArray);
 				MarshallerReaderContext context = new MarshallerReaderContext(bais, null, null, null);
-				processInstance = InputMarshaller.readProcessInstance(context,false);
+				processInstance = InputMarshaller.readProcessInstance(context,serializeVariables);
 				context.close();
 			} catch (IOException e) {
 				e.printStackTrace();
 				throw new IllegalArgumentException(
 					"IOException while loading process instance: " + e.getMessage());
 			}
-            //resolveInputVariables();
+            
 
 		}
 		return processInstance;
@@ -118,7 +119,7 @@
 		ByteArrayOutputStream baos = new ByteArrayOutputStream();
 		try {
 			MarshallerWriteContext context = new MarshallerWriteContext(baos, null, null, null, null);
-			OutputMarshaller.writeProcessInstance(context, (RuleFlowProcessInstance) processInstance, false);
+			OutputMarshaller.writeProcessInstance(context, (RuleFlowProcessInstance) processInstance, serializeVariables);
 			context.close();
 		} catch (IOException e) {
 			throw new IllegalArgumentException(
@@ -156,6 +157,12 @@
     public void clearVariables(){
         this.getVariables().clear();
     }
+    public boolean getSerializeVariables(){
+        return this.serializeVariables;
+    }
+    public void setSerializeVariables(boolean serializeVariables) {
+        this.serializeVariables = serializeVariables;
+    }
 
   
 }

Modified: labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariablePersistenceStrategyFactory.java
===================================================================
--- labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariablePersistenceStrategyFactory.java	2009-02-06 13:53:12 UTC (rev 25135)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariablePersistenceStrategyFactory.java	2009-02-06 14:13:33 UTC (rev 25136)
@@ -35,8 +35,8 @@
         VariablePersistenceStrategy vPRS = new VariablePersistenceStrategy();
         Map<String, String> types = new HashMap<String, String>();
 
-        types.put("javax.persistence.Entity", "org.drools.persistence.processinstance.JPAVariablePersister");
-        types.put("java.io.Serializable", "org.drools.persistence.processinstance.SerializableVariablePersister");
+       // types.put("javax.persistence.Entity", "org.drools.persistence.processinstance.JPAVariablePersister");
+        //types.put("java.io.Serializable", "org.drools.persistence.processinstance.SerializableVariablePersister");
         vPRS.setTypes(types);
         return vPRS;
     }

Modified: labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/test/java/org/drools/persistence/session/MyEntity.java
===================================================================
--- labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/test/java/org/drools/persistence/session/MyEntity.java	2009-02-06 13:53:12 UTC (rev 25135)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/test/java/org/drools/persistence/session/MyEntity.java	2009-02-06 14:13:33 UTC (rev 25136)
@@ -17,6 +17,7 @@
 
 package org.drools.persistence.session;
 
+import java.io.Serializable;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
@@ -28,7 +29,7 @@
  * @author salaboy
  */
 @Entity
-public class MyEntity {
+public class MyEntity implements Serializable {
     @Id @GeneratedValue(strategy=GenerationType.AUTO)
     private Long id;
     private String test;




More information about the jboss-svn-commits mailing list