• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Seminar.2008.Jsf.Seam
 

Seminar.2008.Jsf.Seam

on

  • 827 views

 

Statistics

Views

Total Views
827
Views on SlideShare
827
Embed Views
0

Actions

Likes
0
Downloads
18
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Seminar.2008.Jsf.Seam Seminar.2008.Jsf.Seam Presentation Transcript

    • 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