[jboss-svn-commits] JBL Code SVN: r26400 - in labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools: marshalling/impl and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed May 6 13:16:05 EDT 2009
Author: salaboy21
Date: 2009-05-06 13:16:05 -0400 (Wed, 06 May 2009)
New Revision: 26400
Modified:
labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/marshalling/impl/AbstractProcessInstanceMarshaller.java
labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/marshalling/impl/InputMarshaller.java
labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/marshalling/impl/OutputMarshaller.java
labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/marshalling/impl/ProcessInstanceMarshaller.java
Log:
changes in drools core, some methods overloaded, and in the AbstractWorkingMemory move the addProcessInstance after the variables load.
Modified: labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2009-05-06 16:13:21 UTC (rev 26399)
+++ labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2009-05-06 17:16:05 UTC (rev 26400)
@@ -1629,7 +1629,7 @@
ProcessInstance processInstance = (ProcessInstance) getProcessInstance( process );
processInstance.setWorkingMemory( this );
processInstance.setProcess( process );
- processInstanceManager.addProcessInstance( processInstance );
+
// set variable default values
// TODO: should be part of processInstanceImpl?
VariableScope variableScope = (VariableScope) ((ContextContainer) process).getDefaultContext( VariableScope.VARIABLE_SCOPE );
@@ -1645,6 +1645,7 @@
throw new IllegalArgumentException( "This process does not support parameters!" );
}
}
+ processInstanceManager.addProcessInstance( processInstance );
// start
getRuleFlowEventSupport().fireBeforeRuleFlowProcessStarted( processInstance,
this );
Modified: labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/marshalling/impl/AbstractProcessInstanceMarshaller.java
===================================================================
--- labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/marshalling/impl/AbstractProcessInstanceMarshaller.java 2009-05-06 16:13:21 UTC (rev 26399)
+++ labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/marshalling/impl/AbstractProcessInstanceMarshaller.java 2009-05-06 17:16:05 UTC (rev 26400)
@@ -46,9 +46,13 @@
ProcessInstanceMarshaller {
// Output methods
+ public void writeProcessInstance(MarshallerWriteContext context,
+ ProcessInstance processInstance) throws IOException{
+ writeProcessInstance(context,processInstance, true);
+ }
public void writeProcessInstance(MarshallerWriteContext context,
- ProcessInstance processInstance) throws IOException {
+ ProcessInstance processInstance, boolean includeVariables) throws IOException {
WorkflowProcessInstanceImpl workFlow = (WorkflowProcessInstanceImpl) processInstance;
ObjectOutputStream stream = context.stream;
@@ -56,21 +60,22 @@
stream.writeUTF(workFlow.getProcessId());
stream.writeInt(workFlow.getState());
stream.writeLong(workFlow.getNodeInstanceCounter());
-
- VariableScopeInstance variableScopeInstance = (VariableScopeInstance) workFlow.getContextInstance( VariableScope.VARIABLE_SCOPE );
- Map<String, Object> variables = variableScopeInstance.getVariables();
- List<String> keys = new ArrayList<String>( variables.keySet() );
- Collections.sort( keys,
- new Comparator<String>() {
- public int compare(String o1,
- String o2) {
- return o1.compareTo( o2 );
- }
- } );
- stream.writeInt( keys.size() );
- for ( String key : keys ) {
- stream.writeUTF( key );
- stream.writeObject( variables.get( key ) );
+ if(includeVariables){
+ VariableScopeInstance variableScopeInstance = (VariableScopeInstance) workFlow.getContextInstance( VariableScope.VARIABLE_SCOPE );
+ Map<String, Object> variables = variableScopeInstance.getVariables();
+ List<String> keys = new ArrayList<String>( variables.keySet() );
+ Collections.sort( keys,
+ new Comparator<String>() {
+ public int compare(String o1,
+ String o2) {
+ return o1.compareTo( o2 );
+ }
+ } );
+ stream.writeInt( keys.size() );
+ for ( String key : keys ) {
+ stream.writeUTF( key );
+ stream.writeObject( variables.get( key ) );
+ }
}
SwimlaneContextInstance swimlaneContextInstance = (SwimlaneContextInstance) workFlow.getContextInstance( SwimlaneContext.SWIMLANE_SCOPE );
@@ -101,6 +106,7 @@
}
stream.writeShort( PersisterEnums.END );
}
+
public void writeNodeInstance(MarshallerWriteContext context,
NodeInstance nodeInstance) throws IOException {
@@ -212,8 +218,11 @@
}
// Input methods
+ public ProcessInstance readProcessInstance(MarshallerReaderContext context) throws IOException {
+ return readProcessInstance(context,true);
+ }
- public ProcessInstance readProcessInstance(MarshallerReaderContext context) throws IOException {
+ public ProcessInstance readProcessInstance(MarshallerReaderContext context,boolean includeVariables) throws IOException {
ObjectInputStream stream = context.stream;
InternalRuleBase ruleBase = context.ruleBase;
InternalWorkingMemory wm = context.wm;
@@ -229,25 +238,26 @@
processInstance.setState(stream.readInt());
long nodeInstanceCounter = stream.readLong();
processInstance.setWorkingMemory(wm);
+ if(includeVariables){
+ int nbVariables = stream.readInt();
+ if (nbVariables > 0) {
+ Context variableScope = process
+ .getDefaultContext(VariableScope.VARIABLE_SCOPE);
+ VariableScopeInstance variableScopeInstance = (VariableScopeInstance)
+ processInstance.getContextInstance(variableScope);
+ for (int i = 0; i < nbVariables; i++) {
+ String name = stream.readUTF();
+ try {
+ Object value = stream.readObject();
+ variableScopeInstance.setVariable(name, value);
+ } catch (ClassNotFoundException e) {
+ throw new IllegalArgumentException(
+ "Could not reload variable " + name);
+ }
+ }
+ }
+ }
- int nbVariables = stream.readInt();
- if (nbVariables > 0) {
- Context variableScope = process
- .getDefaultContext(VariableScope.VARIABLE_SCOPE);
- VariableScopeInstance variableScopeInstance = (VariableScopeInstance)
- processInstance.getContextInstance(variableScope);
- for (int i = 0; i < nbVariables; i++) {
- String name = stream.readUTF();
- try {
- Object value = stream.readObject();
- variableScopeInstance.setVariable(name, value);
- } catch (ClassNotFoundException e) {
- throw new IllegalArgumentException(
- "Could not reload variable " + name);
- }
- }
- }
-
int nbSwimlanes = stream.readInt();
if (nbSwimlanes > 0) {
Context swimlaneContext = process.getDefaultContext(SwimlaneContext.SWIMLANE_SCOPE);
Modified: labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/marshalling/impl/InputMarshaller.java
===================================================================
--- labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/marshalling/impl/InputMarshaller.java 2009-05-06 16:13:21 UTC (rev 26399)
+++ labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/marshalling/impl/InputMarshaller.java 2009-05-06 17:16:05 UTC (rev 26400)
@@ -792,12 +792,15 @@
context.propagationContexts.put( propagationNumber,
pc );
}
+ public static void readProcessInstances(MarshallerReaderContext context) throws IOException {
+ readProcessInstances(context, true);
+ }
- public static void readProcessInstances(MarshallerReaderContext context) throws IOException {
+ public static void readProcessInstances(MarshallerReaderContext context, boolean includeVariables) throws IOException {
ObjectInputStream stream = context.stream;
while ( stream.readShort() == PersisterEnums.PROCESS_INSTANCE ) {
String processType = stream.readUTF();
- ProcessMarshallerRegistry.INSTANCE.getMarshaller(processType).readProcessInstance(context);
+ ProcessMarshallerRegistry.INSTANCE.getMarshaller(processType).readProcessInstance(context,includeVariables);
}
}
Modified: labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/marshalling/impl/OutputMarshaller.java
===================================================================
--- labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/marshalling/impl/OutputMarshaller.java 2009-05-06 16:13:21 UTC (rev 26399)
+++ labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/marshalling/impl/OutputMarshaller.java 2009-05-06 17:16:05 UTC (rev 26400)
@@ -732,8 +732,10 @@
stream.writeUTF( pc.getEntryPoint().getEntryPointId() );
}
-
- public static void writeProcessInstances(MarshallerWriteContext context) throws IOException {
+ public static void writeProcessInstances(MarshallerWriteContext context) throws IOException {
+ writeProcessInstances(context,true);
+ }
+ public static void writeProcessInstances(MarshallerWriteContext context, boolean includeVariables) throws IOException {
ObjectOutputStream stream = context.stream;
List<org.drools.runtime.process.ProcessInstance> processInstances = new ArrayList<org.drools.runtime.process.ProcessInstance>( context.wm.getProcessInstances() );
Collections.sort( processInstances,
@@ -748,7 +750,7 @@
String processType = ((ProcessInstanceImpl) processInstance).getProcess().getType();
stream.writeUTF(processType);
ProcessMarshallerRegistry.INSTANCE.getMarshaller(processType)
- .writeProcessInstance(context, processInstance);
+ .writeProcessInstance(context, processInstance,includeVariables);
}
stream.writeShort( PersisterEnums.END );
}
Modified: labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/marshalling/impl/ProcessInstanceMarshaller.java
===================================================================
--- labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/marshalling/impl/ProcessInstanceMarshaller.java 2009-05-06 16:13:21 UTC (rev 26399)
+++ labs/jbossrules/branches/salaboy_RelationalVariablePersistence/drools-core/src/main/java/org/drools/marshalling/impl/ProcessInstanceMarshaller.java 2009-05-06 17:16:05 UTC (rev 26400)
@@ -26,12 +26,16 @@
public void writeProcessInstance(MarshallerWriteContext context,
ProcessInstance processInstance) throws IOException;
+ public void writeProcessInstance(MarshallerWriteContext context,
+ ProcessInstance processInstance, boolean includeVariables) throws IOException;
public void writeNodeInstance(MarshallerWriteContext context,
NodeInstance nodeInstance) throws IOException;
public ProcessInstance readProcessInstance(MarshallerReaderContext context)
throws IOException;
+ public ProcessInstance readProcessInstance(MarshallerReaderContext context,
+ boolean includeVariables) throws IOException;
public NodeInstance readNodeInstance(MarshallerReaderContext context,
NodeInstanceContainer nodeInstanceContainer,
More information about the jboss-svn-commits
mailing list