Mark Little, the CTO of JBoss, blogged about our vision for component models in JBoss platforms - he gives a great overview, describing how Seam (and JSR-299/Weld) will form the core programming model.
Created: 12. Nov 2009, 22:28 CET (Pete Muir)
I'm kind of a noob. What, exactly, is meant by Component Model? Are we talking about CDI/Weld components? How does Seam work into this? Where does Weld end and Seam begin or vice-versa?
Maybe I just need to check out the source and dive through and try to figure all this out but a lot of this stuff is still black magic to me and I'm not really grokking how this all works together. Any suggestions for someone who wants to really understand the future of Java we're building here?
I'll take a stab at an answer, though I expect Gavin will weigh in :-)
Googling produces a few good hits which discuss what a component model is. But more concretely, yes we are talking about CDI components. Seam 1 and Seam 2 had a component model (which you use whenever you use Seam :-) which is one of the inspirations for JSR-299 - CDI can be seen as the successor to this part of Seam. However Seam had a lot of extra goodies (such as mail support, or Security) which aren't in JSR-299. We'll continue to use Seam (specifically Seam 3) as the vehicle to deliver these.
Finally, if you want to understand a bit more how this fits together, read Gavin's blog which goes into some detail on how the EE platform looks.
Well, in general, it's a term for a programming model for objects that run inside some kind of container.
In this case, we're really talking about a Java EE container, and the are Java classes. The component model is defined by the Java EE specifications (managed beans, CDI, EJB, servlets).
Sure, but I think we're talking in a bit more generality.
Seam3 is a set of services (portable extensions) layered on top of CDI. CDI defines the basic component model.
I want to blog more about this, just have not had time yet.