Module Merge - STEMLab/geotools GitHub Wiki
So we have the go ahead to slice and dice the module structure that has been used by Geotools for the 2.0 stream.
To provide a guideline for this merge process we are sorting modules into three camps:
- main: core geotools2 library
- plugins: modules that intergrate at runtime with the whole via a Plugin or Facotry interface
- extentions: independent libraries built on top of the main
To acomplish this we:
- Released Modules: split the existing modules up based on release
- Unrelased Modules: asked for public feedback on unreleased modules
- submitied conservative, crazy and wild plans to the list/wiki for review
Goals for this merge process:
- stop the insanity
- provide a structure that we can maintain Going Forward
- provide a migration path for plugins/extensions
- ensure that existing CVS branches like grid-exp, fid-exp can be merged back into the result
Main
We intendend to group these core modules together into one source tree similar in style to the one already deployed.
Plugins
Short Term: placed in a plugin directory next to module
Long Term: move into separte projects besides geotools
Extensions
Short Term: placed in a ext directory next to module
Long Term: move into separte projects besides geotools
The directory "ext" is recomended so the directory can capture both demos,validation,graph. Name is similar to the ext directory in a jre. Plus it handles extension and extra.
The gap between short and long term plans is limited by our ability to hack our maven build process. While it is temping to move to the long terms solution until the build process is in place it would just ensure the orphaning process.
- Everything will stay the same in terms of the build enviornment based on maven.xml
- Half the modules are merged together into a single main module.
- The demos module is merged in just like a normal module.
- the geotools-src is renamed to module
- The spikes projects are removed
- geotools2 is renamed to geotools (could shorten to gt)
Repository:
Where above geotools directory contains:
design/** replace with wiki and recent aaime uml diagrams?
doc/** Is this the website generation?
module/main** merged modules from the required list
module/mapinfo/** orphan
module/resources/** orphan
module/svgsupport** orphan
module/imagedatasource** orphan
module/vpf** orphan
module/utils** orphan
module/sample-data** orphan
module/legend** orphan
plugin/pickle** plugin disk serialization
plugin/arcsde** plugin arcsde access
plugin/geomedia** plugin arcsde access
plugin/gtopo30** plugin for GTOPO30 file support
plugin/mysql** plugin mysql access
plugin/oracle-spatial** plugin oracle access
plugin/postgis** plugin postgis access
plugin/shapefile** plugin for shapefile support
plugin/tiger** plugin tiger access
ext/graph** tree and graph creation/walker/visito
ext/validation** validation framework used by geoserve
ext/demo** geotools-demos has moved here
buildlist.txt
geotools_checks.xml
build.properties
GT2Eclipse.java
maven.xml
navigation.vm
optionalList.txt
project.xml root maven project file
README.txt
requiredList.txt
run-maven.xml
Module structure:
src/** source code for module
test/** junit tests for module
target/** (generated) not part of svn but **is** the structure seen during build
project.xml maven build file
build.xml would be nice as part of long term plan plan
Log of actions to acomplish the above on the merge branch.
svn mv geotools2 gt
svn mv gt/docs gt/doc
svn mv gt/spike spike
svn mv gt/geotools-demos gt/ext
svn mv gt/geotools-src gt/module
svn mkdir gt/plugin
svn mv gt/module/arcgrid gt/plugin/arcgrid
svn mv gt/module/arcsde gt/plugin/arcsde
svn mv gt/module/geomediea gt/plugin/geomediea
svn mv gt/module/gtopo30 gt/plugin/gtopo30
svn mv gt/module/mysql gt/plugin/mysql
svn mv gt/module/oracle-spatial gt/plugin/oracle-spatial
svn mv gt/module/postgis gt/plugin/postgis
svn mv gt/module/shapefile gt/plugin/shapefile
svn mv gt/module/tiger gt/plugin/tiger
Pickle was not transfered to the plugin folder (intended for caching).
svn mv gt/module/graph gt/ext/graph
svn mv gt/module/validation gt/ext/validation
svn mv gt/module/j2se-demos gt/ext/demo
svn mv gt/module/core gt/module/main
svn mv gt/module/main/tests/unit gt/module/main/test
svn rm gt/module/main/tests
svn mv gt/module/defaultcore/tests/unit gt/module/main/test