What's cool in Apache MyFaces<br />Matthias Wessendorf (Oracle) | Principal Member Technical Staff<br />Ali Ok (Innflow AG...
Ali Ok<br /><ul><li>Innflow AG
MyFaces committer
Google Summer of Code (HTML5)
PrimeFaces
Twitter : @aliok_tr
Blog : blog.aliok.com.tr</li></li></ul><li>Matthias Wessendorf<br /><ul><li>Oracle
Apache Software Foundation
Member
Committer and PMC MyFaces
Author
Conference Speaker
Twitter : @mwessendorf
Blog : matthiaswessendorf.wordpress.com</li></li></ul><li>Agenda<br /><ul><li>Planet Apache MyFaces
Core: Apache MyFaces 2.x
Google App Engine
Trinidad and the mobile Web
The ASF and Google Summer of Code
Overview MyFaces activities
MyFaces meets HTML5
Apache MyFaces and the 'Java Enterprise' ecosystem
Spring
Java EE
Groovy
Summery (and Q/A)</li></li></ul><li>Agenda<br /><ul><li>Planet Apache MyFaces
Core: Apache MyFaces 2.x
Google App Engine
Trinidad and the mobile Web
The ASF and Google Summer of Code
Overview MyFaces activities
MyFaces meets HTML5
Apache MyFaces and the 'Java Enterprise' ecosystem
Spring
Java EE
Groovy
Summery (and Q/A)</li></li></ul><li>Planet Apache MyFaces<br /><ul><li>Commiters: 67 (soon we have more! No kidding!)
First! OpenSource JSF Implementation
Offers different JSF implementations
JSF 1.1 (Maintenance Mode)   Last release (1.1.8): June 10, 2010
JSF 1.2 (Maintenance Mode)   Last release (1.2.9): June 10, 2010
JSF 2.0 (trunk and main focus)   Current release 2.0.1: July 18, 2010</li></li></ul><li>Planet Apache MyFaces<br /><ul><li...
2002 -> 2004 on sourceforge (LGPL)
Biggest JSF (user) community
Upcoming SlideShare
Loading in...5
×

What's cool in Apache MyFaces?

3,475

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

No notes for slide

