Re: Struts is dead... long live Stripes !
Centralized configuration can be good for smaller projects, but as your project grows you will have to think up a way to split the configuration or you will have many people fighting over the same Class/configuration-file as in good old Struts days before sub apps.
Mentawai offers you a simple way to break up the ApplicationManager into multiple files. This is call MultiApplicationManager. Plus this is not XML or Annotation. This is POWERFUL and FLEXIBLE code. That's why it is called PROGRAMMATIC CONFIGURATION. You are free to do whatever you want to do with it. Create block, loops, if, methods, inheritance, you name it... Total flexibility!
It really blows my mind that many frameworks still use String identifiers (and later mapping) to indicate the outcome of an action. For what sake? You loose so much expressive power, when you can only return a String. What if I want to stream JSON back, stream an Image, XML or use some other view technology than JSP. Stripes approach by returning a Resolution instance (such as ForwardResolution, RedirectResolution, StreamingResolution, JavascriptResolution, etc.) works really effectively, expressively, easily extensible and is flexible.
You missed something here. An action returns a STRING which Mentawai calls RESULT. For each result you can have a different CONSEQUENCE. And you can be damn sure that we have a StreamConsequence, Forward, Redirect, Chain, AjaxConsequence, JasperConsequence, etc. Mentawai has easy integration with Velocity as well... A forward can be to any file, not just to a JSP page, right?
Regarding classpath scanning. It works really well and is fairly easy to implement (Stripes, Spring and Hibernate are all capable of doing it) and works well with Jars.
We use it for a lot of stuff.
Just to clear up what seems to be a misunderstanding. By default Stripes doesn't look for annotations when searching for ActionBeans, it instead looks for classes which implement the ActionBean interface.
Agree. Scan the whole classpath looking for actions is a way of doing it. I prefer registering the packages where my actions will be and let the controller look and load them in the request-time instead of scanning everything before hand. If you add something new it will have to re-scan everything.
However, I do see some value in providing more features (like ORM, DI, etc.) without having to learn extra frameworks, but that's not the focus of Stripes.
Stripes' focuses on creating the best Action based MVC framework for Java and so far it's looking good.
RoR is doing this. Many people complain about the Java Salad. For newcomers (new people with Java and web development) it is definitely not good.
The focus of Stripes is to be the best Action based MVC framework for Java. I agree it is doing a good job. I seriously like Stripes.
The focus of Mentawai is to be a very good Action based MVC framework focused totally in SIMPLICITY, JOY and PRODUCTIVITY.
With Mentawai, you just get the work done, very fast, with joy and simplicity. Period. :-) You don't need to go learn a bunch of other frameworks. It offers you all the solutions to the repetitive tasks of every web project!
How does stripes handle Authorization, Authentication, Sending Email, Connection Pooling, etc? You can just say that: "this is not the focus of stripes" and you will be right! But you must agree that this is basic stuff of every web project!