Update of /cvsroot/metamorphosis/krysalis-sandbox/workflow/src/java/org/krysalis/workflow/manager
In directory sc8-pr-cvs1:/tmp/cvs-serv31230/src/java/org/krysalis/workflow/manager
Modified Files:
DefaultWorkFlow.java DefaultWorkFlowMapper.java workflow.roles
Log Message:
Fixing role configuration.
Using configuration class instead of parameters for actions
and conditions.
Index: DefaultWorkFlow.java
===================================================================
RCS file: /cvsroot/metamorphosis/krysalis-sandbox/workflow/src/java/org/krysalis/workflow/manager/DefaultWorkFlow.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** DefaultWorkFlow.java 15 Mar 2003 18:44:37 -0000 1.4
--- DefaultWorkFlow.java 17 Mar 2003 10:39:17 -0000 1.5
***************
*** 12,15 ****
--- 12,16 ----
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.component.ComponentManager;
+ import org.apache.avalon.framework.component.ComponentSelector;
import org.apache.avalon.framework.component.Composable;
import org.apache.avalon.framework.configuration.Configurable;
***************
*** 17,21 ****
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
- import org.apache.avalon.framework.parameters.Parameters;
import org.apache.avalon.framework.thread.ThreadSafe;
--- 18,21 ----
***************
*** 23,27 ****
/**
! *
*
* @author <a href="mailto:[email protected]">Stephan Michels </a>
--- 23,29 ----
/**
! * Default implementation of a workflow. This workflow implementation
! * allow epsilon, event-driven, garded, conditioned transtion. If more
! * than one transitions possible, the first one will be taken.
*
* @author <a href="mailto:[email protected]">Stephan Michels </a>
***************
*** 41,47 ****
private String[][] transitionEvents;
private WorkFlowCondition[][] transitionConditions;
! private Parameters[][] transitionConditionParameters;
private WorkFlowAction[][][] transitionActions;
! private Parameters[][][] transitionActionParameters;
// Intial state
--- 43,49 ----
private String[][] transitionEvents;
private WorkFlowCondition[][] transitionConditions;
! private Configuration[][] transitionConditionConfigurations;
private WorkFlowAction[][][] transitionActions;
! private Configuration[][][] transitionActionConfigurations;
// Intial state
***************
*** 86,160 ****
this.transitions = new int[states.length][];
! Configuration[] transitions, actions;
! Configuration condition;
this.transitions = new int[states.length][];
this.transitionEvents = new String[states.length][];
this.transitionConditions = new WorkFlowCondition[states.length][];
! this.transitionConditionParameters = new Parameters[states.length][];
this.transitionActions = new WorkFlowAction[states.length][][];
! this.transitionActionParameters = new Parameters[states.length][][];
for (int state = 0; state<states.length; state++)
{
! transitions = states[state].getChildren("transition");
! this.transitions[state] = new int[transitions.length];
! this.transitionEvents[state] = new String[transitions.length];
! this.transitionConditions[state] = new WorkFlowCondition[transitions.length];
! this.transitionConditionParameters[state] = new Parameters[transitions.length];
! this.transitionActions[state] = new WorkFlowAction[transitions.length][];
! this.transitionActionParameters[state] = new Parameters[transitions.length][];
! for (int transition = 0; transition<transitions.length; transition++)
{
! this.transitions[state][transition] = indexOfState(transitions[transition].getAttribute("ref",
stateNames[state]));
! if (transitions[transition].getAttribute("event", null)!=null)
! this.transitionEvents[state][transition] = transitions[transition].getAttribute("event");
else
this.transitionEvents[state][transition] = null;
! condition = transitions[transition].getChild("condition", false);
! if (condition!=null)
{
try
{
this.transitionConditions[state][transition] = (WorkFlowCondition)
! this.manager.lookup(condition.getAttribute("type"));
}
catch (ComponentException ce)
{
throw new ConfigurationException("Could not retrieve condition '"+
! condition.getAttribute("type")+
"'", ce);
}
! this.transitionConditionParameters[state][transition] = Parameters.fromConfiguration(condition);
}
else
{
this.transitionConditions[state][transition] = null;
! this.transitionConditionParameters[state][transition] = null;
}
! actions = transitions[transition].getChildren("action");
! this.transitionActions[state][transition] = new WorkFlowAction[actions.length];
! this.transitionActionParameters[state][transition] = new Parameters[actions.length];
! for (int action = 0; action<actions.length; action++)
{
try
{
! /* getLogger().debug("action="+action+" length="+this.transitionActions[state][transition].length);
! getLogger().debug("type="+actions[action].getAttribute("type"));
! getLogger().debug("action="+this.transitionActions[state][transition][action]);*/
this.transitionActions[state][transition][action] = (WorkFlowAction)
! this.manager.lookup(actions[action].getAttribute("type"));
}
catch (ComponentException ce)
{
throw new ConfigurationException("Could not retrieve action '"+
! actions[action].getAttribute("type")+
"'", ce);
}
! this.transitionActionParameters[state][transition][action] = Parameters.fromConfiguration(actions[action]);
}
}
--- 88,173 ----
this.transitions = new int[states.length][];
! Configuration[] transitionConfigs, actionConfigs;
! Configuration conditionConfig;
this.transitions = new int[states.length][];
this.transitionEvents = new String[states.length][];
this.transitionConditions = new WorkFlowCondition[states.length][];
! this.transitionConditionConfigurations = new Configuration[states.length][];
this.transitionActions = new WorkFlowAction[states.length][][];
! this.transitionActionConfigurations = new Configuration[states.length][][];
for (int state = 0; state<states.length; state++)
{
! transitionConfigs = states[state].getChildren("transition");
! this.transitions[state] = new int[transitionConfigs.length];
! this.transitionEvents[state] = new String[transitionConfigs.length];
! this.transitionConditions[state] = new WorkFlowCondition[transitionConfigs.length];
! this.transitionConditionConfigurations[state] = new Configuration[transitionConfigs.length];
! this.transitionActions[state] = new WorkFlowAction[transitionConfigs.length][];
! this.transitionActionConfigurations[state] = new Configuration[transitionConfigs.length][];
! for (int transition = 0; transition<transitionConfigs.length; transition++)
{
! this.transitions[state][transition] = indexOfState(transitionConfigs[transition].getAttribute("ref",
stateNames[state]));
! if (transitionConfigs[transition].getAttribute("event", null)!=null)
! this.transitionEvents[state][transition] = transitionConfigs[transition].getAttribute("event");
else
this.transitionEvents[state][transition] = null;
! conditionConfig = transitionConfigs[transition].getChild("condition", false);
! if (conditionConfig!=null)
{
+ ComponentSelector conditionselector = null;
try
{
+ conditionselector = (ComponentSelector)manager.lookup(WorkFlowCondition.ROLE+"Selector");
this.transitionConditions[state][transition] = (WorkFlowCondition)
! conditionselector.select(conditionConfig.getAttribute("type"));
}
catch (ComponentException ce)
{
throw new ConfigurationException("Could not retrieve condition '"+
! conditionConfig.getAttribute("type")+
"'", ce);
}
! finally
! {
! if (conditionselector!=null)
! manager.release(conditionselector);
! }
! this.transitionConditionConfigurations[state][transition] = conditionConfig;
}
else
{
this.transitionConditions[state][transition] = null;
! this.transitionConditionConfigurations[state][transition] = null;
}
! actionConfigs = transitionConfigs[transition].getChildren("action");
! this.transitionActions[state][transition] = new WorkFlowAction[actionConfigs.length];
! this.transitionActionConfigurations[state][transition] = new Configuration[actionConfigs.length];
! for (int action = 0; action<actionConfigs.length; action++)
{
+ ComponentSelector actionselector = null;
try
{
! actionselector = (ComponentSelector)manager.lookup(WorkFlowAction.ROLE+"Selector");
this.transitionActions[state][transition][action] = (WorkFlowAction)
! actionselector.select(actionConfigs[action].getAttribute("type"));
}
catch (ComponentException ce)
{
throw new ConfigurationException("Could not retrieve action '"+
! actionConfigs[action].getAttribute("type")+
"'", ce);
+ }
+ finally
+ {
+ if (actionselector!=null)
+ manager.release(actionselector);
}
! this.transitionActionConfigurations[state][transition][action] = actionConfigs[action];
}
}
***************
*** 208,212 ****
{
if (transitionConditions[state][transition].evaluate(currentState,
! event, transitionConditionParameters[state][transition]))
{
try
--- 221,225 ----
{
if (transitionConditions[state][transition].evaluate(currentState,
! event, transitionConditionConfigurations[state][transition]))
{
try
***************
*** 217,221 ****
transitionActions[state][transition][action].perform(currentState,
event,
! transitionActionParameters[state][transition][action]);
}
--- 230,234 ----
transitionActions[state][transition][action].perform(currentState,
event,
! transitionActionConfigurations[state][transition][action]);
}
***************
*** 241,245 ****
action<transitionActions[state][transition].length; action++)
transitionActions[state][transition][action].perform(currentState,
! event, transitionActionParameters[state][transition][action]);
}
--- 254,258 ----
action<transitionActions[state][transition].length; action++)
transitionActions[state][transition][action].perform(currentState,
! event, transitionActionConfigurations[state][transition][action]);
}
***************
*** 262,266 ****
((transitionConditions[state][transition]==null) ||
transitionConditions[state][transition].evaluate(currentState,
! null, transitionConditionParameters[state][transition])))
{
state = transitions[state][transition];
--- 275,279 ----
((transitionConditions[state][transition]==null) ||
transitionConditions[state][transition].evaluate(currentState,
! null, transitionConditionConfigurations[state][transition])))
{
state = transitions[state][transition];
***************
*** 274,278 ****
transitionActions[state][transition][action].perform(currentState,
null,
! transitionActionParameters[state][transition][action]);
}
catch (Exception e)
--- 287,291 ----
transitionActions[state][transition][action].perform(currentState,
null,
! transitionActionConfigurations[state][transition][action]);
}
catch (Exception e)
Index: DefaultWorkFlowMapper.java
===================================================================
RCS file: /cvsroot/metamorphosis/krysalis-sandbox/workflow/src/java/org/krysalis/workflow/manager/DefaultWorkFlowMapper.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** DefaultWorkFlowMapper.java 14 Mar 2003 15:06:09 -0000 1.2
--- DefaultWorkFlowMapper.java 17 Mar 2003 10:39:18 -0000 1.3
***************
*** 104,114 ****
}
- /**
- *
- *
- * @param pattern
- *
- * @return
- */
private String createRegex(String pattern)
{
--- 104,107 ----
***************
*** 133,138 ****
buffer.append("$");
- System.out.println("pattern: '"+pattern+"' regex: '"+buffer.toString()+
- "'");
return buffer.toString();
}
--- 126,129 ----
Index: workflow.roles
===================================================================
RCS file: /cvsroot/metamorphosis/krysalis-sandbox/workflow/src/java/org/krysalis/workflow/manager/workflow.roles,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** workflow.roles 14 Mar 2003 15:06:09 -0000 1.2
--- workflow.roles 17 Mar 2003 10:39:20 -0000 1.3
***************
*** 15,34 ****
<role-list>
- <role name="org.krysalis.workflow.WorkFlowStoreSelector"
- shorthand="stores"
- default-class="org.apache.avalon.excalibur.component.ExcaliburComponentSelector"/>
-
- <role name="org.krysalis.workflow.WorkFlowStoreSelector"
- shorthand="stores"
- default-class="org.apache.avalon.excalibur.component.ExcaliburComponentSelector"/>
-
- <role name="org.krysalis.workflow.WorkFlowStoreSelector"
- shorthand="stores"
- default-class="org.apache.avalon.excalibur.component.ExcaliburComponentSelector"/>
-
- <role name="org.krysalis.workflow.WorkFlowStoreSelector"
- shorthand="stores"
- default-class="org.apache.avalon.excalibur.component.ExcaliburComponentSelector"/>
-
<role name="org.krysalis.workflow.WorkFlowConditionSelector"
shorthand="conditions"
--- 15,18 ----
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.