Don't overlook this framework

June 10, 2010

During my long flight to Frankfurt last month, I responded to an interview by Jan Groth about Seam for the German Java Magazin. In the interview, I reflect on the value of Open Source, how I got involved in Seam and where we are headed with Weld and Seam 3. I ended up writing so much (surprise, surprise) it had to be split into two parts. I justify my thoroughness in my first response:

I'm going to be a little long-winded [...], but I think it's important to communicate what led me to Seam because it says a lot about the software itself.

The full, 2-part interview is available online at the JAXenter Magazine website:

In part 1, I share the thoughts I had after reading the Seam reference documentation the first time:

It's like the Seam developers were reading my mind. [...] I felt like a kid in a candy store. I started banging out applications in no time and I was happy with how they looked.

I go on to explain that it wasn't just enough for me to know about it. I wanted other to benefit too.

I didn't want others to overlook this framework given how much it helped me. While the manual made sense, I knew it wasn't enough. [...] I decided to yell from the mountaintops by writing a series about it for IBM developerWorks.

The overwhelming feedback from that series made it pretty clear, someone needed to write a book about it (a higher mountaintop) that was going to explain every last detail. I took on that challenge (and believe me, it was quite a challenge.) [...]

I quite literally immersed myself in Hibernate, JPA, EJB 3, JTA, JSF and Java EE 5 in general. I came to appreciate the value of the platform, the remaining limitations and what Seam had to do to fill in the gaps.

I squeeze in a short review of the Art of Community at the end of the first part because it really sums up my vision of this project:

The Art of Community is a truly inspiring book and it reminded me why I love doing what I's really about the people and the ideas. We are not just writing software for the community and publishing it as Open Source. It's the community's software, solutions to problems that come from the real world. We want to support and foster that engine and the Seam Community Liaison is the spark plug of the engine and ensures it's properly greased.

Part 2 dives more into the technical details and where we are headed.

CDI and Seam 3 are the Future of Both the Seam Community and Red Hat.

I explain our standards strategy as a defender of choice:

Red Hat is strong when the Java EE platform is strong. Our strategy does not depend on the platform remaining weak to justify the existence of our projects. It's quite the opposite. If we make one of our own projects obsolete, or some part of it, that's progress.

To quote Jay Balunas, it's cyclic:

Find a void. Fill the void. Standardize the fill.

I liken Seam modules to JSF UI component libraries and explain how we will ensure portability:

  1. Seam 3 is primarily built on the CDI portable extension SPI, insulated from handling low-level concerns that run a high risk of breaking portability.
  2. One of the principal requirements of Seam 3 modules is portability.
  3. The Arquillian in-container test framework allows modules to be continuously tested against an array of application servers.

But with the improvements to Java EE, the question comes up whether Seam is still needed:

Is Java EE 6 a solid platform? Yes. Will you still need extensions? Yes. And CDI was designed specifically to be able to root and foster such an ecosystem. You can even write your own extensions, which really wasn't possible with Seam 2. Now we just need a plug-in site ;)

I'm very excited about all the innovation that is taking place in the JBoss Community right now and I encourage you to become a part of it. You never know where it will lead, but I can guarantee you it will open doors for you.

This post is syndicated from my JBoss Community blog.

Posted at 12:19 PM in Java, Seam, Seam News, Seam in Action | Permalink Icon Permalink | Comment Icon Comments (3)