Apache MyFaces

Apache MyFaces is an Apache Software Foundation project that creates and maintains an open-source JavaServer Faces implementation, along with several libraries of JSF components that can be deployed on the core implementation. The project is divided into several sub-projects:


 * Core: an implementation of the JSF 1.1, JSF 1.2, JSF 2.0, JSF 2.1, JSF 2.2, JSF 2.3, Faces 3.0 and Faces 4.0 specification and components as specified by JSR 127, JSR 252, JSR 314, JSR 344 and JSR 372 respectively
 * Portlet Bridge: an implementation of the JSF Portlet Bridge specification as specified by JSR 301
 * Tomahawk: a set of JSF components created by the MyFaces development team prior to its donation to Apache
 * Trinidad: a set of JSF components contributed to MyFaces by Oracle, where it was known as ADF Faces
 * Tobago: a set of JSF components contributed to MyFaces by Atanion GmbH
 * Orchestra: a framework used to manage persistence sessions across various scopes
 * Extensions Validator: a JSF centric validation framework, which is based on annotations
 * CODI: a toolbox which will support you on solving your daily needs of software development with CDI, JSF, BV and JPA
 * Others: As well as these subprojects, MyFaces has a number of smaller subprojects, for example MyFaces Commons or MyFaces Shared. These subprojects can be found here.

The standard is based on the Model View Controller paradigm, but is also component-based and event-oriented. Different templating languages can be used. In the standard, JSP is used, other options include XML based templating languages like Shale Clay or Facelets.

Core
The MyFaces Core subproject is an open-source implementation of the JavaServer Faces specification. Each major release of MyFaces Core is certified against the Sun Technology Compatibility Kit to ensure compliance.

The core subproject is divided into two submodules:


 * MyFaces API implements all of the classes that are defined in the specification.
 * MyFaces Impl provides "invisible" support classes that user code does not directly invoke, but which are needed for a working JSF framework. Examples are the renderer classes for the standard JSF components.

These two submodules are distributed in two libraries, myfaces-api.jar and myfaces-impl.jar. Both of them are needed to be able to deploy a JSF based web application.

The latest release of MyFaces Core is 2.3.4. It requires Java 1.8 or later, JSP 2.2, JSTL 1.2, CDI 2.0, WebSocket 1.1 and a Java Servlet 4.0 implementation.