Module Reorganization Summary
A summary of changes made to the module structure with respect to moving classes from the util module to other individual modules.
As a solution for bug 4246, several new modules have been created from the classes formerly bunched together under the util module. Below is a summary of the changes and new locations for classes of various functionalities.
The new modules are listed below with a description of intended functionality and a list of packages moved into each module. Note that many other classes from other modules (including core) should probably be moved as well, but that effort will take much more refactoring due to compile time and run time dependencies. These changes were made with minimal refactoring.
- gui
- Purpose: house all GUI code. All GUI calls should be made in the GUI module or after it has already been added to the classpath (i.e. above it in the modules.txt file) so that as much code as possible does not depend on GUI classes
- Packages: org.kepler.gui, org.kepler.kar, org.kepler.module, org.kepler.objectmanager, org.kepler.sms
- Notes: Many of these classes should probably be broken out into further modules for their specific functionality. For instance, the sms classes should probably go in an sms-gui module.
- authentication
- Purpose: house all code for the authentication subsystem except for gui classes.
- Packages: org.kepler.authentication
- Notes: The gui components for authentication are in the authentication-gui module
- authentication-gui
- Purpose: house the authentication gui components
- Packages: org.kepler.authentication, org.kepler.gui
- Notes:
- ecogrid
- Purpose: house the ecogrid classes
- Packages: org.ecoinformatics.seek.ecogrid, org.ecoinformatics.seek.datasource, org.kepler.authentication, org.kepler.gui, org.kepler.kar, org.kepler.objectmanager
- Notes: Many of these classes should be repackaged into better named packages. We should probably also break out an ecogrid-gui module for gui specific packages.
- opendap
- Purpose: house the opendap classes
- Packages:org.kepler.dataproxy.datasource.opendap
- Notes: A good example of a nice, compact module. More modules should be organized like this one.
- data-handling
- Purpose: house the data handling classes in kepler. This includes older and newer classes for getting data into and out of kepler.
- Packages: org.ecoinformatics.seek.dataquery, org.ecoinformatics.seek.querybuilder, org.kepler.dataproxy, org.kepler.objectmanager
- Notes: Another modules that could probably be broken down further and have many packages merged.
- ssh
- Purpose: house ssh specific classes.
- Packages: org.kepler.ssh
- Notes:
- io
- Purpose: house I/O classes.
- Packages: org.kepler.io
- Notes:
- job
- Purpose: house classes that represent the job interface in kepler
- Packages: org.kepler.job
- Notes:
- component-library
- Purpose: house classes that make up the component library in kepler. This is the underlying classes that control the left pane in the kepler gui, though there are no GUI classes in this module. This could be used for creating non-gui library functionality.
- Packages: org.kepler.moml, org.kepler.objectmanager.library
- Notes: No GUI classes in this module.
- repository
- Purpose: houses classes that communicate with and manager the kepler repository
- Packages: org.kepler.kar, org.kepler.objectmanager.repository
- Notes: The repository sub-package could be moved out of objectmanager as I do not think this is objectmanager functionality. This is true for other sub-packages as well. The objectmanager itself should probably be looked at and reorganized. It would be nice to have more org.kepler.X packages and less org.kepler.objectmanager.X packages as it just adds to complexity and does little to help a developer understand the code base.
- actors
- Purpose: to house classes and moml for actors.
- Packages: many
- Notes: should be broken up into smaller modules that are functionality specific. See bug 4341.
- directors
- Purpose: to house the classes and moml for directors.
- Packages: currently none.
- Notes: All director classes are currently in ptolemy.
- sms
- Purpose: to house all semantic mediation system classes
- Packages: org.kepler.sms, org.ecoinformatics.seek.sms
- Notes: The two packages contained in this module should be merged to org.kepler.sms.
Current Modules.txt in the Kepler suite
* compile order is bottom up
apple-extensions r loader actors directors opendap ecogrid authentication-gui gui authentication repository job io ssh data-handling sms component-library util event-state core common *ptII