"salaboy21" wrote : The fork node is not a wait state.. so if you signal the
start-state, the process will continue passing thru the fork node until reach
the S1 and S2 nodes...
|
| So do this test:
|
| 1) signal de root token
| 2) look for childrens.. at this time with only one signal.. you must have 2
children.
| 3) then you can signal one of the child tokens and you see that the root
token still in the fork node and the child token go to join node
| 4) then signal the other token and you will see that the root token moves
to the end and the child token like the other move to join node...
|
| Can you do that test and post your code?
|
Sure!
| public void test()
| {
| // Declare a process with a fork
| // S
| // |
| // F
| // / \
| // s1 s2
| // \ /
| // J
| // |
| // E
| ProcessDefinition lProcessDefinition =
ProcessDefinition.parseXmlString(
| "<process-definition>" +
| " <start-state name=\"start\">" +
| " <transition to=\"fork1\"></transition>"
+
| " </start-state>" +
| " <fork name=\"fork1\">" +
| " <transition
to=\"state1\"></transition>" +
| " <transition
to=\"state2\"></transition>" +
| " </fork>" +
| " <state name=\"state1\">" +
| " <transition to=\"join1\"></transition>"
+
| " </state>" +
| " <state name=\"state2\">" +
| " <transition to=\"join1\"></transition>"
+
| " </state>" +
| " <join name=\"join1\">" +
| " <transition to=\"end\"></transition>" +
| " </join>" +
| " <end-state name=\"end\"></end-state>" +
| "</process-definition>"
| );
|
| // Start a process
| ProcessInstance lProcessInstance = new
ProcessInstance(lProcessDefinition);
|
| // Get the token: we're in the start node
| Token lToken = lProcessInstance.getRootToken();
| System.out.println("1: " + lToken.getNode());
|
| // First signal: goto the fork
| lToken.signal();
| // this should mean that this token gets two childeren
| System.out.println("2a: " + lToken.getChildren().size());
| // this token should still be in the fork
| System.out.println("2b: " + lToken.getNode());
| // this token should still be in the fork
| System.out.println("2c: " + lToken.getChildren());
| Token lChild1 =
(Token)lToken.getChildren().values().iterator().next();
| //Token lChild2 =
(Token)lToken.getChildren().values().iterator().next();
| // the childeren should be in state1 and state2
| System.out.println("2d: " + lChild1.getNode() );
| //System.out.println("2e: " + lChild2.getNode() );
| }
|
I commented out lines because I do not have two childeren:
1: StartState(start)
2a: 1
2b: Fork(fork1)
2c: {1=Token(/1)}
2d: State(state1)
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4189200#4189200
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4189200
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user