So you have an idea for a new component? You want to contribute and be involved in RichFaces? This document covers the basic process required for developing new component for RichFaces 4. These steps can be followed by anyone interested in developing, or add a new component.
Migrating Components From RichFaces 3.3.X
There are a few extra steps required when migrating a component from RichFaces 3.3.X. RichFaces 4.0 Component Migration Process outlines the differences and and additional steps required for this.
Before You Begin
Either way, if you have new, or updated ideas - bring them up!! When you are ready the next step is posting your ideas and implementation comments/questions on the Developer Forum. Create/update a jira for your component in https://issues.jboss.org/browse/RFSBOX. Others involed with the project will help point you in the right direction and give you any pointers or tips for implementation.
Play with the CDK
Next up, is getting your hands dirty in code, and using the Component Development Kit. This tool will make getting your component development a breeze. Create a base implementation of your component (see below), and feel free to stop back in the Developer forums for questions.
Creating Your Sandbox Component
Ready to prototype your comopnent?
- Fork the RichFaces sandbox repository on github
- Copy the component-template project
- edit the project names accordingly (maven artifactId/groupId, package name, etc. - basically everywhere you see componentName)
- Build up your component in the ui folder
- then build a working demo of that component in the demo folder
- When you have both a working component and demo:
- Submit a pull request to have your component included in the RichFaces sandbox repository
- Include your component in the RichFaces Sandbox Showcase (again by pull request)
For more details about github forks and pull requests, refer to the RichFaces Contributor Getting Started Guide.
Considerations during development
Some things to keep in mind when developiong your component:
- Be sure your build uses the latest richfaces-ui-parent. This will give you all the required maven settings, build plugin's, and access to the dependencies BOM so that your component can work with the rest of the project.
- If you have updated dependencies, or requirements specific to your component feel free to add those to your own pom.xml.
- The preferred method to creating markup is via the CDK templates, resort to JavaCode only when necessary
- Do not forget to enter jira's for CDK or Core
- Do not simply work around something that is missing (i fyou do work around something, be sure to file a jira)
- Unit test updates
- readme.txt file in base of development following Component Development Process