SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Downloaden Sie, um offline zu lesen
Java Server Faces
                             adopting the standard

                                                    Roi Aldaag
                                               Consultant, AlphaCSP



                                                                      2
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Agenda


                Introduction
                Architecture
                Configuration
                Features
                Pros & Cons




                                                                 3
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Introduction




                    Not so long ago, if you “Googled“
                    the word JSF, you probably would
                    have come across …




                                                                 4
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Introduction



                                    The F-35 Joint Strike Fighter (JSF) …




                                                                            5
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Introduction

   Today you’d find…



                           JavaServer Faces Technology




                                                                 6
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Introduction :: What is JSF?


           What is JSF ?
                        Specification
                        UI framework
                        Component based
                        Server side
                        Java web applications




                                                                 7
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Introduction :: Motivation

   9 Billion Reasons for JSF…




                                                                 8
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Introduction :: Motivation


           JCP Standard

                             JSF 1.0/1.1                         JSR 127   May 2005
                             JSF 1.2                             JSR 252   May 2006
                             JSF 2.0                             JSR 314   Q4 2008 ?
                                                                           / JEE6




                                                                                       9
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Introduction :: Motivation


           Vendor adoption
                    JSF RI
                    MyFaces




                                                                 10
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Introduction :: Motivation


           Popularity
                        Commercial Projects
                        Open Source Projects
                        Market
                        Documentation




                                                                 11
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Introduction :: Motivation


           IDE integration
                    Visual tool support
                    Drag & Drop
                    Auto-complete




                                                                 12
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Introduction :: Motivation


           Tools
                    Component Libraries
                                IceFaces
                                RichFaces
                                ADF / Trinidad
                                Tomahawk
                    Extensions
                              Facelets
                              Ajax4Jsf
                              DinoFaces




                                                                 13
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Introduction :: Motivation


           View Technology
                    JSP / Servlet
                    Other template engines
                              Facelets
                              JSFTemplating
                    Multiple rendering output
                     from same pages




                                                                 14
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Introduction :: What is Seam?


           What is Seam ?
                    A lightweight framework for JEE5
                    Unifies JSF and EJB models
                     (Web Beans / JSR 299)
                    Integrates JSF, POJOs, JPA, jBMP, Drools
                    Annotation / EL based
                    Extends JSF
                    JBoss OS (LGPL)
                    Release at 2006
                    Current version 2.0.2 SP1

                                                                 15
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Introduction :: What is Seam?


           Misconceptions
                        Can be used without EJB3
                        Does not need a container
                        Has a small footprint
                        Easy integration




                                                                 16
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Introduction :: Why JSF+Seam?


           Why JSF + Seam?
                    JSF has some weaknesses…
                    Seam extends and enhances JSF
                                Reduces boilerplate code
                                Annotations
                                RESTful URLs
                                JSF Lifecycle
                                Contextual state management
                                Ajax Remoting
                                Exception Handling
                    Simple Integration
                              EJB3 / jBMP/ Drools / Spring

                                                                 17
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Introduction :: Seam in action




                                                                 18
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Agenda


                Introduction
                Architecture
                Configuration
                Features
                Pros & Cons




                                                                 19
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Architecture :: JSF MVC

                                                                                                                 Controller

       Model
                                                                                                                                              Config
                                                                                                                                         (faces-config.xml)




       View                                                     Request                                                Events
                                                                                                                  (ValueChangeEvent,
                                                                                                                      ActionEvent)
                                                                                                                                       Event Listeners &
                                                                            Front Servlet                                               Action Handlers


       Controller
                                                                             (FacesServlet)                                            (ValueChangeListener,
                                                                                                                                           ActionListener)




                                                                             Component
                                                                               Tree                              Component                  Business
                                                                            (UIComponent)                          Model                     Objects
                                                                                                                 (Java Beans)            (Managed Beans)



                                                                                 UIViewRoot
                                                                                                                 Delegates
                                                                                      UIForm                     (Convertors,
                                                                                                                  Validators,
                                                                                                                  Renderers)
                                                                 Response             UIPanel


                                                                            UIInput             UIInput


                                                                                                                 Resources
                                                                                                                    (JSP,
                                                                                                                    XML,
                                                                                                                 Properties)


                                                                                                          View                              Model


                                                                                                                                                               20
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Architecture :: JSF MVC

                                                                                                                 Controller

             Model
                                                                                                                                              Config
                                                                                                                                         (faces-config.xml)




              POJO’s                                            Request                                                Events
                                                                                                                  (ValueChangeEvent,
                                                                                                                      ActionEvent)
                                                                                                                                       Event Listeners &
                                                                            Front Servlet                                               Action Handlers
                                                                             (FacesServlet)                                            (ValueChangeListener,
                                                                                                                                           ActionListener)




                                                                             Component
                                                                               Tree                              Component                  Business
                                                                            (UIComponent)                          Model                     Objects
                                                                                                                 (Java Beans)            (Managed Beans)



                                                                                 UIViewRoot
                                                                                                                 Delegates
                                                                                      UIForm                     (Convertors,
                                                                                                                  Validators,
                                                                                                                  Renderers)
                                                                 Response             UIPanel


                                                                            UIInput             UIInput


                                                                                                                 Resources
                                                                                                                    (JSP,
                                                                                                                    XML,
                                                                                                                 Properties)


                                                                                                          View                              Model


                                                                                                                                                               21
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Architecture :: JSF MVC

                                                                                                                 Controller

             Controller
                                                                                                                                              Config
                                                                                                                                         (faces-config.xml)




              Front Servlet                                     Request                                                Events
                                                                                                                  (ValueChangeEvent,
                                                                                                                      ActionEvent)
                                                                                                                                       Event Listeners &

              Configuration                                                Front Servlet
                                                                             (FacesServlet)
                                                                                                                                        Action Handlers
                                                                                                                                       (ValueChangeListener,
                                                                                                                                           ActionListener)




              Event Listeners
                                                                             Component
                                                                               Tree                              Component                  Business
                                                                            (UIComponent)                          Model                     Objects
                                                                                                                 (Java Beans)            (Managed Beans)



                                                                                 UIViewRoot
                                                                                                                 Delegates
                                                                                      UIForm                     (Convertors,
                                                                                                                  Validators,
                                                                                                                  Renderers)
                                                                 Response             UIPanel


                                                                            UIInput             UIInput


                                                                                                                 Resources
                                                                                                                    (JSP,
                                                                                                                    XML,
                                                                                                                 Properties)


                                                                                                          View                              Model


                                                                                                                                                               22
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Architecture :: JSF MVC

                                                                                                                 Controller

             View
                                                                                                                                              Config
                                                                                                                                         (faces-config.xml)




              Component Tree                                    Request                                                Events
                                                                                                                  (ValueChangeEvent,
                                                                                                                      ActionEvent)
                                                                                                                                       Event Listeners &

              Component Model                                              Front Servlet
                                                                             (FacesServlet)
                                                                                                                                        Action Handlers
                                                                                                                                       (ValueChangeListener,
                                                                                                                                           ActionListener)




              Delegates
              Resources                                                     Component
                                                                               Tree
                                                                            (UIComponent)
                                                                                                                 Component
                                                                                                                   Model
                                                                                                                 (Java Beans)
                                                                                                                                            Business
                                                                                                                                             Objects
                                                                                                                                         (Managed Beans)



                                                                                 UIViewRoot
                                                                                                                 Delegates
                                                                                      UIForm                     (Convertors,
                                                                                                                  Validators,
                                                                                                                  Renderers)
                                                                 Response             UIPanel


                                                                            UIInput             UIInput


                                                                                                                 Resources
                                                                                                                    (JSP,
                                                                                                                    XML,
                                                                                                                 Properties)


                                                                                                          View                              Model


                                                                                                                                                               23
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Architecture :: Component Tree


                         JSF tags                                Component Tree                Markup

      ...
                                                                      UIViewRoot
      <f:view>
                                                                                               HTML
        <h:form>
         <h:panelGrid columns = "2">                                       UIForm
            <h:inputText/>
            <h:inputSecret/>                                                                    WML
          </panelGrid>
                                                                           UIPanel
        </h:form>
      </f:view>
      ..
                                JSP                                                             XML
                                                                 UIInput             UIInput




                                                                                                        24
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Architecture :: JSF Lifecycle


       JSF Lifecycle                                             Request
                                                                           Restore View

       1.           Restore view
       2.           Apply request values                                         Apply Request
                                                                                    Values

       3.           Process validations
       4.           Update model values                                                   Process Validation


       5.           Invoke application
       6.           Render response
                                                                                                    Update Model
                                                                                                       Values




                                                                                                         Invoke Appilcation




                                                                                                                   Render Response
                                                                                                   Response




                                                                                                                                     25
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Architecture :: Seam Lifecycle


       Seam Lifecycle                                            Request
                                                                           Restore View
                                                                                                                      Restore
                                                                                                                    Conversation

       1.           Restore view
       2.           Restore Conversation                                         Apply Request
                                                                                    Values
                                                                                                                     Apply Page
                                                                                                                     Parameters

       3.           Apply Page Parameters
       4.           Apply request values                                                  Process Validation


       5.           Process validations
       6.           Update model values
                                                                                                    Update Model
                                                                                                       Values
                                                                                                                                     Process Data Model
       7.           Invoke application                                                                                                    Selection



       8.           Process Selection
                                                                                                         Invoke Appilcation
                                                                                                                                     Invoke Page Action


       9.           Store Conversation
                                                                                                                   Render Response   Store Conversation
       10.          Render response                                                                Response




                                                                                                                                                          26
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Architecture :: Seam Concepts


          Seam Concepts
          1.          Three Tier
          2.          POJOs and annotations
          3.          IoC and bijection
          4.          Contextual state management
          5.          Interceptors




                                                                 27
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Agenda


                Introduction
                Architecture
                Configuration
                Features
                Pros & Cons




                                                                 28
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Configuration :: JSF

                                                                 faces-config.xml




                                                                                29
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Configuration :: Seam

                                                                 faces-config.xml




                                                                                30
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Configuration :: JSF

                                                                 web.xml




                                                                       31
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Configuration :: Seam

                                                                 web.xml




                                                                       32
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Agenda


                Introduction
                Architecture
                Configuration
                Features
                Pros & Cons




                                                                 33
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: Demo JSF Project
                                                                  jsfLogin.jsp    jsfMasterDetail.jsp
            /webproj
                          src


                                  managed




                       WebRoot


                                        WEB-INF                  LoginBean.java   MasterDetailBean.java


                                                       XML



                                    JSP
                                                       XML



                                    JSP
                                                                     web.xml         faces-config.xml




                                                                                                          34
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: Demo Seam Project
                                                                           jsfLogin.jsp    jsfMasterDetail.jsp
            /webproj
                         src


                                 managed




                       WebRoot


                                     WEB-INF
                                                 XML
                                                                          LoginBean.java   MasterDetailBean.java


                                                 XML

                                            classes
                                  JSP


 seam.properties                               lib

