What's cool in Apache MyFaces?
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

What's cool in Apache MyFaces?

on

  • 4,138 views

 

Statistics

Views

Total Views
4,138
Views on SlideShare
4,138
Embed Views
0

Actions

Likes
0
Downloads
30
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

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

What's cool in Apache MyFaces? Presentation Transcript

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