Skip to content

cleaning up dependencies between various modules and coverage

Leif Lislegård edited this page Jun 29, 2023 · 11 revisions

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 actually act as adapters between JTS geometries 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 Interests 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
Simone Giannecchini Identify candidate coverage & test cases
⚠️ consult with module maintainer
               |          | svn mv
               |          | test and release
               |          | update documentation
Milestone 2 2.4-M0 Move to Render Module
Simone Giannecchini Identify candidate coverage & test cases
⚠️ 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, org.geotools.coverage.io.AmbiguousMetadataException, org.geotools.coverage.io.ExoreferencedGridCoverageReader, org.geotools.coverage.io.MetadataBuilder, org.geotools.coverage.io.MetadataException, org.geotools.coverage.io.MissingMetadataException 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), org.geotools.data.DataUtilities#wrapGcReader(AbstractGridCoverage2DReader, GeneralParameterValue[]) 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.
Clone this wiki locally