Version 24

    RichFaces SVN Repository. 3.3.x Structure Overview




    RichFaces repository

    has the following directories on the top level:


    • cdk - the RichFaces Component Developer Kit

    • docs - the root folder for building the RichFaces Developer's Guide

    • extensions - additional extensions to the main package. Includes extension for gwt, Portal, Seam (not required any more), Trinidad

    • framework - the codebase for RichFaces API and RichFaces Impl libraries

    • samples - the examples that are used for developing and testing RichFaces components

    • sandbox - an incubator for future RichFaces components

    • test-applications - the test suite that the QA team uses to test the components

    • ui - the main project with source code for RichFaces Components


    ui directory


    RichFaces is a Maven driven project. Thus, the project structure is based on the approaches provided by Maven.


    The RichFaces CDK (Component Development Kit) is used for developing RichFaces components. The CDK generates the ready-to-use JSF library based on the source code located in the richfaces directory.


    The RichFaces project contains several sub-projects. Each subproject is used to develop a particular set of components independent of one another.


    Some example sub-projects in the ui directory are:

    • dataFilterSlider

    • dataTable

    • drag-drop

    • dropdown-menu

    • gmap

    • etc.


    Some sub-projects depend on other project(s).  For example, the dropdown-menu sub-project where the rich:dropDownMenu component is developed depends on the menu-components sub-project where rich:menuItem, rich:menuGroup and rich:menuSeparator are developed.


    During component development, each sub-project is built separately and the resulting jar contains only a developing component (or a set of them).  This jar (small library) is not distributed to the public, but used only for testing purposes.


    The special sub-project 'assembly' is used to build an integration library that is distributed to the public.


    samples directory


    samples contains the source code for main richfaces-demo and test projects

    that are used for testing RichFaces components during the development phase.


    As it is mentioned above, RichFaces components have been developed

    separately from each other. This means that the test projects use not the

    integration library, but the library that contains only the testing



    How to Build samples Applications


    Those application are Maven driven. Thus, it's necessary to have a Maven installed

    and configured. See "[ How to Configure Maven for

    RichFaces|]" how

    to accomplish it.


    After the Maven is installed and configured, you can launch "mvn install" to

    build the example. If you launch this command right at the sample directory,

    all available applications are built. The result war file will be located at

    the target directory of each project.


    How to work with  samples Applications in Eclipse


    This instruction presumes that you use Eclipse and at least the original

    WTP 1.5 plugin installed. Red Hat Developers Studio also contains  original

    WTP 1.5, so you can use it as well.




    Those steps should be followed once, before you import a first Maven based



    1. Maven. You need Maven installed and configured, as it is directed above.


    2. Maven Classpath Variable - M2_REPO. Select "Window->Preferences". In the

    Preferences dialog: "Java->Build Path->Classpath Variables". Click

    "New....".  Type M2_REPO for name, and choice path the Maven repository.

    Click "OK" and close the Preferences dialog.

    Note for Maven newbies: Maven repository is not the same that directory

    where you installed the Maven files. The default path to it is

    ~/.m2/repository. You can change the path in the

    <Maven-root>/conf/setting.xml file.




    1. At the root of the project perform the following Maven command:





    mvn eclipse:eclipse -DdownloadSources=true -Dwtpversion=2.0





    This magic command creates an eclipse project meta files with WTP support.

    Also, it instructs to attach the available source code for each libraries

    used in the project. Really cool!


    2. Launch Eclipse and open the Import Project wizard. Use "Existing Projects

    into Workspace" option. Select the root directory of the project and click



    3. On the Server View, right click on the current Server and add the project

    to deployment


    Launch Server (for example, Tomcat) from Server View. Launch a browser and

    type the URL to the application. If you can see the application

    up-and-running, you have done the import right.




    If you switch to the new version of RichFaces (for example, from

    3.3.2-SNAPSHOT to 3.3.3-SNAPSHOT) you need to

    re-import the project. Otherwise, it does not see the changes in the

    library. In particular situation, re-import

    is a good solution when Eclipse starts to produce unexpected glitches.


    In order to re-import:


    1. Delete the project from the Eclipse workspace (without deleting the



    2. At the root of the project perform the following Maven command:




    mvn eclipse:clean





    3. Follow the instruction for the "Import" mentioned