MyFaces is a family of projects related to the JavaServer Faces (JSF) specification published as part of the Java Community Process. The "core" project is an implementation of that specification. Other MyFaces projects implement related specifications (eg the Portlet Bridge), or add features to any JSF implementation (not just the Myfaces Core).
JavaServer(tm) Faces (JSF) is a web application framework specification (JSR252, JSR127) based around the model-view-controller pattern. The Apache MyFaces project provides both an implementation of the JSF specification ("MyFaces Core"), and a set of add-on libraries that work on any implementation of the specification (including, of course, Apache MyFaces Core).
JSF is quite similar to the Tapestry framework as that is also a component-based framework. JSF can also fill the same "niche" as the well-known Struts framework, but has a rather different approach.
The Apache MyFaces project provides:
- A JavaServer(tm) Faces implementation (MyFaces API, MyFaces Impl modules)
- Several component libraries containing UI widgets for building web-applications with JSF (e.g. MyFaces Tomahawk, MyFaces Trinidad, MyFaces Tobago)
- Extension packages to JavaServer(tm) Faces (e.g. MyFaces Orchestra, MyFaces Extensions Validator)
- integration modules to other technologies and standards (e.g. MyFaces Portlet Bridge for integration with the portlet-standard)