Foreword – Seam in Action


The most challenging part of being a developer on the Seam project isn’t writing the code—it’s trying to explain Seam to new users. There’s a large gap that a Seam neophyte must cross to really “get” what Seam is about. The problem isn’t that Seam is overly complex, or that it requires an esoteric skill set. Seam puts together a number of ideas that are unfamiliar to mainstream Java developers. Many of those ideas challenge the common wisdom of enterprise Java development.

To start with, Seam fills a gap not many Java developers realize exists. We are so accustomed to working with a half dozen disintegrated technologies that a truly integrated application framework seems foreign to us. This disintegration is most painfully clear at the persistence layer. Where ineffective caching and lazy instantiation issues plague most applications, Seam actually gets it right. When you consider that the creators of Seam were the brains behind Hibernate, that’s not hard to believe!

Then you’ve got Seam’s dynamic bidirection injection (bijection), which is radically different from the static injection offered by the popular dependency injection frameworks. And we haven’t even mentioned the clever stateful components in a world where the prevailing technologies force all applications into a multilayered stateless architecture regardless of whether that architecture suits the application being developed.

We’re just scratching the surface, and already we can see that Seam offers a vision that’s so different from the status quo that guiding a new Seam user becomes a huge challenge. As a result, few introductions to Seam go beyond the basics, presenting the ABCs of the technology without showing how to put the letters together to make words and sentences. Seam in Action is the first Seam book to capture the spirit of Seam and show you how to put those words and sentences together the way we on the Seam team intended the technology to be used.

What impresses me most about the book you’re holding in your hands is that it doesn’t blindly toe the Seam party line. Dan Allen has painstakingly broken Seam down to its core concepts and reassembled them in a way that is fresh and unique. Seam in Action isn’t a simple-minded regurgitation of the Seam reference documentation. Instead, it’s a perfect companion to it, showing how to understand Seam and best apply it to your own applications.

Seam can help you code better, more functional applications. It can help you work faster, and it can help you code your applications with a simpler, easier-to-manage architecture. But you’ll only reap those benefits if you take the time to learn how to best apply the technology. Seam in Action is the perfect guide to get you to the point where you can apply Seam to its full potential.

If you’re up to the challenge, then, to shamelessly borrow the analogy of the book, I invite you to step up to the first tee—and take a swing.


Senior Engineer, Red Hat