diff options
Diffstat (limited to 'test/uscxml/test-http-servlet.scxml')
-rw-r--r-- | test/uscxml/test-http-servlet.scxml | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/uscxml/test-http-servlet.scxml b/test/uscxml/test-http-servlet.scxml new file mode 100644 index 0000000..8836b76 --- /dev/null +++ b/test/uscxml/test-http-servlet.scxml @@ -0,0 +1,41 @@ +<scxml datamodel="ecmascript"> + <script src="http://uscxml.tk.informatik.tu-darmstadt.de/scripts/dump.js" /> + <state id="start"> + <!-- + I went for explicit invokers instead of a response element in executable content + as it provides better control on the path where to serve data. + --> + <invoke type="httpserver" id="servlet.data"> + <!-- server path where to listen --> + <param name="path" expr="'data'" /> + <!-- the name of events originating from requests at this url --> + <param name="callback" expr="'http.data'" /> + </invoke> + <invoke type="httpserver" id="servlet.exit"> + <param name="path" expr="'exit'" /> + <param name="callback" expr="'http.exit'" /> + </invoke> + <state id="loop"> + <transition event="http.data" target="loop"> + <script> + dump(_event); + </script> + <!-- Sending a http reply is to send the invoker id a "reply.<requestId>" event --> + <send target="#_servlet.data" eventexpr="'reply.' + _event.data.reqId"> + <!-- This will end up as a header field --> + <param name="Foo" expr="_ioprocessors" /> + <!-- JSON string in the content --> + <content expr="_ioprocessors" /> + </send> + </transition> + <transition event="http.exit" target="final"> + <script> + dump(_event); + </script> + <!-- This will never get delivered as we terminate before --> + <send target="#_servlet.exit" eventexpr="'reply.' + _event.data.reqId" /> + </transition> + </state> + </state> + <final id="final" /> +</scxml>
\ No newline at end of file |