Transcript of "What's cool in Apache MyFaces?"

  1. 1.
  2. 2. What's cool in Apache MyFaces<br />Matthias Wessendorf (Oracle) | Principal Member Technical Staff<br />Ali Ok (Innflow AG) | Java Developer<br />
  3. 3. Ali Ok<br /><ul><li>Innflow AG
  4. 4. MyFaces committer
  5. 5. Google Summer of Code (HTML5)
  6. 6. PrimeFaces
  7. 7. Twitter : @aliok_tr
  8. 8. Blog : blog.aliok.com.tr</li></li></ul><li>Matthias Wessendorf<br /><ul><li>Oracle
  9. 9. Apache Software Foundation
  10. 10. Member
  11. 11. Committer and PMC MyFaces
  12. 12. Author
  13. 13. Conference Speaker
  14. 14. Twitter : @mwessendorf
  15. 15. Blog : matthiaswessendorf.wordpress.com</li></li></ul><li>Agenda<br /><ul><li>Planet Apache MyFaces
  16. 16. Core: Apache MyFaces 2.x
  17. 17. Google App Engine
  18. 18. Trinidad and the mobile Web
  19. 19. The ASF and Google Summer of Code
  20. 20. Overview MyFaces activities
  21. 21. MyFaces meets HTML5
  22. 22. Apache MyFaces and the 'Java Enterprise' ecosystem
  23. 23. Spring
  24. 24. Java EE
  25. 25. Groovy
  26. 26. Summery (and Q/A)</li></li></ul><li>Agenda<br /><ul><li>Planet Apache MyFaces
  27. 27. Core: Apache MyFaces 2.x
  28. 28. Google App Engine
  29. 29. Trinidad and the mobile Web
  30. 30. The ASF and Google Summer of Code
  31. 31. Overview MyFaces activities
  32. 32. MyFaces meets HTML5
  33. 33. Apache MyFaces and the 'Java Enterprise' ecosystem
  34. 34. Spring
  35. 35. Java EE
  36. 36. Groovy
  37. 37. Summery (and Q/A)</li></li></ul><li>Planet Apache MyFaces<br /><ul><li>Commiters: 67 (soon we have more! No kidding!)
  38. 38. First! OpenSource JSF Implementation
  39. 39. Offers different JSF implementations
  40. 40. JSF 1.1 (Maintenance Mode) Last release (1.1.8): June 10, 2010
  41. 41. JSF 1.2 (Maintenance Mode) Last release (1.2.9): June 10, 2010
  42. 42. JSF 2.0 (trunk and main focus) Current release 2.0.1: July 18, 2010</li></li></ul><li>Planet Apache MyFaces<br /><ul><li>Since 2004 an Apache project
  43. 43. 2002 -> 2004 on sourceforge (LGPL)
  44. 44. Biggest JSF (user) community
  45. 45. Apache: Community over Code!
  46. 46. A good community builds good code
  47. 47. Interested? Join us!!! :)
  48. 48. More than „just“ an implementation
  49. 49. Innovation happens at Apache (MyFaces)*</li></li></ul><li>Planet Apache MyFaces<br /><ul><li>Core: The JSF implementation
  50. 50. Tomahawk: a "classic" component library
  51. 51. Tobago: Component library with layout focus
  52. 52. Trinidad: Framework and component library
  53. 53. Commons: Goodies and non-renderkit tools (async-lifecycle,user-agent,validators, converters...)
  54. 54. Extensions: CDI, Validator and Scripting/Groovy
  55. 55. Orchestra: conversation (aka dialog) scope for beans
  56. 56. Portlet-Brigde: RI + TCK* for JSF/Portlet stuff (301/329)
  57. 57. Test: Shale Test continues here!
  58. 58. Maven: Several Plugins to generate JSF artifacts
  59. 59. GSOC: "root" folder for all (new) GSOC activities</li></li></ul><li>Agenda<br /><ul><li>Planet Apache MyFaces
  60. 60. Core: Apache MyFaces 2.x
  61. 61. Google App Engine
  62. 62. Trinidad and the mobile Web
  63. 63. The ASF and Google Summer of Code
  64. 64. Overview MyFaces activities
  65. 65. MyFaces meets HTML5
  66. 66. Apache MyFaces and the 'Java Enterprise' ecosystem
  67. 67. Spring
  68. 68. Java EE
  69. 69. Groovy
  70. 70. Summary (and Q/A)</li></li></ul><li>Apache MyFaces 2.x<br /><ul><li>2.0.1 had a ton of improvements
  71. 71. still working on improving MyFaces (PERF,...)
  72. 72. working on being greatly productive...
  73. 73. Improvements for JavaServer Faces 2.1/ 2.2
  74. 74. MyFaces community had donations to the EG:
  75. 75. ajax uploads
  76. 76. Fix UIData state saving (spec issue 153)</li></ul>https://issues.apache.org/jira/browse/MYFACES-2616<br />
  77. 77.
  78. 78. Apache MyFaces 2.x<br /><ul><li>2.0.1 had a ton of improvements
  79. 79. still working on improving MyFaces (PERF,...)
  80. 80. working on being greatly productive...
  81. 81. Improvements for JavaServer Faces 2.1 / 2.2
  82. 82. MyFaces community had donations to the EG:
  83. 83. ajax uploads
  84. 84. Fix UIData state saving (spec issue 153)</li></ul>https://issues.apache.org/jira/browse/MYFACES-2616<br />
  85. 85. Agenda<br /><ul><li>Planet Apache MyFaces
  86. 86. Core: Apache MyFaces 2.x
  87. 87. Google App Engine
  88. 88. Trinidad and the mobile Web
  89. 89. The ASF and Google Summer of Code
  90. 90. Overview MyFaces activities
  91. 91. MyFaces meets HTML5
  92. 92. Apache MyFaces and the 'Java Enterprise' ecosystem
  93. 93. Spring
  94. 94. Java EE
  95. 95. Groovy
  96. 96. Summery (and Q/A)</li></li></ul><li>MyFaces goes App Engine<br /><ul><li>What is Google App Engine?
  97. 97. Running web applications on G’s
  98. 98. Java (JVM based languages) and Python
  99. 99. Satisfactory quotas for free accounts
  100. 100. 1.3 M daily requests
  101. 101. 1 GB datastore (Bigtable / NoSql)
  102. 102. 500 MB webspace</li></li></ul><li>Some limitations...<br /><ul><li>Blacklisted classes:
  103. 103. MyFaces will initiate without using them, some limitations occur
  104. 104. "Reload"s and "unload"s:
  105. 105. State: MyFaces initializes on each "reload", no effects other than some loading time (5 secs)
  106. 106. Not persisting application scope across "reload"s
  107. 107. Session is persisted across requests (via datastore) though:
  108. 108. Rule : need to implement session scoped managed beans as serializable</li></li></ul><li>Agenda<br /><ul><li>Planet Apache MyFaces
  109. 109. Core: Apache MyFaces 2.x
  110. 110. Google App Engine
  111. 111. Trinidad and the mobile Web
  112. 112. The ASF and Google Summer of Code
  113. 113. Overview MyFaces activities
  114. 114. MyFaces meets HTML5
  115. 115. Apache MyFaces and the 'Java Enterprise' ecosystem
  116. 116. Spring
  117. 117. Java EE
  118. 118. Groovy
  119. 119. Summery (and Q/A)</li></li></ul><li>Trinidad goes mobile<br /><ul><li>The mobile Web is back. It is REAL
  120. 120. Poweful Phones, like Android or iPhone
  121. 121. Still Challenges:
  122. 122. Wide variety of browser capabilities
  123. 123. JavaScript and Ajax
  124. 124. CSS / DOM
  125. 125. Uneven device performance
  126. 126. iPhone/BlackBerry Bold/other smartphones
  127. 127. Consumer phones
  128. 128. Different device interfaces and user interactions
  129. 129. Touch screen VS non-touch screen
  130. 130. Finger navigation VS „keyboard“</li></li></ul><li>Compelling Mobile Web Applications<br /><ul><li>(device) native Look-and-feel
  131. 131. similar user experiences between mobile web application and native mobile application
  132. 132. Performs well across various device types and connectivity
  133. 133. Leverage advanced AJAX capabilities in smartphone browsers to reduce network traffic
  134. 134. Reduce or eliminate JavaScript and Style sheets for less capable mobile devices with limited bandwidth
  135. 135. Several (mobile) versions ???</li></li></ul><li>Compelling Mobile Applications with JSF/Trinidad<br /><ul><li>Device-native application look-and-feel
  136. 136. Skinning: applications can be skinned to achieve device native LAF**
  137. 137. Two levels of rendering support:
  138. 138. Trinidad render kit renders UI component based on browser capabilities
  139. 139. Platform specific style sheets controlled by the developer **</li></li></ul><li>Compelling Mobile Applications with JSF/Trinidad<br /><ul><li>Performs well across various device types and connectivity
  140. 140. AJAX Support reduces data and network round trips for smartphone browsers
  141. 141. Trinidad components automatically switch to plain HTML when targeting basic mobile devices
  142. 142. Better performance for devices with less powerful processors</li></li></ul><li>Getting REAL<br />
  143. 143. Getting REAL<br />
  144. 144. Agenda<br /><ul><li>Planet Apache MyFaces
  145. 145. Core: Apache MyFaces 2.x
  146. 146. Google App Engine
  147. 147. Trinidad and the mobile Web
  148. 148. The ASF and Google Summer of Code
  149. 149. Overview MyFaces activities
  150. 150. MyFaces meets HTML5
  151. 151. Apache MyFaces and the 'Java Enterprise' ecosystem
  152. 152. Spring
  153. 153. Java EE
  154. 154. Groovy
  155. 155. Summery (and Q/A)</li></li></ul><li>Google Summer of Code<br /><ul><li>Apache: Community over Code
  156. 156. Codeawards are a great fit!
  157. 157. Apache (MyFaces) started in 2005*
  158. 158. Getting new committers
  159. 159. In 2010 we have four projects
  160. 160. HTML5
  161. 161. MyFaces Application Builder
  162. 162. Performance improvements
  163. 163. Automated Testing Module</li></li></ul><li>MyFaces meets HTML5<br /><ul><li>Google Summer of Code project
  164. 164. New Html5 Renderkit, focusing on popular new elements and some of new functionality like Drag and Drop
  165. 165. Getting ready for next generation web applications
  166. 166. Next versions of JSF
  167. 167. Compatibility problems between JSF and Html5
  168. 168. Making use of new APIs
  169. 169. JSF 2.Next :
  170. 170. Supporting Html5 features in standard JSF components</li></li></ul><li>MyFaces meets Html5<br /><ul><li>What is cool in Html5?
  171. 171. APIs:
  172. 172. Websockets, File API, Desktop notifications, XHR Level 2, better error handling, ...
  173. 173. Html:
  174. 174. New input types, client-side validation, native DnD, semantics, new elements, ...
  175. 175. CSS:
  176. 176. New selectors, effects, transforms, ...</li></li></ul><li>Html5 Spec Design<br /><ul><li>Backwards compatible
  177. 177. New elements designed with an approach to make old browsers just ignore them
  178. 178. Fixing lack of error handling
  179. 179. Reducing the necessity of external plugins
  180. 180. More semantic stuff</li></li></ul><li>Component Design<br /><ul><li>Input components:
  181. 181. Client side validation, driven by JSF validators!
  182. 182. Html5 Behaviors:
  183. 183. Implemented as JSF behaviors
  184. 184. Works in Mojarra, using MyFacesshared</li></li></ul><li>DEMO: MyFaces Html5 Component Library<br />http://bit.ly/myfaces-html5-j1-demo<br />
  185. 185. Roadmap<br /><ul><li>“Ajax” file upload, uploading multiple files, file upload area(drop zone) with XHR 2
  186. 186. Making use of new Html elements
  187. 187. Support for applicable Html5 features in core components
  188. 188. Websockets, Notifications, ... support
  189. 189. Form independence of input components
  190. 190. Fallbacks for older browsers and Html5 detection</li></li></ul><li>Agenda<br /><ul><li>Planet Apache MyFaces
  191. 191. Core: Apache MyFaces 2.x
  192. 192. Google App Engine
  193. 193. Trinidad and the mobile Web
  194. 194. The ASF and Google Summer of Code
  195. 195. Overview MyFaces activities
  196. 196. MyFaces meets HTML5
  197. 197. Apache MyFaces and the 'Java Enterprise' ecosystem
  198. 198. Spring
  199. 199. Java EE
  200. 200. Groovy
  201. 201. Summery (and Q/A)</li></li></ul><li>Enterprise Java integration<br /><ul><li>JavaServer Faces is view-tier
  202. 202. Different „backend“ technologies are used
  203. 203. Most common
  204. 204. Java EE
  205. 205. Spring Framework
  206. 206. Java is not the only language for the JVM
  207. 207. Scala
  208. 208. Groovy
  209. 209. Apache MyFaces helps to integrate them!</li></li></ul><li>Groovy/Scripting Module<br /><ul><li>Groovy: dynamic language for the JVM
  210. 210. JSR 241 (unfinished / inactive)
  211. 211. Similar to Java and easy to learn
  212. 212. MyFaces Scripting
  213. 213. Groovy; other languages may follow...
  214. 214. STATUS: Beta, playing never hurts ;-)
  215. 215. Write JSF pieces in Groovy and script them!
  216. 216. NOT ONLY managed beans ;-)</li></li></ul><li>BLOG APPLICATION DEMO<br />
  217. 217. Orchestra: Spring Support<br /><ul><li>JSF Extension Library
  218. 218. Conversation Scope (for multi request)
  219. 219. for managed beans (spring or @nnotations)
  220. 220. Persistence Context Handling
  221. 221. ConversationScope & PersistenceContext
  222. 222. no more LazyInitializationExceptions
  223. 223. ViewController
  224. 224. callbacks (initView(), preProcess(), preRenderView())
  225. 225. Declarative Transactions
  226. 226. Via @annotations (JDK 1.5 or later)</li></li></ul><li>Java EE<br /><ul><li>Java EE 6 is a modern and lightweight platform
  227. 227. MyFaces offers first class support for
  228. 228. Bean Validation (JSR 303)
  229. 229. MyFaces ExtVal (303 and more!)
  230. 230. Contexts and Dependency Injection for the Java EE platform (JSR 299)
  231. 231. MyFaces CODI (brand new!)
  232. 232. JSE Module
  233. 233. i18n support with fluent API
  234. 234. JEE Module</li></li></ul><li>MyFaces ExtVal<br /><ul><li>Validation Framework (for JSF)
  235. 235. Leverages JPA @nnotations! (JSR backed)
  236. 236. Seam is using Hibernate Validation
  237. 237. Cross-component validation
  238. 238. Client-Side Validation (not easy with JSF default)
  239. 239. only for Trinidad
  240. 240. tbc...
  241. 241. Custom Validators:
  242. 242. Create your own @ValidateMeOnlyOnMonday
  243. 243. JSR 303 (Bean Validation) integration</li></li></ul><li>MyFaces ExtVal - Code<br />
  244. 244. MyFaces CODI<br /><ul><li>Java EE Module
  245. 245. BeanValidation support
  246. 246. JSF2 support
  247. 247. JSF1.2 support: Bring CDI to JSF 1.2
  248. 248. Offering „Orchestra feature“ for CDI
  249. 249. @ConversationScoped
  250. 250. @ViewAccessScoped
  251. 251. And more CDI-based Scopes
  252. 252. @WindowScoped
  253. 253. Supporting JSF's @ViewScoped via CDI</li></li></ul><li>MyFaces CODI<br />Code and Demo<br />
  254. 254. Agenda<br /><ul><li>Planet Apache MyFaces
  255. 255. Core: Apache MyFaces 2.x
  256. 256. Google App Engine
  257. 257. Trinidad and the mobile Web
  258. 258. The ASF and Google Summer of Code
  259. 259. Overview MyFaces activities
  260. 260. MyFaces meets HTML5
  261. 261. Apache MyFaces and the 'Java Enterprise' ecosystem
  262. 262. Spring
  263. 263. Java EE
  264. 264. Groovy
  265. 265. Summery (and Q/A)</li></li></ul><li>Questions ?<br /><ul><li>ANSWERS!</li></li></ul><li>WANTED:<br />NEW CONTRIBUTORS !<br />http://myfaces.apache.org <br />Get started today!<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×