components.xml                    JSP
                                                                              web.xml         faces-config.xml
                                                      jboss-seam.jar
                                                      jboss-seam-ui.jar

                                                                                                                   35
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: Demo Login page

   jsfLogin.jsp




                                                                            UIViewRoot

                                                                             UIForm

                                                                             UIPanel


                                                                 UIPanel               UIPanel

                                                                 UIOutput          UICommand

                                                                 UIInput

                                                                 UIOutput

                                                                 UIInput



                                                                                                 36
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: JSF Value Binding
         LoginBean.java                                          faces-config.xml




                                                                            Managed Bean

                                                                 jsfLogin.jsp




                                                                                Unified EL


                                                                                             37
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: JSF Method Binding
         LoginBean.java                                          jsfLogin.jsp




                                                                                Invoke Application
                                                                                Phase




                                                                                                     38
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: JSF State Management

            jsfLogin.jsp                                                jsfMasterDetail.jsp

                                                                 User




                                      Dependency Injection




                                                                                              39
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: Seam State Management



           Contextual state management
                    Bijection
                              @In - Injection
                              @Out – Outjection
                              Dynamic, contextual, bidirectional
                    Context Scope
                              Event < Page < Conversation <
                               Business Process < Session < Application
                    Conversation
                              Temporary conversation
                              Long-running conversation
                              ConversationId




                                                                          40
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: Seam State Management

      MasterDetailBean.java




                                                                 41
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: JSF Page Flow
         LoginBean.java
                                                                     jsfLogin.jsp   jsfMasterDetail.jsp




                                                                 faces-config.xml




                                                                                                          42
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: Seam Page Flow


           Page Actions
                    HTTP GET
                    Bookmarking
                    RESTful URLs

                                                                 HTTP POST




                                                                 HTTP GET




                                                                             43
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: Seam Page Flow


           Page Flow
                                                                              <<Start State>>
                                                                                   start




                        JBoss Business Process Management (jBPM)
                                                                                <<Page>>
                                                                                  login


                        Used to define process workflow / page flow
                                                                       true

                                                                               <<Decision>>
                                                                                   User

                        Define transition between pages                      authenticated ?
                                                                                                false



                        Define navigation rules for each page                  <<Page>>
                                                                                 contacts


                        Flow is based on events and conditions
                                                                              <<End State>>


           Back button
                                                                                  end




                        In conversation mode, back button is disallowed
                        Undefined transition
                        Seam blocks actions from “stale” pages
                        Redirects to relevant page

                                                                                                 44
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: JSF Validations

              MasterDetailBean.java




               jsfMasterDetail.jsp




                                                                 45
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: Seam Validations

              MasterDetailBean.java




               jsfMasterDetail.jsp




              @org.hibernate.validator.Email



                                                                 46
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: JSF Error Handling




                  javax.servlet.ServletException:
                  javax/servlet/jsp/tagext/JspIdConsumer




                                                                 47
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: Seam Error Handling




                                                                 48
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: Seam Error Handling


           Exception Annotations




                                                                 49
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: Demo MasterDetail page

   jsfMasterDetail.jsp




          MasterDetailBean.java




                                                                 50
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: Demo MasterDetail page

   jsfMasterDetail.jsp - continued




                                                                          HtmlDataTable



                                                                  HtmlColumn       HtmlColumn

                                                                 HtmlOutputText   HtmlOutputText




                                                                                                   51
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: JSF Ajax


           Ajax: Page Wide
                    Page wide support (region, zone)‫‏‬
                        Add support to existing components
                        Sub view processing
                        Partial tree rendering
                        Normal lifecycle
                        Partial page refresh
                        Example:
                              Ajax4Jsf, Dynamic Faces




                                                                 52
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: JSF Ajax


           Ajax: Component Wide
                        Ajaxified components
                        Client validations
                        Client component interaction
                        Custom lifecycle
                        Example:
                              RichFaces, IceFaces, ADF (Trinidad)‫‏‬




                                                                      53
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: Seam Ajax


           Ajax Remoting
                    Similar to DWR
                    Access seam components from JS
                    JavaScript APIs
                              Seam.Component
                              Seam.Remote
                    Expose server side components
                              @WebRemote
                    Compatible with Ajax4Jsf
                    Dojo / GWT integration



                                                                 54
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features :: Documentation

           JSF
                    Specification
                    Forums
                    Books



                                        Seam
                                                  Reference
                                                  Forums
                                                  Books


                                                                 55
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Agenda


                Introduction
                Architecture
                Configuration
                Features
                Pros & Cons




                                                                 56
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Pros & Cons


           Seam Sweet spots
                        Seam Gen (RoR)
                        Security (Role / Rule based)
                        Spring Integration
                        Integrated testing FW (TestNG)




                                                                 57
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Pros & Cons


           JSF Shortcomings
                        Too much wiring
                        HTTP GET / REST is hard
                        Complicated Lifecycle
                        Slow learning curve
                        Writing new components
                        Poor exception handling




                                                                 58
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
References


           JSF
                    http://www.jcp.org/en/jsr/detail?id=252
                    http://jcp.org/en/jsr/detail?id=314
                    http://myfaces.apache.org/
           Seam
                    http://www.jboss.com/products/seam
                    http://www.seamframework.org/




                                                                 59
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Thank
                                                    You !
                                                                 60
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar

Weitere ähnliche Inhalte

Was ist angesagt?

Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Arun Gupta
 
JavaOne BOF 3615 Latest Java UX Updates
JavaOne BOF 3615 Latest Java UX UpdatesJavaOne BOF 3615 Latest Java UX Updates
JavaOne BOF 3615 Latest Java UX UpdatesJeff Hoffman
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010Arun Gupta
 
JavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaJavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaTakashi Ito
 
Whats Cool in Java E 6
Whats Cool in Java E 6Whats Cool in Java E 6
Whats Cool in Java E 6Arun Gupta
 
10 reasons why Nuxeo is using GlassFish
10 reasons why Nuxeo is using GlassFish10 reasons why Nuxeo is using GlassFish
10 reasons why Nuxeo is using GlassFishNuxeo
 
[Challenge:Future] Chocoholic
[Challenge:Future] Chocoholic [Challenge:Future] Chocoholic
[Challenge:Future] Chocoholic Challenge:Future
 
Ed presents JSF 2.2 at a 2013 Gameduell Tech talk
Ed presents JSF 2.2 at a 2013 Gameduell Tech talkEd presents JSF 2.2 at a 2013 Gameduell Tech talk
Ed presents JSF 2.2 at a 2013 Gameduell Tech talkEdward Burns
 
Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)Logico
 
