Developers

Developers Home | A Simple Plugin | geWorkbench Archive Files | Collaborative Development | Design Documentation | Javadocs | gForge Page | Report Defects


geWorkbench is an open source Java-based platform and contributions by members of the community are welcome and encouraged. The latest code under development is hosted on GitHub https://github.com/geworkbench-group. Anonymous read access is supported for all the code.


Development in geWorkbench takes place along 2 lines:

  • geWorkbench core: this portion of the code includes mainly 7 groups of packages:
  1. engine, which implements services related to the geWorkbench component architecture framework (e.g., plugin instantiation and visual layout, message delivery, component registry management, etc)
  2. bison (Biomedical Informatics Structured ONtology) which contains the definition of the bioinformatics data types which form the basis of communication between the geWorkbench plugins.
  3. builtin, supporting the internal execution and coordination of the core process, especially the project panel
  4. parsers, parsing supports for input data format
  5. events, event classes used by communication between all components and the core
  6. util, all the utility libraries
  7. analysis, a small number of classes providing abstract for analyses and savable parameter settings. This group used to be called "others" to include miscellaneous; analysis is the only one left now. This probably will be re-organized in the future.
  • geWorkbench plugin components: this portion of the source tree contains the code for the various application plugin components (sample code for creating a simple plugin can be found here)

There are no restrictions on who can develop a new component for geWorkbench. You can work against the development version or a release version of the geWorkbench core. To contribute your component to geWorkbench code, you need write access to the subversion server. Please contact us for the procedure. Contributions to the geWorkbench core packages are more controlled in order to avoid changes that may adversely affect large numbers of plugins.