Congrats to Keith for releasing the next preview of Spring Web Flow. The announcement highlights that it supports continuations. Since RIFE was the first web framework to offer native web continuations in plain Java, I downloaded the source of this release to look at the samples. It's always interesting to see how others approach the same problem.
Much to my surprise, the Spring Web Flow continuations support was totally not what I expected. Every framework that claims to support continuations, offers this on the level of the implementation language, like this RIFE example snippet (full source):
while (guess != answer)
{
// print the guess form and wait for a response
print(template);
pause();
// obtain the guess
guess = getParameterInt("guess", -1);
....
}
The main benefit of this is that you don't have to manually declare or handle any kind of flow anymore. You just rely on the control flow and scope of the implementation language and with special statements (pause() in RIFE), you break out of it and provide control again to the user. At the next request, the local variable stack will be automatically restored and the application will resume right where it left off (more in our presentation about this).
Spring Web Flow however only provides continuations in the flow declaration (can be both in XML and in Java), thus lacking what in my opinion is the single most interesting feature of continuations.
It seems that continuations are becoming a buzz-word, and like with all other buzz-words you should really check what is meant when people claim support for the technology. You might not get what you expected!