GlassFish Community Update @ JavaOne 2011
GlassFish Community Update @ JavaOne 2011GlassFish Community Update @ JavaOne 2011
GlassFish Community Update @ JavaOne 2011Arun Gupta
 
Making the Switch: One Team's Story of Adopting JIRA, FishEye, Eclipse & Myly...
Making the Switch: One Team's Story of Adopting JIRA, FishEye, Eclipse & Myly...Making the Switch: One Team's Story of Adopting JIRA, FishEye, Eclipse & Myly...
Making the Switch: One Team's Story of Adopting JIRA, FishEye, Eclipse & Myly...Atlassian
 
Websphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open SourceWebsphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open SourceIBM WebSphereIndia
 
Java on zSystems zOS
Java on zSystems zOSJava on zSystems zOS
Java on zSystems zOSTim Ellison
 
20191119 Cloud Native Java : GraalVM
20191119 Cloud Native Java : GraalVM20191119 Cloud Native Java : GraalVM
20191119 Cloud Native Java : GraalVMTaewan Kim
 
Designing JEE Application Structure
Designing JEE Application StructureDesigning JEE Application Structure
Designing JEE Application Structureodedns
 
Building Secure Mashups With OpenAjax
Building Secure Mashups With OpenAjaxBuilding Secure Mashups With OpenAjax
Building Secure Mashups With OpenAjaxelliando dias
 
