Apache MyFacesStandard meets Innovation<br />Matthias Wessendorf | matzew@apache.org<br />http://matthiaswessendorf.wordpr...
Matthias Wessendorf<br />Oracle Corporation<br />Apache Software Foundation<br />ASF Member<br />Committer and PMC @Apache...
YOU ?<br />
Agenda<br />Introduction<br />Apache MyFaces<br />JSF implementation<br />Apache MyFaces Trinidad<br />Apache MyFaces Exte...
Agenda<br />Introduction<br />Apache MyFaces<br />JSF implementation<br />Apache MyFaces Trinidad<br />Apache MyFaces Exte...
JSF Ecosystem<br />Apache MyFaces<br />Jenia<br />GMaps4JSF<br />IceFaces<br />PrettyFaces<br />Tomahawk<br />PrimeFaces<b...
JSF Ecosystem<br />3rd Party Libraries<br />Implementations<br />JSF Spec<br />Tools / IDEs<br />Frameworks<br />Templatin...
JSF Ecosystem<br />News, articles, ...<br />JSFCentral.com<br />@JSFCentral<br />
Agenda<br />Introduction<br />Apache MyFaces CORE<br />Apache MyFaces Trinidad<br />Apache MyFaces Extensions<br />Groovy ...
Planet „Apache MyFaces“<br />Commiters: 62 (soon more ... No kidding!)<br />First! OpenSource JSF Implementation<br />JSF ...
Planet „Apache MyFaces“<br />The many Faces of MyFaces:<br />Tomahawk<br />Sandbox as its LAB<br />Tobago<br />Trinidad<br...
Team Diversity<br />Interoperability<br />Apache Tomcat<br />JBoss Seam / JSFUnit<br />Apache Shale ( RIP)<br />Apache Ti...
Team Diversity<br />Standards<br />JSF 1.0  2.0 (multiple JSRs)<br />CDI (aka WebBeans)  JSR 299<br />Portlets  JSR 168...
Team Diversity<br />Companies<br />Oracle, IBM, Sun, Goolge<br />ThoughtWorks, RedHat<br />Irian.at, CodeBeat, Ordina J-Te...
Agenda<br />Introduction<br />Apache MyFaces<br />JSF implementation<br />Apache MyFaces Trinidad<br />Apache MyFaces Exte...
Trinidad – Background I<br />Donated to Apache by Oracle in 2006<br />Something between 10g and 11g<br />Has already some ...
Trinidad – Background II<br />Trinidad is a framework<br />Several framework bits<br />Skinning<br />Ajax API<br />Maven2 ...
Trinidad Chart Component<br />Multiple types: pie, horizontalBar, area, ...<br />Requires a ChartModel impl<br />http://ma...
Trinidad Mobile<br />Mobile Web is old<br />Never really took off...<br />Modern devices (Android, iPhone, black-berry) br...
Trinidad Mobile<br />Navigation Panel Lists:<br />
Agenda<br />Introduction<br />Apache MyFaces<br />JSF implementation<br />Apache MyFaces Trinidad<br />Apache MyFaces Exte...
Groovy – a dynamic language<br />dynamic language for the JVM<br />backed by JSR 241 (unfinished / inactive ...)<br />simi...
Apache MyFaces Scripting<br />(currently) extra module in extensions project<br />status: VERY alpha <br />Don‘t BYE it to...
Groovy MyFaces!<br />Support for (almost) all JSF artifacts:<br />Managed Beans<br />Renderers / Components<br />Listeners...
MyFaces gets Groovy!<br />GettingReal !<br />https://issues.apache.org/jira/browse/EXTSCRIPT-27          (only on Windoze ...
MyFaces gets Groovy!<br />public class JavaNightRenderer extends MyRealRenderer {<br /> public void encodeBegin(FacesConte...
ExtVal - Introduction<br />Validation Framework (for JSF)<br />fits some needs...<br />Leverages JPA @nnotations! (JSR bac...
ExtVal – some code...<br />
ExtVal - Details<br />Introduction<br />ExtVal vs. JBoss Seam<br />Conditional Validation<br />Cross Component Validation<...
Agenda<br />Introduction<br />Apache MyFaces<br />JSF implementation<br />Apache MyFaces Trinidad<br />Apache MyFaces Exte...
Apache MyFaces Orchestra<br />JSF Extension Library<br />Conversation Scope (for multi request)<br />for  managed beans (s...
Apache MyFaces Orchestra<br />&lt;bean name=&quot;ballotTopic&quot;<br />      class=&quot;org.apache.myfaces.examples.bal...
Agenda<br />Introduction<br />Apache MyFaces<br />JSF implementation<br />Apache MyFaces Trinidad<br />Apache MyFaces Exte...
Apache MyFaces - MISC<br />More innovation to come<br />Interested ? <br />Get started  http://myfaces.apache.org<br />Co...
Links and Resources<br />Apache MyFaces<br />http://myfaces.apache.org<br />Slides (soon)<br />http://www.slideshare.net/m...
Thank you!matzew@apache.orgBLOG:matthiaswessendorf.wordpress.com<br />
Upcoming SlideShare
Loading in...5
×

Apache Myfaces - Standard meets Innovation

3,080

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,080
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Apache Myfaces - Standard meets Innovation

  1. 1. Apache MyFacesStandard meets Innovation<br />Matthias Wessendorf | matzew@apache.org<br />http://matthiaswessendorf.wordpress.com<br />http://twitter.com/mwessendorf<br />
  2. 2. Matthias Wessendorf<br />Oracle Corporation<br />Apache Software Foundation<br />ASF Member<br />Committer and PMC @Apache MyFaces  PMC Chair<br />Committer and PMC @Apache Shale (RIP)<br />Author<br />(German) Java- and Eclipse-Magazine<br />Books on Struts, J2ME & WebServices<br />Speaker<br />Oracle Open World<br />ApacheCon<br />JavaOne<br />JAX, WJAX<br />@mwessendorf (Twitter)<br />
  3. 3. YOU ?<br />
  4. 4. Agenda<br />Introduction<br />Apache MyFaces<br />JSF implementation<br />Apache MyFaces Trinidad<br />Apache MyFaces Extensions<br />Groovy Support <br />Validation Framework<br />Apache MyFaces Orchestra<br />MISC<br />
  5. 5. Agenda<br />Introduction<br />Apache MyFaces<br />JSF implementation<br />Apache MyFaces Trinidad<br />Apache MyFaces Extensions<br />Groovy Support <br />Validation Framework<br />Apache MyFaces Orchestra<br />MISC<br />
  6. 6. JSF Ecosystem<br />Apache MyFaces<br />Jenia<br />GMaps4JSF<br />IceFaces<br />PrettyFaces<br />Tomahawk<br />PrimeFaces<br />Woodstock<br />Mojarra (Sun RI)<br />Facelets<br />Oracle ADF Faces<br />PureFaces<br />Jboss RichFaces<br />Tobago<br />Seam<br />Trinidad<br />&lt;&lt;YOUR LIB&gt;&gt;<br />
  7. 7. JSF Ecosystem<br />3rd Party Libraries<br />Implementations<br />JSF Spec<br />Tools / IDEs<br />Frameworks<br />Templating<br />
  8. 8. JSF Ecosystem<br />News, articles, ...<br />JSFCentral.com<br />@JSFCentral<br />
  9. 9. Agenda<br />Introduction<br />Apache MyFaces CORE<br />Apache MyFaces Trinidad<br />Apache MyFaces Extensions<br />Groovy Support <br />Validation Framework<br />Apache MyFaces Orchestra<br />MISC<br />
  10. 10. Planet „Apache MyFaces“<br />Commiters: 62 (soon more ... No kidding!)<br />First! OpenSource JSF Implementation<br />JSF 1.1, JSF 1.2 and JSF 2.0 (alpha release is out  )<br />Since 2005 an Apache project<br />2002 -&gt; 2005 on sourceforge (LGPL)<br />Biggest JSF (user) community<br />Apache: Community over Code!<br />A good community builds good code<br />More than „just“ an implementation<br />Innovation happens at Apache (MyFaces)<br />Interesting  JSR RI* for JSF/Portlet stuff (301 and 329)<br />
  11. 11. Planet „Apache MyFaces“<br />The many Faces of MyFaces:<br />Tomahawk<br />Sandbox as its LAB<br />Tobago<br />Trinidad<br />has Maven features<br />Orchestra<br />Portlet Bridge<br />Commons<br />Extensions<br />ExtVal and Scripting (Groovy)<br />
  12. 12. Team Diversity<br />Interoperability<br />Apache Tomcat<br />JBoss Seam / JSFUnit<br />Apache Shale ( RIP)<br />Apache Tiles<br />Sun RI (patches and contributions)<br />Facelets<br />Portlets<br />Apache Commons<br />Apache Geronimo<br />…<br />
  13. 13. Team Diversity<br />Standards<br />JSF 1.0  2.0 (multiple JSRs)<br />CDI (aka WebBeans)  JSR 299<br />Portlets  JSR 168<br />JSF Metadata  JSR 276<br />Portlet Bridge 1  JSR 301<br />Portlet Brdige 2  JSR 329<br />TBC !!<br />
  14. 14. Team Diversity<br />Companies<br />Oracle, IBM, Sun, Goolge<br />ThoughtWorks, RedHat<br />Irian.at, CodeBeat, Ordina J-Technologies, ...<br />... and Freelancers<br />
  15. 15. Agenda<br />Introduction<br />Apache MyFaces<br />JSF implementation<br />Apache MyFaces Trinidad<br />Apache MyFaces Extensions<br />Groovy Support <br />Validation Framework<br />Apache MyFaces Orchestra<br />MISC<br />
  16. 16. Trinidad – Background I<br />Donated to Apache by Oracle in 2006<br />Something between 10g and 11g<br />Has already some „11g“ APIs...<br />Contains more than 100 JSF components<br />Ajax-enabled JSF components<br />Tree-Navigation<br />Helpers (e.g. Extra converters and validators)<br />Ajax is first class citizens<br />Mother of PPR (Partial Page Rendering) <br />Ajax support since UIX days !<br />Ajax-API<br />Client (JavaScript)<br />Server (Java)<br />
  17. 17. Trinidad – Background II<br />Trinidad is a framework<br />Several framework bits<br />Skinning<br />Ajax API<br />Maven2 Plugins<br />Used as base for:<br />Oracle ADF Faces Rich Client Framework<br />ADF mobile<br />Stable library<br />JSF 1.2 support<br />JSF 1.1 support<br />JSF 2.0 support (a branch right NOW!)<br />
  18. 18. Trinidad Chart Component<br />Multiple types: pie, horizontalBar, area, ...<br />Requires a ChartModel impl<br />http://matthiaswessendorf.wordpress.com/2008/10/11/nice-charts-with-trinidad/<br />
  19. 19. Trinidad Mobile<br />Mobile Web is old<br />Never really took off...<br />Modern devices (Android, iPhone, black-berry) bring back hype<br />Trinidad hides limitations or capabilities of different browsers<br />(some) supported Devices<br />Microsoft Windows Mobile 5 and 6, Microsoft Pocket Internet Explorer <br />Symbian S60 devices <br />Apple iPhone<br />RIM BlackBerry Browser 4.6<br />RIM BlackBerry Browser 4.7<br />Android Based Phones<br />WAP 2.0 phones (XHTML Basic or XHTML MP)<br />Nokia S40 Phone Browser <br />Opera Mini Browser <br />
  20. 20. Trinidad Mobile<br />Navigation Panel Lists:<br />
  21. 21. Agenda<br />Introduction<br />Apache MyFaces<br />JSF implementation<br />Apache MyFaces Trinidad<br />Apache MyFaces Extensions<br />Groovy Support <br />Validation Framework<br />Apache MyFaces Orchestra<br />MISC<br />
  22. 22. Groovy – a dynamic language<br />dynamic language for the JVM<br />backed by JSR 241 (unfinished / inactive ...)<br />similar to Java<br />easy to learn for Java folks<br />Integrates seamless with Java<br />(RE)MIX IT<br />feature rich<br />has already closures (maybe? they arrive in JDK 7*)<br />used in the industry <br />Apache MyFaces  Hey, that‘s here ..<br />Oracle <br />JBoss Seam etc...<br />
  23. 23. Apache MyFaces Scripting<br />(currently) extra module in extensions project<br />status: VERY alpha <br />Don‘t BYE it today --- playing never hurts!<br />mastermind: Werner Punz (Irian.at)<br />feature<br />Supports Groovy for JSF artifacts<br />nice sample application (blog) ...<br />Future<br />Make it stable ;-)<br />Add more (cool) stuff<br />Scala<br />(J)Ruby<br />...<br />
  24. 24. Groovy MyFaces!<br />Support for (almost) all JSF artifacts:<br />Managed Beans<br />Renderers / Components<br />Listeners (Action / ValueChange)<br />PhaseListener<br />NavigationHandler<br />Application object<br />Factories ...<br />
  25. 25. MyFaces gets Groovy!<br />GettingReal !<br />https://issues.apache.org/jira/browse/EXTSCRIPT-27 (only on Windoze ...)<br />
  26. 26. MyFaces gets Groovy!<br />public class JavaNightRenderer extends MyRealRenderer {<br /> public void encodeBegin(FacesContext fc, UIComponent comp) {<br /> fc.responseWriter.write “““<br /> &lt;h2&gt; Apache MyFaces in Action &lt;/h2&gt;<br /> &lt;p&gt;Welcome to the JavaNight, guys! &lt;/p&gt;<br /> ...<br /> Some component access: $comp.xyz<br /> ...<br /> “““<br /> super.encodeBegin(fc, comp);<br /> }<br /> ...<br />}<br />just reload it (F5)<br />
  27. 27. ExtVal - Introduction<br />Validation Framework (for JSF)<br />fits some needs...<br />Leverages JPA @nnotations! (JSR backed)<br />Seam is using Hibernate Validation<br />cross-component validation<br />Client-Side Validation (not easy with JSF default)<br />only for Trinidad<br />tbc...<br />Create your own @ValidateMyOnlyOnMonday<br />JSR 303 (Bean Validation) <br />
  28. 28. ExtVal – some code...<br />
  29. 29. ExtVal - Details<br />Introduction<br />ExtVal vs. JBoss Seam<br />Conditional Validation<br />Cross Component Validation<br />JPA 1.0 support<br />http://jsfcentral.com/articles/myfaces_extval_1.html<br />
  30. 30. Agenda<br />Introduction<br />Apache MyFaces<br />JSF implementation<br />Apache MyFaces Trinidad<br />Apache MyFaces Extensions<br />Groovy Support <br />Validation Framework<br />Apache MyFaces Orchestra<br />MISC<br />
  31. 31. Apache MyFaces Orchestra<br />JSF Extension Library<br />Conversation Scope (for multi request)<br />for managed beans (spring or @nnotations)<br />Persistence Context Handling<br />ConversationScope & PersistenceContext<br /> no more LazyInitializationExceptions<br />ViewController<br />callbacks (initView(), preProcess(), preRenderView())<br />Declarative Transactions<br />Requires Spring ...<br />
  32. 32. Apache MyFaces Orchestra<br />&lt;bean name=&quot;ballotTopic&quot;<br /> class=&quot;org.apache.myfaces.examples.ballot.backings.BallotTopic&quot;<br />scope=&quot;conversation.access&quot;/&gt;<br />@Transactional<br />public String saveAction(){ topic.setOwner(getVoterDao().getByKey(getBallotState().getVoterId()));<br /> topicDao.save(topic);<br />Conversation.getCurrentInstance().invalidate();<br /> return &quot;success&quot;;<br />} <br />public class VoterDao {<br />@PersistenceContext<br />private EntityManager entityManager;<br /> public Voter getByKey(Long id) {<br /> return entityManager.find(Voter.class, id);<br />} }<br />
  33. 33. Agenda<br />Introduction<br />Apache MyFaces<br />JSF implementation<br />Apache MyFaces Trinidad<br />Apache MyFaces Extensions<br />Groovy Support <br />Validation Framework<br />Apache MyFaces Orchestra<br />MISC<br />
  34. 34. Apache MyFaces - MISC<br />More innovation to come<br />Interested ? <br />Get started  http://myfaces.apache.org<br />Contributions ...<br />mailing list / discussions<br />patches / code fixes / new feature<br />documentation <br /> ... are VERY welcome !!!<br />
  35. 35. Links and Resources<br />Apache MyFaces<br />http://myfaces.apache.org<br />Slides (soon)<br />http://www.slideshare.net/mwessendorf<br />
  36. 36. Thank you!matzew@apache.orgBLOG:matthiaswessendorf.wordpress.com<br />

×