Note: I've added @default attribute - same as for other components --VG
A. Integrating the flow processor/engine:
<!-- engine V1 -->
<map:flows default="js">
<map:flow name="js" type="javascript">
<script src="flow/PetStoreImpl.js"/>
<script src="flow/petstore.js"/>
</map:flow>
<map:flow name="java" type="atct" class="org.apache.cocoon...."/>
<map:flow name="fsm" type="fsm" src="descriptors/fsm.xml"/>
</map:flows>or
<!-- engine V2 -->
<map:flows default="js">
<map:flow name="js" type="javascript">
<script src="flow/PetStoreImpl.js"/>
<script src="flow/petstore.js"/>
</map:flow>
<map:flow name="java" type="atct">
<class src="org.apache.cocoon...."/>
</map:flow>
<map:flow name="fsm" type="fsm">
<blabla src="descriptors/fsm.xml"/>
</map:flow>
</map:flows>or
<!-- engine V3 -->
<map:flow name="js" type="javascript">
<script src="flow/PetStoreImpl.js"/>
<script src="flow/petstore.js"/>
</map:flow>
<map:flow name="java" type="atct">
<class src="org.apache.cocoon...."/>
</map:flow>
<map:flow name="fsm" type="fsm">
<blabla src="descriptors/fsm.xml"/>
</map:flow>
B. Call a flow the first time:
Note: attribute @type can be omitted --VG
<!-- call V1 -->
<map:call type="js" flow="[yourFlow]">
<map:parameter name="x" value="y"/>
</map:call>or
<!-- call V2 --> <map:initiate flow="js" call="[Javascript function]"> <map:parameter name="x" value="y"/> </map:initiate>
or
<!-- call V3 --> <map:initiate type="java" src="[Java method]"> <map:parameter name="x" value="y"/> </map:initiate>
or
<!-- call V4 --> <map:flow type="java" start=""> <map:parameter name="x" value="y"/> </map:flow>
or
<!-- call V5 --> <map:initiate type="js" flow="[Javascript function]"> <map:parameter name="x" value="y"/> </map:initiate>
C. Continue a flow
Note: attribute @type can be omitted --VG
<!-- continue V1 -->
<map:continue id="{1}" type="">
<map:parameter name="x" value="y"/>
</map:continue>or
<!-- continue V2 --> <map:continue state-id=".." type=""> <map:parameter name="x" value="y"/> </map:continue>
or
<!-- continue V3 --> <map:call state="" type="js"> <map:parameter name="x" value="y"/> </map:call>
or
<!-- continue V4 --> <map:continue from="..." type="js"> <map:parameter name="x" value="y"/> </map:continue>
or
<!-- continue V5 --> <map:continue src="..." type="js"> <map:parameter name="x" value="y"/> </map:continue>
or
<!-- continue V6 --> <map:flow continue="" type="java"> <map:parameter name="x" value="y"/> </map:flow>
or
<!-- continue V7 --> <map:continue flow=".." type="java"> <map:parameter name="x" value="y"/> </map:continue>
D. Component declaration
<!-- component V1 --> <flow-engine default="[yourController]" logger="[yourLogger]"> [configuration] </flow-engine>
or
<!-- component V2 --> <flow-processor default="[yourController]" logger="[yourLogger]"> [configuration] </flow-processor>
E. Renamings
- [V1] Changes in the current Javascript implementation:
rename "Interpreter" to "FlowEngine" (or FlowProcessor conform decission on above),
rename "WebContinuation" to "FlowState", and accordingly
"WebContinuationManager" to "FlowStateManager".
- [V2] do nothing because it is an implementation detail
Voting results
Jörg
| A | B | C | D | E |
----|-------|-------|-------|-------|-------|
| | | | | |
V1 | -1 | +0 | +0 | +.5 | +1 |
| | | | | |
V2 | +1 | -1 | -0 | +.5 | -1 |
| | | | | |
V3 | ?? | +.5 | -1 | \ | \ |
| | | | | |
V4 | \ | -1 | -0 | \ | \ |
| | | | | |
V5 | \ | +1 | +.5 | \ | \ |
| | | | | |
V6 | \ | \ | -1 | \ | \ |
| | | | | |
V7 | \ | \ | +1 | \ | \ |
| | | | | |
----|-------|-------|-------|-------|-------|
Reinhard
| A | B | C | D | E |
----|-------|-------|-------|-------|-------|
| | | | | |
V1 | +0 | +0 | +0 | +.5 | +0 |
| | | | | |
V2 | +1 | -1 | -1 | +.5 | +0 |
| | | | | |
V3 | +0 | -1 | -1 | \ | \ |
| | | | | |
V4 | \ | +.5 | -0 | \ | \ |
| | | | | |
V5 | \ | +1 | +.5 | \ | \ |
| | | | | |
V6 | \ | \ | -0 | \ | \ |
| | | | | |
V7 | \ | \ | +1 | \ | \ |
| | | | | |
----|-------|-------|-------|-------|-------|