Framework
This document outlines the operation of the geWorkbench framework. This information could be of use to plugin developers who desire a deeper understanding of geWorkbench.
Component Registry
The central class to the geWorkbench framework is ComponentRegistry. This class is responsible for maintaining look-up tables of all active components (also known as Plugins). It also keeps track of the publish/subscribe behavior of the plugins. The Component Registry makes use of CGLIB (http://cglib.sourceforge.net) to intercept methods and apply framework functionality. This will be covered in detail in the following sections.
Component Instantiation
An XML configuration file specifies which components should be instantiated in to plugins. This is parsed by a set of Apache Digester directives (http://jakarta.apache.org/commons/digester). Also parsed is a component-specific configuration file. This file has the same name and path as the component class file, but it has a .cwb.xml extension. This file includes some metadata about the component, such as the location of its help files, the area of the visual interface that the component should be installed, and what menu items it responds to. This metadata is stored in a class called PluginDescriptor.