Oracle donates ADF Faces to Apache MyFaces

This morning, during the first Javapolis presentation i attended, Jonas Jacobi and John Fallows of Oracle announced that Oracle is going to donate its JSF implementation, ADF Faces, to the Apache Faces project. The project is called ADF Faces Cherokee.

But before this announcement Martin Marinschek talked about the Apache MyFaces project. He shortly discussed what JSF is, a component framework for creating (web) user interfaces. Then he explained the JSF lifecycle, which is very important to understand if you are going to use JSF. MyFaces is a top level Apache project which implements the JSF specification, and also adds some extra functionality and non standard components. Martin showed some of the MyFaces components, but didn’t really explain how to use the components to build an application.

The first part of this university session was finished with some JSF tips and tricks. The most important tip from Martin was to work within the JSF framework, don’t use workarounds, but understand the framework and use it as it was intended to. Also, don’t mix JSP’s with JSF components. Another tip was how to do list-detail pages. You can use the actionListener to determine information about the row displayed, so you know what detail info needs to be displayed.

Overall this was a nice presentation but a bit high level, I would have liked more examples like the list-detail example.

The real news ofcourse was Oracle’s announcement that it is donating ADF Faces to Apache. By christmas a website and mailing list will be available for the incubator project. You will also be able to download the source code. By New Year a subversion repository should be available with the source code. And the intention is to move out of incubator by JavaOne 2006, which I think is in May.

So why is Oracle doing this? Well it’s obvious that Java needs to have a good component based framework to compete with .Net. And Oracle believes that JSF can be this Framework, but a good implementation is needed, which is what ADF Faces provides.

What does ADF Faces, or better Apache Faces Cherokee contain? More than 100 components, an Html AJAX renderkit (but it doesn’t use HttpXmlRequest, but iframes), a dialog framework, personalization, skinning, and a lot more.

So what does this mean for ADF Faces in JDeveloper? At first i was afraid that we’d have to wait till JavaOne 2006, for a ADF Faces production release, but this is not the case. Oracle will continue to develop ADF Faces, and it will also put developers on Cherokee. So I guess we’ll still see a production release of ADF Faces with JDeveloper 10.1.3, which should be out soon…

During the presenation Jonas and John demoed a lot of components, showed how the dialog framework can be used, how personalization works, etc. Skinning is interesting. My first reaction was, why do we need this? We already have CSS, why not just use it? But it does make sense, sort of. CSS is for skinning HTML components, ADF Faces skinning is for skinning JSF components. So you’re specifying the look of your page at a higher level, which should make it less work to skin the application. The skins are created using CSS 3.0.

So all this is pretty interesting, but it also makes you wonder, which component am i going to use? Apache faces now has many components that do the same thing. Some components are going to survive, and some will disappear. There really is no need for 4 tree components doing the same thing.