[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