I'm definitely going to have to watch the 'ranting'. (By the way, Adam, you have to stop grappling with SWF when you get married.)

It seems to me that 'ModelDriven' is not much use without ConversationScope, because you have to manually manage the model/session interaction in all but the first action in the conversation. What I'm talking about with the term 'ConversationScope' is the need not to have to explicitly store, check, and remove my model data from the session in each action. Basically my action always looks like this:

  1. check session for model.
  2. if found, is model for the current conversation
         * if no delete the model from the session, create new model
           and place in session.
         * if yes place it into the Action's private variable
  3. ...... whatever the action does .......
  4. is the conversation finished?
         * if no, make sure model is in session
         * if yes, remove model from session

This seems like a pretty straight-forward use case for an interceptor. I'm thinking of a small object called "ConversationScope", which, of course, has to be stored in the session. The ConversationScope obj contains a map and a method to return its ConversationId, and methods to add and remove objects from its map. The interceptor could do to the ConversationScope the actions which the Action currently does, as delineated above. It might be nice to inject the ConversationScope into the action, but I don't personally know injection well enough to do that. A full solution with injection should have a "ConversationAware" interface which includes a "ConversationId" attribute. It might be better to use annotations rather than an interface declaration.

I'm just thinking on paper here, but it doesn't seem like any massive over-architecting is needed. I personally have almost no experience with Spring, and every time I touch it everything breaks. Guice sounds like a nicer solution, but there is not much tutorial info on it.

Thanks,
- rc


Adam Hardy wrote:
Is it worth building a mechanism for conversation scope, compared to the complexity it introduces? I really dislike Spring Webflow with its conversation scope, stringent encapsulation and storage of massive amounts of data in various maps that locks away everything out of sight and makes it all taste like it's been massively over-architected (and of course the practically insurmountable learning curve)

Isn't it just easier to clean your variables out of the session manually when done? I'm not trying to provoke another rant, it's just that I've suffered my fair share of pain grappling with SWF and I find all justifications of its complexity unwarranted.

Adam

Ray Clough on 24/02/08 02:23, wrote:
Thanks Jeromy. (usually my wife is the only one who notices my 'rants').

Jeromy Evans wrote:
Hi Ray,

I'm not sure, but check out Tom's new scope plugin as it may get you part of the way there.

http://cwiki.apache.org/S2PLUGINS/scope-plugin.html

I was just reading one of your rants from August 07 that mentioned the need to use ModelDriven's model across a conversation and think this will be useful.

cheers,
Jeromy Evans

Ray Clough wrote:
JSF has a "ConversationScope" for extended series of requests/responses dealing with the same topic, and usually the same data model. I'm thinking of writing an interceptor to simulate ConversationScope, and I'm wondering if this has not already been done, and if so, does anyone have details,
code, etc.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to