A big announcement today at the first day of JavaPolis 2005, the biggest Java event east of the Atlantic: Oracle will donate its ADF Faces technology to the Open Source community, as Cherokee – a subproject under the Apache MyFaces project. It was sort of foretold during JavaOne this year, when Oracle announced that its IDE JDeveloper would be free of charge, and now it delivers on that promise. ADF Faces builds on the solid foundation of UIX (and Cabo if you really go back in time) and is a very rich implementation of JSF. I would not be surprised if a) Apache MyFaces were to become (as Jonas Jacobi from Oracle predicted) the predominant JSF implementation and b) the other sub-projects under Apache MyFaces, such as Tobago and Tomahawk, would have a hard time standing up against there almighty brother.
The first day of JavaPolis was very promising. I attended two very good presentations. Apart from this one on JSF and more specifically Apache MyFaces, I attended the presentation by Mike Keith on EJB 3.0. How he managed to do so I cannot tell, but his three hour slot was very entertaining in addition to very useful. I really learned an awful lot.
Java Server Faces the Oracle way
Just like I discussed with Andrej earlier today in Antwerp and he also raises in his weblog, it is interesting to speculate on why Oracle has made this huge donation to the Open Source Community. Marketing and good-will are definitely part of the equation, but won’t have tipped the scale all byt itself. Clearly, the technology has been developed by Oracle since 2000 or so and has recently culminated in ADF Faces, one of the richest JSF implementations. Note by the way that most of what became ADF Faces predates JSF – at least the JSF 1.0 Final Specification – by several years. It is noteworthy that many of the early Cabo and UIX concepts have evolved almost naturally into JSF and therefore ADF Faces. The role Adam Winer played in the JSF Expert Group may have had something to do with this.
Oracle relies quite heavily on ADF UIX and ADF Faces for it E-Business Suite: a very substantial portion of the flagship ERP system is implemented using this technology. By donating ADF Faces to the OSS domain, Oracle stands a chance that it will even get some useful stuff back from the community but at the very least it helps fortify JSF technology on the whole and MyFaces in particular. And since it had the technology lying around already and it was not making any money out of it, it does not really cost all that much. Oracle really hopes JSF will succeed, not only within the Java/J2EE arena in competition with other View/Controller technologies, but most certainly also in the contest with Microsoft .NET.
Note by the way that Oracle continues development of ADF Faces: it will allocate resources to work on the Apache MyFaces Cherokee project – the ADF Faces stuff that is now being donated – as well as resources on the further development op ADF Faces. When I asked him about this, Jonas Jacobi indicated that this mainly involves Oracle technology specific things that have a direct dependency on the Oracle Application Server or that are specifically for the E-Business Suite. He also expected to see a future flow of components from the internal Oracle ADF Faces team to the Cherokeer project and vice versa.
It was – on a note of historic curiosity – remarkable that Oracle picked the name Cherokee for this subproject. Many, many years ago Oracle was very close to releasing a product called Cherokee that provided an HTML frontend to Oracle Forms applications. I am curious whether there are any ties between the old, deceased Cherokee and this new one…
Since he travelled by car and I went by train, Andrej (Koelewijn of IT-Eye) beat me to it. See his excellent weblog about this session at: http://www.it-eye.nl/weblog/2005/12/12/apache-myfaces-and-apache-faces-cherokee/
The plan in concrete detail
The plan for the next steps with Cherokee as explained by John Fallows and Jonas Jacobi is as follows:
- Christmas 2005 – downloads available of binaries and source code from Apache Incubator
- New Year 2006 – Subversion repository on-line; forum set up
- February 2006 – book release: Pro JSF by Jonas Jacobi and John Fallows (Apress); targeted at JSF Component developers
- Cherokee out of Incubator before JavaOne 2006 (May)
The Cherokee components donated by Oracle
John and Jonas made quite a show in the THX powered cinema theater, with an audience of well over 500 developers from over 30 countries. They showed a list of close to a 100 components, many of which dazzled the audience. They outshone much of what Martin Marinschek had demonstrated in the first part of the 3-hour session. Of course for developers familiar with ADF UIX or the EA releases of ADF Faces, it really was not so much surprising. Well, some of it still was.
Some highlights among the set donated by Oracle:
- Incremental DOM Update (aka Partial Page Render), Oracle’s implementation of the AJAX concepts, done using an IFRAME and lots of JavaScript that know how to update the browser’s DOM model based on the response in the IFRAME. Note that using an IFRAME makes it possible to include uploaded files in the background requests
- Dialogs – very similar to wizards or process flows; this part was quite new to me and certainly looked promising; I am curious how it will compare to Spring WebFlow…
- Menu Model – the familiar UIX style menus with four levels of menu layout – and the fourth level is a tree that can actually include many more levels
- Personalization Framework – allowing end-users to retain UI settings; this means for example that pages where the user has switched the order of components or has even disabled some components will look the same upon re-entering. Note: currently these settings are saved during the session, not beyond; Jonas and John sollicited our help to contribute back an implementation that stored these settings in a more persistent way
- Skinning – the – CSS 3.0 based – technology for rendering the same page with widely different look and feel, based on for example user preference. This can include not just styles and graphics but also resource bundles. For example a cool young happening skin that challenges us with ‘Yo man, what’s up’ and the exact same application with a different style welcoming us with ‘Good afternood sir, hwo do you do.’
- Maven 2 Plugin for JSF Component Developers
I have the feeling for me personally that several threads come together with Cherokee. (ADF) UIX joins forces with JSF, many of the AJAX concepts have been merged in, and now it is open source – it is no longer a proprietary, sectarian technology for Oracle adepts and likewise weirdos, it is frontline implementation of the most important J2EE Web View/Controller technology around under the umbrella of Apache. I was quite happy with JSF already but is has become even more attractive.
Apache MyFaces
The first half of the session was presented by Martin Marinschek, one of the members of the MyFaces Program Management committtee. He explained the history of MyFaces – started in 2002, entered Apache Incubator in July 2004 and promoted to Top Level Projects in February 2005. Around 25 developers are making contributions to MyFaces –
not counting the Oracle staf
f.
Martin did a brief introduction on the main JSF concepts. However, if you had never done anything with JSF before, I doubt it made a lot of sense to you. It is different. For his demos – that were unfortunately excruciatlingly slow on this laptop – he used Eclipse with the Exadel Studio plugin and Tomcat 5.5 as deployment platform. He showed a number of simple demos using the Reference Implementation. Later on, he demonstrated a number of MyFaces specific components, such as the Calendar widget for selecting a date, the tree component – that I found very impressive with Client side expand and collapse – a tabbed-pane component, a custom table component with features for scrollable and sortable data-sets. Shortly, Martin expected support for JSF 1.2 to be available.
Resources
If you are new to JavaServer Faces Technology look at the following resources to become familar with JSF:
Hi,
can you tell me how do I write a managed bean which will loop through the rows in table T1
and copy values from inputtextfield1 to inputextfield2 in each row.
Thank you for the article, I learned a lot from.
江西网站建设
江西网络推广
Maybe it is just because JSF is not so successful (at least in the current state)?
Bea also moved their high promising stuff to Open Source (Beehive)
And on
d-ross.org
Also see the reference on http://www.application-servers.com
See comment on the Raible Designs blog: http://raibledesigns.com/page/rd.
One of the reasons that Oracle donated ADF to Apache JSF could be their major headstart they have over their competitors. When the compononts become part of myFaces Oracle has the servers and developertools ready. Maybe they want to have market share before techniques like Flex or Microsoft Avalon/XAML are taking share.