GitHub repositories root: https://github.com/richfaces
Fisheye is currently in progress of migration
Framework Modules
The latest updates, and features of the project are located in the master branch of following repositories:
build richfaces-root-aggregator /bom richfaces-bom /parent richfaces-root-parent /dist richfaces-aggregator cdk richfaces-cdk core richfaces-core-{api,impl} components richfaces-ui-* /dist richfaces-components-{api,impl} dev-examples demos showcase richfaces-showcase archetypes richfaces-archetype-simpleapp
Framework Build Resources
parent richfaces-parent checkstyle richfaces-checkstyle shade-transformers richfaces-shade-transformers vdl-doc faces-vdl-documentation
Separated Modules
docs
RichFaces Framework Documentation
sandbox
When components, examples, or other items are in prototyping, or early development they are placed into the /sandbox directory following the structure shown below. TODO: link to sandbox process documents
qa
Testing applications and tests by RichFaces Quallity Assurance team.
Parents, BOMs, and Aggregators and Distribution
The RichFaces project follows a well established maven project structure where we have defined parent, aggregators, and a Bill of Materials (BOM) projects.
build/bom
Defines all runtime dependencies for RichFaces, and can be imported by examples, and application developers to inherit the required project dependencies, and versions. See How to add RichFaces 4.x to maven based project
for more.
build/parent
The RichFaces project actually has several primary "parent" modules. You could think of these parent projects and parent, grandparents, and great-grandparents. The idea here is to centralize as many common settings, and information as possible, while allowing sub-projects to update as needed.
- richfaces-parent
- The great-grandparent for everything in RichFaces
- Contains basic license, project, repository information
- Released rarely, and separately from main project in /trunk
- richfaces-root-parent
- The grandparent for framework modules
- Contains more specific build, test dependencies, plugin, and release specific settings
- richfaces-xxx-parent
- The direct parent for a sub-project
- /trunk/xxx/parent
- Many of the major sub-projects contain their own parent
- Defines any module specific settings
- The direct parent for a sub-project
build/dist
Contains the top level assembler for construction of the the primary project release artifacts.
aggregators
Aggregators pom.xml files profile a common root for sub-projects, and track modules to include in the build. They contain almost no other build information. So for example http://anonsvn.jboss.org/repos/richfaces/trunk/ui/pom.xml simple states what modules are build as part of this build.
The root aggregator contain a small amount of additional settings related to release, but in general if build configuration is going here it probably needs to be moved.
Pom Inheritance Guidelines
To support this structure there is a requirement in the order of inheritance of the various pom, bom files.
[richfaces-parent] ---> [richfaces-root-parent (imports richfaces-bom)] --> [richfaces-<module>-parent] --> [sub-project pom.xmls]
Module sub-projects only need to use the module parent as it's parent. Aggregators can simply inherit from richfaces-parent as they have very few requirements.
Module Details & Descriptions
cdk
Primary modules for the component development kit.
core
The RichFaces core API, and implementations. This is the common base and functionality for the project components.
core
Contains classes, and resources that are common and shared across two or more of the /ui-* modules.
components
Starting in RichFaces 4.0 we are going to separate components by type. This makes it easier to work with a sub-set of components at once, and logically breaks up functionality.
components/dist
The ui modules require a top level assembler to be able to package and combine the component artifacts. This uses the maven-shade plugin to handle the merging of jars.
dev-examples
Since examples are consumers of RichFaces, and not directly part of the runtime they do not have to follow the module requirements above. The examples all share a common richfaces-example-parent. However they must demonstrate proper usage of the project bom's.
showcase
RichFaces Showcase is main demonstrastion example of framework usage.
other examples
Development examples may be promoted to top-level repository since they can be consumed for demonstration purposes.
current examples: tweetstream
archetypes
Contains RichFaces archetypes
tests
Contains all QE related sub-projects, functional, and integration tests. Although this module is not required to follow the same guidelines as the core modules it should strive to conform, and be accessible and useable to outside developers.
docs
Contains all project wide documentation, such as development guide, migration guide, etc.... It has its own specific dependencies and build process.
Comments