The Power of Enterprise Java Frameworks
The Power of Enterprise Java FrameworksThe Power of Enterprise Java Frameworks
The Power of Enterprise Java FrameworksClarence Ho
 
Glassfish Overview 29 Oktober 2009
Glassfish Overview 29 Oktober 2009Glassfish Overview 29 Oktober 2009
Glassfish Overview 29 Oktober 2009Eugene Bogaart
 

Was ist angesagt? (20)

Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
 
JavaOne BOF 3615 Latest Java UX Updates
JavaOne BOF 3615 Latest Java UX UpdatesJavaOne BOF 3615 Latest Java UX Updates
JavaOne BOF 3615 Latest Java UX Updates
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
 
JavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaJavaOne2015報告会 in Okinawa
JavaOne2015報告会 in Okinawa
 
Whats Cool in Java E 6
Whats Cool in Java E 6Whats Cool in Java E 6
Whats Cool in Java E 6
 
10 reasons why Nuxeo is using GlassFish
10 reasons why Nuxeo is using GlassFish10 reasons why Nuxeo is using GlassFish
10 reasons why Nuxeo is using GlassFish
 
[Challenge:Future] Chocoholic
[Challenge:Future] Chocoholic [Challenge:Future] Chocoholic
[Challenge:Future] Chocoholic
 
Ed presents JSF 2.2 at a 2013 Gameduell Tech talk
Ed presents JSF 2.2 at a 2013 Gameduell Tech talkEd presents JSF 2.2 at a 2013 Gameduell Tech talk
Ed presents JSF 2.2 at a 2013 Gameduell Tech talk
 
Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)
 
GlassFish Community Update @ JavaOne 2011
GlassFish Community Update @ JavaOne 2011GlassFish Community Update @ JavaOne 2011
GlassFish Community Update @ JavaOne 2011
 
Making the Switch: One Team's Story of Adopting JIRA, FishEye, Eclipse & Myly...
Making the Switch: One Team's Story of Adopting JIRA, FishEye, Eclipse & Myly...Making the Switch: One Team's Story of Adopting JIRA, FishEye, Eclipse & Myly...
Making the Switch: One Team's Story of Adopting JIRA, FishEye, Eclipse & Myly...
 
Websphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open SourceWebsphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open Source
 
Java on zSystems zOS
Java on zSystems zOSJava on zSystems zOS
Java on zSystems zOS
 
20191119 Cloud Native Java : GraalVM
20191119 Cloud Native Java : GraalVM20191119 Cloud Native Java : GraalVM
20191119 Cloud Native Java : GraalVM
 
Designing JEE Application Structure
Designing JEE Application StructureDesigning JEE Application Structure
Designing JEE Application Structure
 
Building Secure Mashups With OpenAjax
Building Secure Mashups With OpenAjaxBuilding Secure Mashups With OpenAjax
Building Secure Mashups With OpenAjax
 
Joomla! new
Joomla! newJoomla! new
Joomla! new
 
Joomla! old
Joomla! oldJoomla! old
Joomla! old
 
The Power of Enterprise Java Frameworks
The Power of Enterprise Java FrameworksThe Power of Enterprise Java Frameworks
The Power of Enterprise Java Frameworks
 
Glassfish Overview 29 Oktober 2009
Glassfish Overview 29 Oktober 2009Glassfish Overview 29 Oktober 2009
Glassfish Overview 29 Oktober 2009
 

Ähnlich wie Seminar.2008.Jsf.Seam

Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Abhishek Gupta
 
Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Abhishek Gupta
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureArun Gupta
 
Introduction To J Boss Seam
Introduction To J Boss SeamIntroduction To J Boss Seam
Introduction To J Boss Seamashishkulkarni
 
Sun Java EE 6 Overview
Sun Java EE 6 OverviewSun Java EE 6 Overview
Sun Java EE 6 Overviewsbobde
 
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008Baruch Sadogursky
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureArun Gupta
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureArun Gupta
 
Comparison Of Open Source App Servers
Comparison Of Open Source App ServersComparison Of Open Source App Servers
Comparison Of Open Source App ServersRogue Wave Software
 
