Geotools as a whole is defined as a series of modules, or reuseable components. These modules do not opperate in isolation but fall into distinct categories (as was mentioned earlier).
| category | directory | example module | purpose |
|---|---|---|---|
| Core | modules/library/ | api | stable geotools interfaces |
| referencing | default implementations of geoapi interfaces | ||
| main | geotools library w/ default implementations, includes non stable interfaces | ||
| render | implementation of geotools SLD conformant rendering system | ||
| Plugin | modules/plugin/ | postgis | modules that dynamically intergrate to the geotools library at runtime |
| Extention | modules/extension/ | validation | extentions and extras built on top of the geotools library |
| Unsupported | modules/unsupported/ | oracle | modules that are not ready yet, or are orphaned and no longer have a contact person |
| Demos | demo/ | gui | small working examples, usually part of a tutorial |
These categories cover several interesting points; and show how the modules may be used in client code.
Core: the module/main makes up the core geotools library, this library is the required baseline containing:
- Geotools Interfaces (like Feature, DataStore, MapLayer,...)
- Default implementations (like DefaultFeature, MemoryDataStore, ...)
- "Helper" classes designed to aid Client code, and plugin writers (like AbstractDataStore, DataUtilites, ...)
- At this time core is made up only of module/main.
Plugins: these modules plugin (or aid and abet) the functionality of the core Geotools library
- plugin modules contain a META-INF/services entry describing what the plugin does (plugins can do more then one thing)
- plugin modules may require other plugins inorder to function, as example the plugin/wms requires plugin/epsg inorder to function
Extentions: these modules build on top of Geotools providing new and interesting functionality.
- ext modules do not plugin to Geotools (they don't contain a META-INF/services entry)
- ext modules build ontop of Geotools just like a regular client application
Demos: for completeness Demos contain sample applications that can actually run.
- most demos are accompied by a Tutorial, and make great code examples