After implemented a full blown application using Seam 1.1, my experience on Seam comes to a mix, really and seriously. Why? Here are my reasons why:
* Maintaining the session timeout, say 30 minutes
* Maintaining the EJB3 timeout
* Maintaining the application component conversation timeout
* Live development in Eclipse using Tomcat plug-in for quick monkey-do-monkey-see will crash Tomcat server. If you modified a Java file then Tomcat will automatically updates the changes ====> crashed most of the time
* Conversation timer should be flexible to turn on/off. Say if your application requires that the application form has to be in the edit mode all time unless user clicked on the Done button. If you want to conversation to end at the same time as the http session timeout, then you have to set the conversation timeout to equal to the HTTP session timeout, 30 minutes, you are asking for bog down - too many sessions. Otherwise, say while the user is looking at the data report for 5 minutes then she tries to fix something on application entry form, boom! Conversation is timed out, redirected to the home.faces. This is bad!!! Imagine that you have the tree and tab interfaces and the application has tons of modules, unless your application is simple like the Hotel demo app.
* Seam's security is not sufficient enough to protect all the resources besides the component classes and the XHTML files, like the standard J2EE Form-based Authentication or ACEGI. If ACEGI or custom filter is used, Seam's conversation stack will kick in (from my experience here) very unpredictable.
My thoughts are Seam has simplified the development ALOT, but its conversation is not really ready for prime for those medium/big sized applications. If only Seam is flexible enough on its conversation setting to allow it to be on/off, then it will be more suitable. Remember that most of the applications' requirements don't NEED separate conversational workspaces at all. Why can't I turn off the conversation timer like Spring application for instance.
If you have any advice, comment or suggestion on how to stop the conversation timer or how to turn it on/off, please share. Otherwise, people like me is a bit hesitated for using Seam for any later projects.