Java EE 6 : Paving The Path For The Future
Java EE 6 : Paving The Path For The FutureJava EE 6 : Paving The Path For The Future
Java EE 6 : Paving The Path For The FutureIndicThreads
 
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010Arun Gupta
 
GlassFish OSGi Server
GlassFish OSGi ServerGlassFish OSGi Server
GlassFish OSGi ServerArtur Alves
 
Java Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewJava Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewEugene Bogaart
 
java web framework standard.20180412
java web framework standard.20180412java web framework standard.20180412
java web framework standard.20180412FirmansyahIrma1
 
JSF and Seam
JSF and SeamJSF and Seam
JSF and Seamyuvalb
 
GlassFish Tool Bundle for Eclipse
GlassFish Tool Bundle for EclipseGlassFish Tool Bundle for Eclipse
GlassFish Tool Bundle for EclipseLudovic Champenois
 

Ähnlich wie Seminar.2008.Jsf.Seam (20)

Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2
 
Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for future
 
GlassFish and JavaEE, Today and Future
GlassFish and JavaEE, Today and FutureGlassFish and JavaEE, Today and Future
GlassFish and JavaEE, Today and Future
 
Introduction To J Boss Seam
Introduction To J Boss SeamIntroduction To J Boss Seam
Introduction To J Boss Seam
 
Sun Java EE 6 Overview
Sun Java EE 6 OverviewSun Java EE 6 Overview
Sun Java EE 6 Overview
 
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for future
 
Jsf 2.0 Overview
Jsf 2.0 OverviewJsf 2.0 Overview
Jsf 2.0 Overview
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for future
 
Comparison Of Open Source App Servers
Comparison Of Open Source App ServersComparison Of Open Source App Servers
Comparison Of Open Source App Servers
 
Java EE 6 : Paving The Path For The Future
Java EE 6 : Paving The Path For The FutureJava EE 6 : Paving The Path For The Future
Java EE 6 : Paving The Path For The Future
 
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
 
Java EE 6 and GlassFish portfolio
Java EE 6 and GlassFish portfolioJava EE 6 and GlassFish portfolio
Java EE 6 and GlassFish portfolio
 
GlassFish OSGi Server
GlassFish OSGi ServerGlassFish OSGi Server
GlassFish OSGi Server
 
Java Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewJava Enterprise Edition 6 Overview
Java Enterprise Edition 6 Overview
 
java web framework standard.20180412
java web framework standard.20180412java web framework standard.20180412
java web framework standard.20180412
 
JSF and Seam
JSF and SeamJSF and Seam
JSF and Seam
 
Glass Fishv3 March2010
Glass Fishv3 March2010Glass Fishv3 March2010
Glass Fishv3 March2010
 
GlassFish Tool Bundle for Eclipse
GlassFish Tool Bundle for EclipseGlassFish Tool Bundle for Eclipse
GlassFish Tool Bundle for Eclipse
 

