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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Feb 10 10:11:15 EST 2009


Author: salaboy21
Date: 2009-02-10 10:11:15 -0500 (Tue, 10 Feb 2009)
New Revision: 25207

Added:
   labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/test/resources/META-INF/PersistenceStrategies.conf
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/VariablePersistenceStrategy.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/main/java/org/drools/persistence/session/SingleSessionCommandService.java
   labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/test/resources/META-INF/drools.session.conf
Log:
Preserver the old persistence strategy - Working with loading properties from drools.session.conf and in this case PersistenceStrategies.conf

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-10 14:38:19 UTC (rev 25206)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/JPAProcessInstanceManager.java	2009-02-10 15:11:15 UTC (rev 25207)
@@ -1,5 +1,8 @@
 package org.drools.persistence.processinstance;
 
+import org.drools.persistence.processinstance.*;
+import org.drools.persistence.processinstance.VariablePersistenceStrategy;
+import org.drools.persistence.processinstance.VariablePersistenceStrategyFactory;
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -56,10 +59,12 @@
                     .setParameter("processId", processInstance.getId())
                     .getResultList();
         for(VariableInstanceInfo variableInfo : variablesInfo){
-            VariablePersistenceStrategy persistenceStrategy = VariablePersistenceStrategyFactory.getVariablePersistenceStrategyFactory();
+            VariablePersistenceStrategy persistenceStrategy =
+                        VariablePersistenceStrategyFactory.getVariablePersistenceStrategyFactory();
             variableScopeInstance.setVariable(variableInfo.getName(), persistenceStrategy.getVariable(variableInfo));
         }
         //@TODO: hmm i don't know why processIntance don't have a setContextInstance method
+        variableScopeInstance.setProcessInstance(processInstance);
         ((RuleFlowProcessInstance)processInstance).setContextInstance(VariableScope.VARIABLE_SCOPE, variableScopeInstance);
 
         return processInstance;
