-
Notifications
You must be signed in to change notification settings - Fork 5
Contributing to GumTree_74391
nxi edited this page Apr 9, 2015
·
1 revision
Created by Tony Lam, last modified on Jul 24, 2007
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.
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.
- Contributing to GumTree by Tony Lam (03/2007)
Document generated by Confluence on Apr 01, 2015 00:11
Home | Developer Guide | Copyright © 2013 ANSTO