Eclipse Way of Contribution
GumTree is an Eclipse based RCP (Rich Client Platfrom) application. It uses the Eclipse Plug-in Architecture to extend its functionality. For consistence, GumTree encourage developers to follow the Eclipse way in contributing new plug-ins into the GumTree workbench. The Eclipse way, as described in Erich Gamma's book: Contributing to Eclipse, demonstrates the culture of plug-in development, but be warn this is not a software engineering development process. It focus on plug-in reusability without breaking contribution from other developers.
Rules for Contribution
An Eclipse tutorial, Contributing to Eclipse: Understanding and Writing Plug-ins, has extracted some key elements in Erich Gamma's book about plug-in contribution:
- Everything is a contribution.
- Contribution code is only loaded when it is needed.
- Separate core functionality from UI functionality.
- Separate the API of your plug-in from its internals.
- Add, don't replace.
- Contributions must conform to expected interfaces.
- Only contribute if you can successfully operate.
- Execute all deployment steps.
- License your feature.
- Whenever possible let others contribute to your contributions.
- Reveal the API a little at a time.
- Extension points accept multiple extensions.
- As the provider of an extension point, you must protect yourself against misbehavior on the part of Extenders.
- Clearly identify your plug-in as the source of problems.
- All clients play by the same rules, even me.
- In your contributions check and program to the Eclipse API contract.
- Declare and describe explicitly how your contribution can be extended.
- Once you have invited others to contribute, try hard to keep your API stable.
- Separate testing code from plug-in code.
- Cover both, the Extender and the Enabler behavior of your plug-ins.
Presentation
- Contributing to GumTree by Tony Lam (03/2007)
