Sean's questions still need answering, but I wanted to just throw in my
view on this real quick ...
first off, i consider Roller to have 2 distinct UI components.
1. Content Rendering/Delivery. This is pretty much all of our current
velocity stuff plus some other non-Velocity servlets which handle the
rendering and display of all the actual blog content plus the main page.
2. Content Publishing. This is all of our current struts UI stuff which
comprises the /admin/* and /editor/* interfaces for managing Roller content.
i consider these as separate components because they serve very
different needs and are only tied together by the data they work on.
The Content Publishing component is a much more complex component where
almost every page is an html form which is used for strongly interactive
services. The Content Delivery component is almost as simple as static
content delivery and has little to no interaction at all. so it is my
belief that we should consider these 2 components of the Roller
presentation layer independently.
now getting back to the whole SpringMVC vs WebWork/SAF2 discussion ...
i have been barreling my way through Spring and WebWork docs trying to
get up to speed on these things to see how they would fit into the new
url proposal and ultimately the long term plan for Roller's presentation
layer. so far it is my opinion that we should use both.
i believe that Spring appears to be the more ideal solution for the
Content Delivery component because it is a bit less intrusive, very
lightweight, would require minimal code modifications to integrate, and
it's whole claim to fame is basically it's model and view independence.
i think this is the right combination of features for use in the
Content Delivery component.
i know less about WebWork, but it sounds to me like WebWork would be the
more ideal solution for the Content Publishing component because it
offers a richer set of action and form processing tools. we don't need
model and view independence for the Publishing component so i don't
think Spring makes as much sense here, i also think it would be an
easier transition to WebWork than to Spring, and i like the idea of the
action chaining.
so, to try and narrow the scope of this discussion just a little,
remember that we don't need to make any decisions about what would
happen with the Content Publishing component any time soon. we are not
planning to make any changes there in the near future, so we have time
to evaluate Spring and WebWork some more and see what we like. however,
we should make a decision about the Content Delivery component because
we are planning to do some work there for the new url structure anyways.
-- Allen
Sean Gilligan wrote:
*snip*
I'd definitely like to see the Roller admin be ported to WW2/SAF2 since
I'm trying real hard to avoid learning Struts 1.x ;)
I'm prepared to sign up to finish the port of the Blog UI component to
SpringMVC, but don't think I'll have the time to learn WW2 and do the
work. If I can convince the committers to do it with SpringMVC, what
options does WebWork2 have for integrating SpringMVC controllers?
One neat feature (at least on paper, since I haven't used it yet) of
SpringMVC is that it has a mechanism for integrating Controllers/Actions
from other frameworks through something called a HandlerAdapter. Is
there something like this in WW2?
Perhaps, we (I) could finish the SpringMVC refactoring and then later,
once the admin UI is in WW2/SAF2 we could integrate it using an adaption
mechanism or just port it over to WW2.
In any case, moving the "view" code into a separate class from the
"controller" (Servlet) would be a step in the right direction.
Thanks, again,
Sean