Thanks for bringing this up Allen.

On 1/10/07, Allen Gilliland <[EMAIL PROTECTED]> wrote:
I know this has been lightly discussed in the past, but I would like to
start a more formal discussion about it now in the hopes that we can
come to some kind of decision in the not too distant future and begin
working on upgrading from Struts 1.x.  I think there are a ton of
reasons to upgrade from Struts 1.x and the only real drawback right now
is that it requires extra development time, but we've got to bite the
bullet some time.

I think this is a very important decision. Roller's UI is one of it's
weak points. We need to work to simplify, stream-line and update the
UI to meet "Web 2.0" expectations. I do NOT want to do that work with
Struts 1.x.


So, it seems like the logical place to start is to get a feel for what
options are available and why we like/dislike various options.  From
previous discussions it sounds like the most notable options are ...
Struts2, JSF, and Spring.  Feel free to offer other options if you think
a different framework should be considered.

My personal preference is to upgrade from Struts 1.x to Struts 2 because:

1) I'm very comfortable with the action framework approach used by
Struts 1.x and now perfected by Struts 2.x
2) What I've seen of Struts 2 looks truly great, especially the
enhanced tags and easy to test actions
3) We can migrate in a piece-meal fashion, keeping old Struts 1.x code
in place as needed
4) It's possible to use JSF within Struts 2 -- so if there's some
amazing JSF component or UI contribution someday, we (or somebody else
customizing Roller) could still consider using it.
5) The Struts project is a very active Apache community and they've
offered to help us before.


I am not a framework junky and haven't played with any of these options
extensively, but from what I do know about them I would say that Struts2
sounds the most appealing to me.

Struts2 looks very easy to use and should provide by far the easiest
upgrade path from our current Struts1 code.  Based on the JSF examples
Dave used in the Planet sandbox I am a bit hesitant on JSF.  I found it
to be less intuitive than Struts and would certainly require more effort
to migrate to.  Spring is also an option, but the upgrade path would be
more involved and I don't think it offers anything that Struts2 does not.

That JSF work was definitely easier than it would have been with
Struts 1.x, but there were some annoying pain points. It was a pain to
add support for HTTP GET in JSF and I had to put way too much JSF
specific code into the actions. And the JSP code for a JSF form is
about ten times longer than what you'd find in a similar Struts 2 form
(due to the new style-sheet driven tags).

For starters, it might be a good idea to develop a Struts2 version of
the Roller-Planet UI, which is in the sandbox. It's a small UI so that
would not be hard to do. Then we'd have some concrete examples to
compare and (assuming we choose Struts 2) some code we could re-use in
Roller proper.


The only downsides I see to Struts2 right now is that it says it
requires Java 5, which isn't an absolute deal breaker, but I think it's
a shame since Roller is currently compatible with Java 1.4.  The other
thing is that Struts2 hasn't actually gone GA yet, but it appears that
it's fairly close now, so by the time we actually get around to doing
this work it should be ready.

What do others think?

I'd like to know what everybody else thinks too. I'm in something of a
planning and requirements stage right now, so this is a perfect time
for this discussion.

Currently, my opinion is that Roller 4.0 should include Struts 2,
require at least Java 5, and feature a re-written authoring UI
(replacing at least the entry editor, entry management and categories
pages).

- Dave

Reply via email to