For a good story of how Equinox helps, see Wayland Chan's Equinox to the rescue blog post.
This release's major new features are Tapestry 4.0 and WebWork 2.2.1 upgrades.
In addition, I changed to use Maven's
Standard Directory Layout. It makes IDE and using Maven plugins much easier,
so it's a natural progression.
This release does not contain Maven support for running the integration tests with
Cargo. This is because Cargo still seems
a lot more complicated with Maven than with Ant. Hopefully I'll be able to figure
out an easy way to get test-all functionality with Maven and Cargo in the next
release.
All of the frameworks used in Equinox, as well as its build/test system is
explained in Spring Live. A summary
of the changes are below (detailed release notes can be found in JIRA):
- Added custom exception page for Tapestry, as well as
tapestry-flash.
- Changed birthday date input to use WebWork's DatePicker component.
- Added support for pre-compiling JSPs when building with Maven (on by default).
- Added createDatabaseIfNotExist=true to jdbc.properties.mysql to auto-create the database when using MySQL.
- Changed classes that extend *SpringContextTests to use AUTOWIRE_BY_NAME so more than one instance of an interface is supported.
- Dependent packages upgraded:
- Cargo 0.7
- DisplayTag 1.1
- Hibernate 3.1.2
- Scriptaculous 1.5.2
- Tapestry 4.0
- WebTest build 1168
- WebWork 2.2.1
Download. For more information about installing the
various options, see the README.txt file.
Demos:
Known Issues: The Tapestry-Flash JAR was built with JDK 1.5 - so you'll need JDK 5 to run the Tapestry version. Howard Lewis Ship said he'd fix this tonight or tomorrow. Also, if you're on Unix, you'll need to run "ant fixcrlf" before you install anything. Finally, downloading dependencies might not work the first time. Running the "ant" or "mvn" command multiple times usually solves the problem.
See the roadmap for what's coming in the next release.
From Ted Husted on the Struts mailing list:
Seriously, hype aside, engineer to engineer, if we can use the new
standalone Tiles with WebWork, and use Ajax to store the state of UI
controls, what else do we need to do to make WebWork/Action 2 the best
framework for *everything*?
My reply:
The tag documentation (and documentation in general) for WebWork is
difficult to navigate. Struts' documentation has generally made it
easier to find stuff.
I think the hardest part of WebWork/Action 2 is providing the path for
migration. If Struts 1.x applications can run in Struts Action 2.x,
and users can create new Actions following WW's APIs - that will be
truly awesome.
Another that would be cool is smart defaults. For example, having
Actions that end with "Action" be available at the
"everythingbeforeAction" URL. Spring has something similar coming in
2.0 - and it's mainly just done by extending a certain class.
http://jroller.com/page/raible?anchor=an_example_of_smart_defaults
So if I have UserAction, it's automatically available at /users,
/user/edit, /user/save, etc. Default CRUD in a sense. No xwork.xml
required by default. But users can override. Default everything w/o
requiring annotations, but allow overriding. Or maybe there's
different default schemas - a CRUD one, store front, etc.
Ajax stuff that I think WW already has: in-page updates,
sortable/pageable lists with something like the displaytag - but with
Ajax. There's a lot of these components already available for this
stuff, so it might just be a matter of documenting how to integrate
them.
Promoting Maven 2 for building might be an easy way of promoting
inclusion of 3rd party libraries. Add 3 lines of XML, use this code
in your JSP/template, boom - you're good to go. Those that don't like
Maven can use the Ant tasks and pom.xml.
Archetypes could be pretty big too - create starter applications that
users can use. Even better, provide a means to upgrade the
archetypes. Of course, that might be a Maven thing - and editing
pom.xml to change versions really isn't that hard.
Above all else - to become the best MVC framework for Java -
documentation and easy migration are essential.
Just my $0.02 of course.
What's your opinion?