Seminar.2008.Jsf.Seam

  • 1.
  • 2. Java Server Faces adopting the standard Roi Aldaag Consultant, AlphaCSP 2 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 3. Agenda  Introduction  Architecture  Configuration  Features  Pros & Cons 3 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 4. Introduction Not so long ago, if you “Googled“ the word JSF, you probably would have come across … 4 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 5. Introduction The F-35 Joint Strike Fighter (JSF) … 5 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 6. Introduction Today you’d find… JavaServer Faces Technology 6 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 7. Introduction :: What is JSF?  What is JSF ?  Specification  UI framework  Component based  Server side  Java web applications 7 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 8. Introduction :: Motivation 9 Billion Reasons for JSF… 8 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 9. Introduction :: Motivation  JCP Standard JSF 1.0/1.1 JSR 127 May 2005 JSF 1.2 JSR 252 May 2006 JSF 2.0 JSR 314 Q4 2008 ? / JEE6 9 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 10. Introduction :: Motivation  Vendor adoption  JSF RI  MyFaces 10 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 11. Introduction :: Motivation  Popularity  Commercial Projects  Open Source Projects  Market  Documentation 11 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 12. Introduction :: Motivation  IDE integration  Visual tool support  Drag & Drop  Auto-complete 12 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 13. Introduction :: Motivation  Tools  Component Libraries  IceFaces  RichFaces  ADF / Trinidad  Tomahawk  Extensions  Facelets  Ajax4Jsf  DinoFaces 13 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 14. Introduction :: Motivation  View Technology  JSP / Servlet  Other template engines  Facelets  JSFTemplating  Multiple rendering output from same pages 14 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 15. Introduction :: What is Seam?  What is Seam ?  A lightweight framework for JEE5  Unifies JSF and EJB models (Web Beans / JSR 299)  Integrates JSF, POJOs, JPA, jBMP, Drools  Annotation / EL based  Extends JSF  JBoss OS (LGPL)  Release at 2006  Current version 2.0.2 SP1 15 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 16. Introduction :: What is Seam?  Misconceptions  Can be used without EJB3  Does not need a container  Has a small footprint  Easy integration 16 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 17. Introduction :: Why JSF+Seam?  Why JSF + Seam?  JSF has some weaknesses…  Seam extends and enhances JSF  Reduces boilerplate code  Annotations  RESTful URLs  JSF Lifecycle  Contextual state management  Ajax Remoting  Exception Handling  Simple Integration  EJB3 / jBMP/ Drools / Spring 17 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 18. Introduction :: Seam in action 18 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 19. Agenda  Introduction  Architecture  Configuration  Features  Pros & Cons 19 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 20. Architecture :: JSF MVC Controller  Model Config (faces-config.xml)  View Request Events (ValueChangeEvent, ActionEvent) Event Listeners & Front Servlet Action Handlers  Controller (FacesServlet) (ValueChangeListener, ActionListener) Component Tree Component Business (UIComponent) Model Objects (Java Beans) (Managed Beans) UIViewRoot Delegates UIForm (Convertors, Validators, Renderers) Response UIPanel UIInput UIInput Resources (JSP, XML, Properties) View Model 20 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 21. Architecture :: JSF MVC Controller Model Config (faces-config.xml)  POJO’s Request Events (ValueChangeEvent, ActionEvent) Event Listeners & Front Servlet Action Handlers (FacesServlet) (ValueChangeListener, ActionListener) Component Tree Component Business (UIComponent) Model Objects (Java Beans) (Managed Beans) UIViewRoot Delegates UIForm (Convertors, Validators, Renderers) Response UIPanel UIInput UIInput Resources (JSP, XML, Properties) View Model 21 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 22. Architecture :: JSF MVC Controller Controller Config (faces-config.xml)  Front Servlet Request Events (ValueChangeEvent, ActionEvent) Event Listeners &  Configuration Front Servlet (FacesServlet) Action Handlers (ValueChangeListener, ActionListener)  Event Listeners Component Tree Component Business (UIComponent) Model Objects (Java Beans) (Managed Beans) UIViewRoot Delegates UIForm (Convertors, Validators, Renderers) Response UIPanel UIInput UIInput Resources (JSP, XML, Properties) View Model 22 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 23. Architecture :: JSF MVC Controller View Config (faces-config.xml)  Component Tree Request Events (ValueChangeEvent, ActionEvent) Event Listeners &  Component Model Front Servlet (FacesServlet) Action Handlers (ValueChangeListener, ActionListener)  Delegates  Resources Component Tree (UIComponent) Component Model (Java Beans) Business Objects (Managed Beans) UIViewRoot Delegates UIForm (Convertors, Validators, Renderers) Response UIPanel UIInput UIInput Resources (JSP, XML, Properties) View Model 23 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 24. Architecture :: Component Tree JSF tags Component Tree Markup ... UIViewRoot <f:view> HTML <h:form> <h:panelGrid columns = "2"> UIForm <h:inputText/> <h:inputSecret/> WML </panelGrid> UIPanel </h:form> </f:view> .. JSP XML UIInput UIInput 24 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 25. Architecture :: JSF Lifecycle JSF Lifecycle Request Restore View 1. Restore view 2. Apply request values Apply Request Values 3. Process validations 4. Update model values Process Validation 5. Invoke application 6. Render response Update Model Values Invoke Appilcation Render Response Response 25 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 26. Architecture :: Seam Lifecycle Seam Lifecycle Request Restore View Restore Conversation 1. Restore view 2. Restore Conversation Apply Request Values Apply Page Parameters 3. Apply Page Parameters 4. Apply request values Process Validation 5. Process validations 6. Update model values Update Model Values Process Data Model 7. Invoke application Selection 8. Process Selection Invoke Appilcation Invoke Page Action 9. Store Conversation Render Response Store Conversation 10. Render response Response 26 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 27. Architecture :: Seam Concepts Seam Concepts 1. Three Tier 2. POJOs and annotations 3. IoC and bijection 4. Contextual state management 5. Interceptors 27 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 28. Agenda  Introduction  Architecture  Configuration  Features  Pros & Cons 28 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 29. Configuration :: JSF faces-config.xml 29 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 30. Configuration :: Seam faces-config.xml 30 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 31. Configuration :: JSF web.xml 31 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 32. Configuration :: Seam web.xml 32 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 33. Agenda  Introduction  Architecture  Configuration  Features  Pros & Cons 33 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 34. Features :: Demo JSF Project jsfLogin.jsp jsfMasterDetail.jsp /webproj src managed WebRoot WEB-INF LoginBean.java MasterDetailBean.java XML JSP XML JSP web.xml faces-config.xml 34 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 35. Features :: Demo Seam Project jsfLogin.jsp jsfMasterDetail.jsp /webproj src managed WebRoot WEB-INF XML LoginBean.java MasterDetailBean.java XML classes JSP seam.properties lib components.xml JSP web.xml faces-config.xml jboss-seam.jar jboss-seam-ui.jar 35 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 36. Features :: Demo Login page jsfLogin.jsp UIViewRoot UIForm UIPanel UIPanel UIPanel UIOutput UICommand UIInput UIOutput UIInput 36 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 37. Features :: JSF Value Binding LoginBean.java faces-config.xml Managed Bean jsfLogin.jsp Unified EL 37 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 38. Features :: JSF Method Binding LoginBean.java jsfLogin.jsp Invoke Application Phase 38 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 39. Features :: JSF State Management jsfLogin.jsp jsfMasterDetail.jsp User Dependency Injection 39 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 40. Features :: Seam State Management  Contextual state management  Bijection  @In - Injection  @Out – Outjection  Dynamic, contextual, bidirectional  Context Scope  Event < Page < Conversation < Business Process < Session < Application  Conversation  Temporary conversation  Long-running conversation  ConversationId 40 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 41. Features :: Seam State Management MasterDetailBean.java 41 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 42. Features :: JSF Page Flow LoginBean.java jsfLogin.jsp jsfMasterDetail.jsp faces-config.xml 42 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 43. Features :: Seam Page Flow  Page Actions  HTTP GET  Bookmarking  RESTful URLs HTTP POST HTTP GET 43 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 44. Features :: Seam Page Flow  Page Flow <<Start State>> start  JBoss Business Process Management (jBPM) <<Page>> login  Used to define process workflow / page flow true <<Decision>> User  Define transition between pages authenticated ? false  Define navigation rules for each page <<Page>> contacts  Flow is based on events and conditions <<End State>>  Back button end  In conversation mode, back button is disallowed  Undefined transition  Seam blocks actions from “stale” pages  Redirects to relevant page 44 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 45. Features :: JSF Validations MasterDetailBean.java jsfMasterDetail.jsp 45 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 46. Features :: Seam Validations MasterDetailBean.java jsfMasterDetail.jsp @org.hibernate.validator.Email 46 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 47. Features :: JSF Error Handling javax.servlet.ServletException: javax/servlet/jsp/tagext/JspIdConsumer 47 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 48. Features :: Seam Error Handling 48 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 49. Features :: Seam Error Handling Exception Annotations 49 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 50. Features :: Demo MasterDetail page jsfMasterDetail.jsp MasterDetailBean.java 50 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 51. Features :: Demo MasterDetail page jsfMasterDetail.jsp - continued HtmlDataTable HtmlColumn HtmlColumn HtmlOutputText HtmlOutputText 51 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 52. Features :: JSF Ajax  Ajax: Page Wide  Page wide support (region, zone)‫‏‬  Add support to existing components  Sub view processing  Partial tree rendering  Normal lifecycle  Partial page refresh  Example:  Ajax4Jsf, Dynamic Faces 52 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 53. Features :: JSF Ajax  Ajax: Component Wide  Ajaxified components  Client validations  Client component interaction  Custom lifecycle  Example:  RichFaces, IceFaces, ADF (Trinidad)‫‏‬ 53 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 54. Features :: Seam Ajax  Ajax Remoting  Similar to DWR  Access seam components from JS  JavaScript APIs  Seam.Component  Seam.Remote  Expose server side components  @WebRemote  Compatible with Ajax4Jsf  Dojo / GWT integration 54 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 55. Features :: Documentation  JSF  Specification  Forums  Books  Seam  Reference  Forums  Books 55 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 56. Agenda  Introduction  Architecture  Configuration  Features  Pros & Cons 56 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 57. Pros & Cons  Seam Sweet spots  Seam Gen (RoR)  Security (Role / Rule based)  Spring Integration  Integrated testing FW (TestNG) 57 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 58. Pros & Cons  JSF Shortcomings  Too much wiring  HTTP GET / REST is hard  Complicated Lifecycle  Slow learning curve  Writing new components  Poor exception handling 58 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 59. References  JSF  http://www.jcp.org/en/jsr/detail?id=252  http://jcp.org/en/jsr/detail?id=314  http://myfaces.apache.org/  Seam  http://www.jboss.com/products/seam  http://www.seamframework.org/ 59 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
  • 60. Thank You ! 60 Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar