Seam 3.0 CR3 released

Posted by    |       Seam

It's time for another Seam release! This one wasn't actually planned (we had hoped to go straight to final after CR2), however with a number of last minute API changes I thought it would be best to run Seam through the testing wringer one last time before we put our stamp of approval on it. The good news is that the 3.0 Final release is very close behind, and if all goes to plan it will be out before the end of the month just like I promised.

Let's get the links out of the way first, then look at what has changed.


Reference Documentation

API Documentation

Report issues

CR3 Changes

@SeamManaged moved, renamed to @ExtensionManaged

One of the first things we changed was the @SeamManaged annotation, which was provided by the persistence module. After various feedback from team members, it was decided that this was a generally useful annotation that applied to more than just persistence. With that in mind we moved it into Seam Solder, a module containing a general set of useful annotations and utility features used by many of the other modules. The new annotation is @org.jboss.seam.solder.core.ExtensionManaged. Make sure that you update any instances of @SeamManaged in your application (most certainly to be found on EntityManager producer methods) to the new @ExtensionManaged.

Refactoring of transaction-related classes

Our next change was also in the persistence module. This module deals with two main concerns, persistence and transactions. After discussions within the team we decided that the transactions part of the module may one day become worthy of its own module (which would be called Seam Transaction, obviously). With that in mind, we refactored all the transaction-related classes so that they were in their own package.

The greatest affect that this will have on users is for beans or bean methods annotated with @Transactional. If you're using this annotation to provide transactional support to your beans then the import for this class will need to be changed from org.jboss.seam.persistence.transaction.Transactional to just org.jboss.seam.transaction.Transactional.

Typesafe logging

This is a feature that we had on the cards for the while, but was put on the backburner for the Seam 3.0 release because of some implementation difficulties with the annotation processing. I'm extremely pleased to say though that the guys responsible for this feature came through in a major way and got it hammered out just in time, so a huge thanks goes to James Perkins and Ken Finnigan and for making this happen, and to David Lloyd for making himself available for consultation. These guys are a real credit to the open source community. I'll try to encourage one of them to write up a blog entry about this very cool feature in the near future.


Leading up to this release, support for Glassfish has been a great challenge for us. However I'm happy to say that it seems all the known issues have now been addressed, thanks to the huge research effort made by Dan Allen. If you are using Seam on Glassfish, then I strongly recommend you bookmark Dan's blog post on the subject, as this is the definitive source for Seam/Glassfish compatibility issues.


Besides the major changes listed above, there have also been numerous other bug fixes and improvements to documentation and examples. I encourage you to try out this release, and let us know what you think in the comments section below. At this point in time the Seam API is locked in, so there won't be any more breaking API changes before the final release, I promise :). Over the next week we'll be finishing off the last few tasks remaining (such as finishing up documentation, testing all the examples, etc) to get everything prepared for the 3.0.0.Final release. We'd love to hear from you if you think there are any last minute improvements that we've missed, so any and all feedback is appreciated.

Back to top