Sunday, 27 January 2008

Why I ditched Seam 2

I recently started using Seam to help develop a web application running under Weblogic. In the end I ended up ditching it and going with myfaces JSF.

Reasons for ditching Seam included:

I was not using EJB3 so did not benefit from the tight integration between JSF and EJB programming models.

There were 2 files controlling navigation faces-config.xml (myfaces) and pages.xml (Seam) which seemed a little confusing. I think in practice you should keep the faces-config.xml pretty empty and just use the Seam pages.xml.

Seam 2 does not run under jetty as there is an EL library mismatch.

The test framework is great if you use test NG. If you have to use JUnit, then you need to port the test ng classes to use junit 4 annotations and then try and get the test framework / Seam to bootstrap itself which seems to involve getting an embeddable EJB runtime up and running as Seam uses Stateful session beans to help support its conversational state.

When plugging in a custom JAAS module The security mechanism employed by Seam led me to believe it might plugin nicely with JAAS, but reports on the web led me to believe getting this to work with a Weblogic JAAS module might not work.


I did have to spend time producing maven pom to get it to build under maven too. This is documented here
so did not take too long, just another thing to consider.

The support on the Seam forum was not great. I posted a couple of questions and got no response. My feeling towards open source is that I know people do it for free but if they are actively going to encourage people to use their frameworks then they should support them properly.

I am not saying Seam is bad at all, but I was not getting much benefit from using it over JSF apart from a couple of nice annotations.

No comments: