cleaning up dependencies between various modules and coverage - STEMLab/geotools GitHub Wiki
-
Motivation: GeoTools codebas has some strange dependencies (main depends on coverage??) as well as some old unused code floating aroundl
-
Contact: Simone Giannecchini
-
Tagline: a good main is hard to find
This page represents the current plan; for discussion please check the tracker link above.
Description
This proposal is all about moving some code into a more appropriate module:
- coverage implementations in main move to coverage module
- mapcontext implementations in main go to rendering module
- move all the ImageIO plugins and GC plugins to its own directories
- old GridCoverageExchange implementations go to the recycle bin
- renderer is using a lot of classes that atually act as adapters between JTS gemetries and Java2D Shapes, my goal is to move this classes n module main in order to allow people to leverage on them.
I am planning on achieving these goals in two steps. First I want to finish the first four tasks which would just clean up and reorganize a bit code between core modules. Once this step pis done and reviewed, I would like to move all the JTS-to_Shape adapters to main in order to be able to leverage on them from other modules (like for doing Region of Interestes in Coverages).
This change is similar to the recent requests to break out data and jdbc modules from main; this time however an appropriate location is already available.
Status
This proposal has been submitted, simboss is working on it. Here below you can find a tasks list that can be used to track the advancement of this work.
| :white_check_mark: | :no_entry: | :warning: | :negative_squared_cross_mark: |
------------|--------------------|------------|-------------------------|-------------------------------| no progress | done | impeded | lack mandate/funds/time | volunteer needed |
A target release is also provided for each milestone.
Milestone 1 | 2.4-M0 | Move to Coverage Module |
---|---|---|
:white_check_mark: | Simone Giannecchini | Identify candidate coverage & test cases |
:warning: | consult with module maintainer |
| | svn mv
| | test and release
| | update documentation
Milestone 2 | 2.4-M0 | Move to Render Module |
---|---|---|
:white_check_mark: | Simone Giannecchini | Identify candidate coverage & test cases |
:warning: | Simone Giannecchini | consult with module maintainer |
| | svn mv
| | test and release
| | update documentation
API Changes
Before | After |
---|---|
org.geotools.data.coverage.grid.* |
org.geotools.coverage.grid.io.* |
org.geotools.data.coverage.grid.file , org.geotools.data.coverage.grid.stream |
dismissed |
org.geotools.coverage.io.AbstractGridCoverageReader.java , org.geotools.coverage.io.AmbiguousMetadataException.java , org.geotools.coverage.io.ExoreferencedGridCoverageReader.java , org.geotools.coverage.io.MetadataBuilder.jav a, org.geotools.coverage.io.MetadataException.java , org.geotools.coverage.io.MissingMetadataException.java |
Moved under spike/exoreferenced waiting for Martin to review |
org.geotools.image.io.RawBinaryImageReader , org.geotools.image.io.RawBinaryImageReadParam |
dismissed |
org.geotools.resources.image.CoverageUtilities |
org.geotools.resources.coverage.CoverageUtilities |
org.geotools.image.imageio.* |
org.geotools.coverage.grid.io.imageio.* |
org.geotools.image.io.SimpleImageReader subclasses |
Moved to spike/simpleimagereader waiting for Martin to review |
org.geotools.map.* |
Moved to renderer |
org.geotools.data.DataUtilities\#wrapGc(GridCoverage gridCoverage) ,org.geotools.data.DataUtilities\#wrapGcReader(AbstractGridCoverage2DReader gridCoverageReader, GeneralParameterValue[] params) |
Moved to org.geotools.resources.coverage.CoverageUtilities |
ext/coverage\_development/imageio/* |
Move to spike/imageio/* |
Documentation Changes
Website:
- upgrade instructions
Developers Guide:
- Update description of layered architecture
User Guide:
- check
User Manual:
- check
Issue Tracker:
- Check for bugs against "main" that can now change to the "coverage" or "renderer" component.