UI-Component Sets

Introduction

As well as the subprojects listed on the main page, MyFaces has a number of smaller subprojects.

Myfaces Commons Project

The objective of this project is provides non-renderkit-specific code that can be used with any jsf framework.

This includes converters, validators and other code useful in jsf projects. Previously, part of this code belongs to tomahawk, but the intention is maintain this code here so interested people just takes what it needs.

See the Myfaces Commons Site for more information.

The Shared Project

There is some code that is common across a number of MyFaces projects. Simply using copy-and-paste is not a good idea for all the obvious reasons. Therefore such code has been put into a special "shared" project where it can be more easily maintained.

Normally common code like this would simply be built into a jarfile and then other projects could add it to their classpath (ie declare a maven dependency on it). However in this particular case, this is not acceptable. Instead, each project that uses code from the shared library "imports" the source and renames the java packages to a new name that is internal to the importing project.

The code in the shared project ''might'' be useful outside of myfaces. It is all under the usual Apache license, and you are free to use it for any purpose whatsoever. However the shared project is only released when other MyFaces projects need it, and offers no stable APIs.

The shared project is actually divided into JSF1.1 and JSF1.2 branches. See one of the following for more information:

Maven Archetypes

Maven is a widely used tool for building java projects. It includes the ability to define "archetypes" which (when executed using maven) will build a directory-tree of files suitable as a starting point for a new project.

MyFaces provides maven archetypes useful for quickly starting various types of JSF projects. See the Maven Archetypes project for more details.

Maven Plugins

All MyFaces subprojects use Maven 2.x for building their code. However there are some tricky aspects to building some projects; therefore some custom Maven Plugins have been written to make life easier.

See the Maven Plugins Project for more details.

Maven Parent Pom

There is a Maven pom file that most maven subprojects use. It can be found in directory "myfaces-master-pom" within the myfaces project root directory in subversion.

Maven Site

There is a maven project used to define the main maven website (the one you are reading right now). This can be found under "site" within the myfaces project root directory in subversion.

Much of the site documentation is written in APT format. That page is of course written in APT itself, and reading the original can be useful too.

Maven Site Skins

Maven provides the ability to define "skins" that affect the look of maven-generated websites. There is a standard maven "skin" defined, and other projects may define their own skin.