In this chapter we've taken a look at some of the enterprise features that are available within the Seam Framework.
We've looked at internationalizing an application and seen how we can easily develop resource bundles and dynamically change them whilst our application is running. Whilst looking at localization we also saw how we can easily change the error messages generated by Hibernate Validator annotations, as introduced in Chapter 2.
We've looked at URL rewriting and seen how it can be used to make URLs easier for people to remember and to make our applications more search engine friendly.
Next, we took a look at Seam events and saw how we can program against an event driven architecture, both raising and observing events.
Finally, we looked at both PDF and email generation and saw how both types of content are generated based upon Facelets templates.
Hopefully, you've now got a good understanding of the features provided by Seam and should be able to start developing your own Seam...