Burns jsf-confess-2015

1,512 views

Published on

JSF 2.3 at ConFESS 2015

Published in: Software
  • Be the first to comment

Burns jsf-confess-2015

  1. 1. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   What's  Next  For  JSF   Ed Burns JSF Specification co-lead Oracle America, Inc.
  2. 2. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Safe  Harbor  Statement   The  following  is  intended  to  outline  our  general  product  direcGon.   It  is  intended  for  informaGon  purposes  only,  and  may  not  be   incorporated  into  any  contract.  It  is  not  a  commitment  to  deliver   any  material,  code,  or  funcGonality,  and  should  not  be  relied  upon   in  making  purchasing  decisions.  The  development,  release,  and   Gming  of  any  features  or  funcGonality  described  for  Oracle’s   products  remains  at  the  sole  discreGon  of  Oracle.   M  
  3. 3. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   My  Plan  for  Your  Time  Investment   UI  trends   What  does  this  mean  for  JSF?   What  about  Java  EE  8?   Preserving  your  investment  in  JSF   JSF  2.3  New  Features  Done  to  Date   Q&A     1 2 3 4 5 E   6
  4. 4. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   E  
  5. 5. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Mobile  is  now  more   important  than  desktop   •  What  kind  of  app?   – Mobile  Web   – NaGve  App  (Android,  iOS,   Windows)   •  Lots  of  help  out  there   – twier  bootstrap  and  its   enablers   Mobile  First  Web  Design   E  
  6. 6. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   E   DEPARTMENT   OF  STATE  
  7. 7. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   E  
  8. 8. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MEAN   E  
  9. 9. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   • MongoDB   • ExpressJS   • AngularJS   • Node.js   E  
  10. 10. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Trying  out  MEAN?   JSF  
  11. 11. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Wir  sind  für  Sie  da   •  Enterprise   •  Stable   •  Trusted  vendors  with  a  proven  track  record  of  not   abandoning  projects   •  Open  Standard  Process     Con8nued  Relevance  of  JSF  
  12. 12. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   What  Does  All  This  Mean  for  JSF?   •  Mobile   – Use  a  mobile  opGmized  JSF  component  library   •  State   – Design  for  statelessness   •  JavaScript   – SGll  held  at  arm’s  length   – A  component  level  concern   E  
  13. 13. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   What  Does  All  This  Mean  for  JSF?   What  about  the  MVC  JSR?   UI  Component  Oriented   MVC   M  
  14. 14. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   What  Does  All  This  Mean  for  JSF?   What  about  the  MVC  JSR?   Ac8on  Oriented   MVC   M  
  15. 15. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   What  About  the  MVC  JSR?   •  Facelets   •  Scopes   – Flow   – Flash   – View  Scope   Alignment  between  JSF  and  MVC   M  
  16. 16. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  1.0   – Managed  Beans   – EL   – Component  Model   •  2.0   – Ajax   – Facelets   – Composite  Components   •  2.2   – HTML5  Friendly  Markup   – Resource  Library  Contracts   – Faces  Flows   – File  Upload   •  2.3  (Planned)   – Beer  CDI  IntegraGon   – MVC  capability   – <f:socket>  WebSocket   JSF  Greatest  Hits  Over  the  Years  
  17. 17. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   WebSocket  and  JSF   DEMO  
  18. 18. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Tie  up  the  loose  ends   – SpecificaGon  clarificaGons   – CDI  alignment   •  Ease  of  use  e.g.  @Inject   FacesContext   •  @Inject  into  Validators,   Converters,  etc.   – HtmlInputHidden  is   ClientBehaviorHolder   •  Small  scale  new  features   •  Subject  to  Spec  Lead   oversight   – JSON  ajax  component   rendering   – Stateless  enhancements   – GET  enhancements   – Adopt-­‐a-­‐JSR  support   JSF  2.3  in  Java  EE  8   Two  feature  drivers,  each  with  their  own  agenda   M  
  19. 19. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   JSF  2.3  Small  Scale  New  Features   •  End  of  the  line  for  non-­‐CDI  managed  beans   – Redefine  meaning  of  @javax.faces.bean.ManagedBean  to  be   CDI  bean   – Redefine  corresponding  XML  syntax  to  be  CDI  bean   •  Ajax  method  invocaGon   – A  Faces  request   – Not  specific  to  a  view   – Is  specific  to  a  ClientWindow   – Returns  results  in  JSON   M  
  20. 20. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Preserving  Your  Investment  In  JSF   JSF  2.2  New  Feature  Recap  
  21. 21. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   JSF  2.2  Big  Ticket  Features   •  Markup  EvoluGon   – 1090  HTML5  Friendly  Markup   •  MulG-­‐tenancy  and  Modularity   – 730  Flows   – 1142  Resource  Library  Contracts  
  22. 22. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Just  Passing  Through   HTML5  Friendly  Markup   Bullet  Through  Jack,  1964   ©  Dr  Harold  Edgerton  
  23. 23. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   1090  HTML5  Friendly  Markup   •  This  is  a  JSF  page     The  best  part  of  Wicket  comes  to  JSF   <!DOCTYPE html>! <html xmlns="http://www.w3.org/1999/xhtml"! xmlns:myNS="http://xmlns.jcp.org/jsf”>! <form myNS:id="form">! <input name="textField" type="text"
 myNS:value="#{bean.text1}" />! <input type="submit" myNS:id="submitButton" 
 value="submit" /> ! <p>submitted text: #{bean.text1}.</p>! </form>! </html>! !
  24. 24. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   1090  HTML5  Friendly  Markup   •  Before  JSF  2.2   – JSF  tags  hide  complexity  of  underlying  HTML+script+css +images   – JSF  “Renderer”:     •  encode:  markup  to  browser   •  decode:  name=value  from  browser   <html>… <my:colorPicker value=“#{colorBean.color2}” /> <my:calendar value=“#{calendarBean.date1}” /> </html> •  Context:  Missing  feature  in  browser?  Write  a  JSF   component.   Let  the  elegance  of  HTML  shine  through  
  25. 25. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   1090  HTML5  Friendly  Markup   •  With  JSF  2.2   – Pure  HTML+script+css+images  in  the  JSF  page   – JSF  Renderer  handles  decode  from  browser   •  Leverage  the  strength  of  the  JSF  lifecycle   •  Leverage  the  expressiveness  of  HTML5   <html>… <input type=“color” jsf:value=“#{colorBean.color2}”/> <input type=“date” jsf:value=“#{calendarBean.date1}” /> </html> •  Context:  New  feature  in  browser?  Use  “pass  through   elements”   Let  the  elegance  of  HTML  shine  through  
  26. 26. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   1142  Resource  Library  Contracts   730  Faces  Flows       •  Allow  composing  a  JSF  app  as  a   collecGon  of  modules   – Faces  Flows  modularize  behavior   – Resource  Library  Contracts   modularize  appearance   •  Well  defined  contract  for  each   Modularity and Multi-tenant capability  
  27. 27. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Resource  Library  Contracts   Facelets  Review   The Facelets Gazette Site Navigation ●Events ●Docs ●Forums About Contact Site Map Template File name _template.html Insertion points Resources css classes, scripts, images
  28. 28. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Resource  Library  Contracts   A  Contract  is  Born   • Declared Templates • Declared Insertion Points • Declared Resources contractA
  29. 29. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Resource  Library  Contracts   Loading  ConvenGons   contractA • Declared Templates • Declared Insertion Points • Declared Resources contractB • Declared Templates • Declared Insertion Points • Declared Resources contractC • Declared Templates • Declared Insertion Points • Declared Resources <web-app-root>/contracts
  30. 30. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Resource  Library  Contracts   Loading  ConvenGons   contractA • Declared Templates • Declared Insertion Points • Declared Resources contractB • Declared Templates • Declared Insertion Points • Declared Resources contractC • Declared Templates • Declared Insertion Points • Declared Resources <web-app-root>/contracts contractD • Declared Templates • Declared Insertion Points • Declared Resources contractE • Declared Templates • Declared Insertion Points • Declared Resources contractF • Declared Templates • Declared Insertion Points • Declared Resources JAR files in WEB-INF/lib
  31. 31. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Resource  Library  Contracts   Loading  ConfiguraGon   contractA • Declared Templates • Declared Insertion Points • Declared Resources contractB • Declared Templates • Declared Insertion Points • Declared Resources contractC • Declared Templates • Declared Insertion Points • Declared Resources <web-app-root>/contracts contractD • Declared Templates • Declared Insertion Points • Declared Resources contractE • Declared Templates • Declared Insertion Points • Declared Resources contractF • Declared Templates • Declared Insertion Points • Declared Resources JAR files in WEB-INF/lib Set of available contracts Facelet 1 <f:view contracts="contractA"> ... Facelet 3Facelet 2 faces-config.xml
  32. 32. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Flow  NavigaGon   •  NavigaGon  is  no  longer  just  between  pages   •  NavigaGon  is  now  between  flow  “nodes”   •  InformaGon  Hiding  comes  to  JSF.  Welcome  to  1972!   •  MulGple  node  types:   – View   – Method  Call   – Switch   – Flow  Call   – Flow  Return  
  33. 33. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Flow  DefiniGon   •  Name  of  the  flow   •  Where  does  the  flow  start?   •  Input  values   •  OpGonal  iniGalizer  &  finalizer  
  34. 34. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   JSF  2.3  New  Features  Done  to  Date   •  UIRepeat  and  UIData  support  Map  and  Iterable   •  New  Event:  PostRenderViewEvent   •  @Inject  support  fort   – RequestCookieMap   – View  Map,  Session  Map   – FacesConverter   – FacesBehavior   – FacesValidator   •  CDI  #{viewScoped}  
  35. 35. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Thank  You!   •  Feedback  to  @edburns  
  36. 36. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Safe  Harbor  Statement   The  preceding  is  intended  to  outline  our  general  product  direcGon.   It  is  intended  for  informaGon  purposes  only,  and  may  not  be   incorporated  into  any  contract.  It  is  not  a  commitment  to  deliver   any  material,  code,  or  funcGonality,  and  should  not  be  relied  upon   in  making  purchasing  decisions.  The  development,  release,  and   Gming  of  any  features  or  funcGonality  described  for  Oracle’s   products  remains  at  the  sole  discreGon  of  Oracle.  
  37. 37. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |  

×