On Fri, 10 Jan 2003, [UTF-8] Rickard Öberg wrote:

> All,
>
> Since quite a few of you disagreed with my resignation as XWork
> architect, I've given some thought to how it would be possible to merge
> my requirements with those that you have. It might be possible to do it,
> and if so I would reconsider re-starting my work on XWork. I'd like to
> begin with defining the core concepts that XWork would have, and also
> briefly list my requirements, and see what your thoughts on them are.

As an aside, before I start slicing most of this post out to save space,
I'd like to add that I was one of those who wasn't happy with that
decision. I'd also like to say that THE most important thing that can be
done at that stage is THIS EMAIL - which actually goes down the road of
defining requirements and scope. I was going to post these to the wiki,
but the wiki's not up for me at the moment.

> The core concepts that I think must be included are the following:

[SNIP!] I agree with these. All very nice. I'm still trying to figure out
configuration on my own just to see what *I* think, but I'm not getting
anywhere with it enough for my own satisfaction.

> These are the core concepts that I can think of. Now, for my own
> portlet-ish needs (which I hope will be more common for others too in
> the future) the following applies:
> * Actions and Components, and their resulting views, are ALWAYS called
> through a servlet include. This means that the URL in a browser NEVER
> reveals that XWork is used. For example, an admin app would consist of

Perfect for a portlet - less perfect for other things. Are you saying that
XWork will *disallow* direct invocation? An XWork page will be invoked via
a .jsp (for example), and call the dispatcher, which will call ANOTHER
.jsp for view, which might include many form components? This isn't a
show-stopper, mind you, but might be something to go softer on.

> the CardPane works in WebWork. Essentially, XWork would include this
> kind of state machine as a built-in concept instead of as an "add-on"
> like CardPane, since this is such an important and common case. It needs
> to be as simple and flexible as is possible. When a component renders
> its view it also creates URL's that define what the possible next states
> are. This means that the URL's in the generated HTML are shortlived
> (i.e. after one of the URL's have been clicked they are all invalid),

I *dribble* on this idea. (That's good.) I'd like to see how it works,
still - does this force session state on an application? (Is this a new
thing, to force session on an application?)

> * The execution of a Component (and maybe Action's too) needs to be
> split into two phases. The actual execution of an action is done at the
> *beginning* of a page render, and the rendering is done at the time of
> the include. Why? Because the action may influence what is shown on the
> page, and may also result in a redirect to another page. If the action
> execution is done at the point of the include it's too late to do a
> redirect, and other portlets may have rendered state that is then
> changed by the action execution. (This thinking, by coincidence, mirrors
> well how the portlet API will work)

I thought this was normal for webwork. Ah, I see the problem - this is
related to the "actions are only included" statement above.

> * When rendering URL's, the parameters need to be namespace'd in order
> to allow several portlets to happily live together on a page. I.e.
> instead of having ?foo=bar one could have ?1.foo=bar&2.foo=bar. The
> XWork servlet dispatcher would then at execution filter out those
> parameters which does not apply to the action/component/portlet being
> executed, and only the remaining parameters are applied using the setX()
> initialization code. This requires the rendering code to use either a
> taglib (in JSP) or some JavaBean (in Velocity) which can do this
> encoding. I know that for *some* applications this will be overkill, but
> for those of use who are going beyond very simple web apps it is a
> definitive must.

And here, we're back to webapps. Is there any way to architect this so
that it's not bound to the web?

> Off the top of my head, those are the concepts and requirements I have
> in order to be able to use XWork in our portal/CMS application. So, what
> do you think?

Read above. Excellent stuff.

---------------------------------------------------------
Joseph B. Ottinger                 [EMAIL PROTECTED]
http://enigmastation.com                    IT Consultant



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork

Reply via email to