3 Replies Latest reply on Jul 8, 2009 7:50 PM by B Tomic

    Model difference between Seam 2 and 3 - Bad time to start learning?

    B Tomic Newbie

      I've recently started learning Seam with the help of Seam in Action, but reading about WebBeans and Seam 3 made me feel like I've picked a wrong time. Is Seam 3 as very different from Seam 2 as it sounds? I am afraid that my new knowledge will soon grow irrelevant...

        • 1. Re: Model difference between Seam 2 and 3 - Bad time to start learning?
          Arbi Sookazian Master

          AFAIK, Seam 3 has Web Beans as the core.  So it's Web Beans plus extensions like the iText, PDF, email, Excel, Seam remoting, Seam custom tags, etc.  There is a SPI in Web Beans that allows the following:


          Web Beans is intended to be a platform for frameworks, extensions and integration with other technologies. Therefore, Web Beans exposes a set of SPIs for the use of developers of portable extensions to Web Beans. For example, the following
          kinds of extensions were envisaged by the designers of Web Beans:
          • integration with Business Process Management engines,
          • integration with third-party frameworks such as Spring, Seam, GWT or Wicket, and
          • new technology based upon the Web Beans programming model.



          If you are considering writing an external-facing app with high userbase/load, you're probably better off waiting for Seam 3 as there are considerable performance optimizations with JSF 2.0 and dependency injection, interceptors, etc.  How significant these improvements will be is unknown (in prod envmts) at this time.


          I am not sure what the plan is for migration of Seam 2 to Seam 3 apps, although I believe Seam 3 is supposed to be backwards-compatible.


          Also, since Web Beans uses @PersistenceContext to inject an EntityManager interface instance, I'm not sure if the SMPC will be supported as well as Hibernate MANUAL flush.  I imagine it will be to support atomic conversations as this is one of the pinnacles of the Seam framework (something that has solved a lot of problems including the dreaded Hibernate LazyInitializationException with Spring).


          Here is a useful link on porting status:  http://seamframework.org/Documentation/Seam3PortingStatus

          • 2. Re: Model difference between Seam 2 and 3 - Bad time to start learning?
            Arbi Sookazian Master

            Also, from JBoss's track record in terms of JIRA issues/bugs, etc. even with their GA releases, you should continue with Seam 2 for now.


            Web Beans and EE 6 are not completely final yet AFAIK and currently there is only one implementation of EE 6 (Glassfish V3, the reference implementation).


            By the time Seam 3 is stable, it will be 6-12 months easy.


            Stick with Seam 2 for development/prod deployment for now...

            • 3. Re: Model difference between Seam 2 and 3 - Bad time to start learning?
              B Tomic Newbie

              Thanks a lot for the input and some clarifications... You're right about backwards compatibility, Seam 2 and 3 will be 100% interoperable, or at least that's what I keep hearing. I've just read Gavin's Introduction to WebBeans and it seems to be just as I feared - it renders the current knowledge of Seam pretty useless.


              I almost can't believe how bad time I chose to discover this wonderful framework that Seam is.