@@ -125,7 +130,9 @@
         processInstance.setProcess(process);
         if (processInstance.getWorkingMemory() == null) {
             processInstance.setWorkingMemory((InternalWorkingMemory) workingMemory);
-            processInstance = resolveInputVariables(processInstance);
+            if(!processInstanceInfo.getSerializeVariables()){
+                processInstance = resolveInputVariables(processInstance);
+            }
             ((ProcessInstanceImpl) processInstance).reconnect();
         }
         

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-10 14:38:19 UTC (rev 25206)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/ProcessInstanceInfo.java	2009-02-10 15:11:15 UTC (rev 25207)
@@ -124,7 +124,7 @@
 		} catch (IOException e) {
 			throw new IllegalArgumentException(
 				"IOException while storing process instance " + processInstance.getId() + ": " + e.getMessage());
-		} 
+		}
         byte[] newByteArray = baos.toByteArray();
 		if (!Arrays.equals(newByteArray, processInstanceByteArray)) {
 			this.state = processInstance.getState();

Modified: labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariablePersistenceStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariablePersistenceStrategy.java	2009-02-10 14:38:19 UTC (rev 25206)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariablePersistenceStrategy.java	2009-02-10 15:11:15 UTC (rev 25207)
@@ -20,11 +20,10 @@
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.Properties;
 import java.util.logging.Level;
 import java.util.logging.Logger;
+import org.drools.util.ChainedProperties;
 
 /**
  *
@@ -32,7 +31,7 @@
  */
 public class VariablePersistenceStrategy  {
 
-    private Map<String, String> types = new HashMap<String, String>();
+    private Properties types;
     
     
 
@@ -107,7 +106,7 @@
         Annotation[] annotations = o.getClass().getDeclaredAnnotations();
         //First annotations, because annotations have more precedence (??)
         for(Annotation annotation : annotations){
-            String persisterFQN = getTypes().get(annotation.annotationType().getName());
+            String persisterFQN = getTypes().getProperty(annotation.annotationType().getName());
             if(persisterFQN != null && !persisterFQN.equals("")){
                 return persisterFQN;
             }
@@ -115,7 +114,7 @@
         //Then interfaces
         Class[] interfaces = o.getClass().getInterfaces();
         for(Class clazz : interfaces){
-            String persisterFQN = getTypes().get(clazz.getName());
+            String persisterFQN = getTypes().getProperty(clazz.getName());
             if(persisterFQN != null && !persisterFQN.equals("")){
                 return persisterFQN;
             }
@@ -126,14 +125,14 @@
     /**
      * @return the types
      */
-    public Map<String, String> getTypes() {
+    public Properties getTypes() {
         return types;
     }
 
     /**
      * @param types the types to set
      */
-    public void setTypes(Map<String, String> types) {
+    public void setTypes(Properties types) {
         this.types = types;
     }
   

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-10 14:38:19 UTC (rev 25206)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariablePersistenceStrategyFactory.java	2009-02-10 15:11:15 UTC (rev 25207)
@@ -18,8 +18,14 @@
 package org.drools.persistence.processinstance;
 
 
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Properties;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.drools.util.ChainedProperties;
 
 
 /**
@@ -28,16 +34,43 @@
  */
 
 public class VariablePersistenceStrategyFactory{
+    private static VariablePersistenceStrategy vPRS;
+
     public VariablePersistenceStrategyFactory(){
 
     }
+    public static VariablePersistenceStrategy getVariablePersistenceStrategyFactory(String propsFile){
+        Properties props = new Properties();
+        try {
+            InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("META-INF/"+propsFile);
+            if (is != null){
+                props.load(is);
+            }
+        } catch (IOException ex) {
+            Logger.getLogger(VariablePersistenceStrategyFactory.class.getName()).log(Level.SEVERE, null, ex);
+        }
+
+        if(vPRS == null) {
+            vPRS = new VariablePersistenceStrategy();
+        }
+        vPRS.setTypes(props);
+        return vPRS;
+
+        //types.put("javax.persistence.Entity", "org.drools.persistence.processinstance.JPAVariablePersister");
+        //types.put("java.io.Serializable", "org.drools.persistence.processinstance.SerializableVariablePersister");
+        
+        
+    }
     public static VariablePersistenceStrategy getVariablePersistenceStrategyFactory(){
-        VariablePersistenceStrategy vPRS = new VariablePersistenceStrategy();
-        Map<String, String> types = new HashMap<String, String>();
 
-       // types.put("javax.persistence.Entity", "org.drools.persistence.processinstance.JPAVariablePersister");
+        if(vPRS == null) {
+            vPRS = new VariablePersistenceStrategy();
+        }
+        return vPRS;
+
+        //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/main/java/org/drools/persistence/session/SingleSessionCommandService.java
===================================================================
--- labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/session/SingleSessionCommandService.java	2009-02-10 14:38:19 UTC (rev 25206)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/session/SingleSessionCommandService.java	2009-02-10 15:11:15 UTC (rev 25207)
@@ -15,6 +15,7 @@
 import org.drools.persistence.processinstance.JPAProcessInstanceManager;
 import org.drools.persistence.processinstance.JPASignalManager;
 import org.drools.persistence.processinstance.JPAWorkItemManager;
+import org.drools.persistence.processinstance.VariablePersistenceStrategyFactory;
 import org.drools.process.command.Command;
 import org.drools.process.command.CommandService;
 import org.drools.runtime.Environment;
@@ -45,6 +46,11 @@
 				pconfig.getEntityManagerFactory())
 					.getSessionPersister(ruleBase, conf);
 		}
+        if(!conf.getPersistenceStrategies().equals("")){
+            VariablePersistenceStrategyFactory
+                    .getVariablePersistenceStrategyFactory(
+                        conf.getPersistenceStrategies());
+        }
 		init();
 	}
 	

Added: labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/test/resources/META-INF/PersistenceStrategies.conf
===================================================================
--- labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/test/resources/META-INF/PersistenceStrategies.conf	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/test/resources/META-INF/PersistenceStrategies.conf	2009-02-10 15:11:15 UTC (rev 25207)
@@ -0,0 +1,2 @@
+javax.persistence.Entity = org.drools.persistence.processinstance.JPAVariablePersister
+java.io.Serializable = org.drools.persistence.processinstance.SerializableVariablePersister
\ No newline at end of file

Modified: labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/test/resources/META-INF/drools.session.conf
===================================================================
--- labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/test/resources/META-INF/drools.session.conf	2009-02-10 14:38:19 UTC (rev 25206)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/test/resources/META-INF/drools.session.conf	2009-02-10 15:11:15 UTC (rev 25207)
@@ -2,4 +2,5 @@
 #drools.commandService = org.drools.persistence.session.SingleSessionCommandService
 #drools.processInstanceManagerFactory = org.drools.persistence.processinstance.JPAProcessInstanceManagerFactory
 #drools.workItemManagerFactory = org.drools.persistence.processinstance.JPAWorkItemManagerFactory
-#drools.processSignalManagerFactory = org.drools.persistence.processinstance.JPASignalManagerFactory
\ No newline at end of file
+#drools.processSignalManagerFactory = org.drools.persistence.processinstance.JPASignalManagerFactory
+drools.persistence.strategies = PersistenceStrategies.conf
\ No newline at end of file




More information about the jboss-svn-commits mailing list