Integrated module type source hierarchy
From ControlTier
This document is in reference to the 2009 project goals
Contents |
Overview
This page describes the new integrated module type source hierarchy. As of 3.2.x, there are three source bases where module type code is maintained: controltier, moduleforge, ctl-dispatch. For 3.3.x and going forward, it is agreed that these modules should be integrated into a common library, "ctier-common". Doing so will:
- simplify the user experience with a standard set of functional modules (ie, not just generic base types)
- facilitate new type development (types in Elements sometimes require new functionality in base types)
- concentrate efforts resulting in a more cohesive set of types
Source Structure
This section suggests alternatives to maintaining module type sources. In either case, module sources will be located in one source code repository (e.g., moduleforge).
Option: Flattened
Under this option, module sources are merged to ctier-common/src/modules leaving a single directory of module type sources.
EG, above this is truck/branches/
CHECKOUT_DIR | |-ActiveMQ |-AntBuilder ... |-Builder |-Deployment ... |-Service |-Tomcat |-WarUpdater ... `-zip
Option: Grouped
This option leaves module sources organized into subdirectories but the ctier-common build creates one library from them.
CHECKOUT_DIR
|
|-base
| |
| |-Builder
| |-Deployment
...
| |-Service
... |
| `-zip
|
|-coreutils
| |
| |-fileutil
| |-textutil
|...
|
|-ctl
| |
| `-Managed-Entity
|
|-elements
| |
| |-ActiveMQ
| |-AntBuilder
...
| |-Tomcat
... |
`-WarUpdater
The above structure preserves the current boundaries.
Another slant on the grouped approach is to have essentially two subdirectories one for "core" types and a second for "optional":
CHECKOUT_DIR
|
|-core
| |
| |-Builder
| |-Deployment
...
| |-Managed-Entity
...
| |-Service
| |
| |-fileutil
| |-textutil
| |
| `-zip
|
|-elements
| |
| |-ActiveMQ
| |-AntBuilder
...
| |-Tomcat
... |
`-WarUpdater
Note:
- There has already been discussion on moving Managed-Entity to the "base" source tree. Likewise one can make a case to move the coreutils into elements as a case of "optionals".

