change to simplefeature - STEMLab/geotools GitHub Wiki

Description

We are tired of working with flat features:

  • The GeoAPI project finally has a feature interface available that meets our needs
  • org.opengis.feature.simple.SimpleFeature matches our current expectations - we can do a search and replace in order to switch over
  • All code should be changed over to Use SimpleFeatureBuilder before this work proceeds

Status

This proposal was part of the FOSS4G code sprint; it was mostly approved as part
of the code sprint workplan.

Resources

There is a lot of ink split on this topic. If I gave you links you would only get confused.

If you would like to be confused:

------------|--------------------|------------|-------------------------|-------------------------------| no progress | done | impeded | lack mandate/funds/time | volunteer needed |

The Strict Plan

We want to prevent a repeat of what happened with Filter, this plan breaks early and breaks often - and then relaxes things for client code right before we ship.

  1. :white_check_mark: Use SimpleFeatureBuilder

  2. :white_check_mark: Make org.geotools.feature.FeatureImpl implement SimpleFeature

  3. :white_check_mark: Move org.geotools.feature.Feature to legacy and deprecate

  4. :white_check_mark: Add any methods needed to DefaultFeature

  5. :white_check_mark: Change imports and API as required in geotools modules

  6. :white_check_mark: Test like mad

  7. :white_check_mark: Confirm uDig and GeoServer are happy and can build

  8. :white_check_mark: Confirm uDig and GeoServer are just using SimpleFeature

  9. :white_check_mark: Update documentation where needed (most of the documentation was created w/ this in mind)

  10. :white_check_mark: Release milestone release 2.5-M2)

  11. :white_check_mark: Revise based on experience (change to getDescriptor() and getId() )

  12. :white_check_mark: Release 2.5-RC0

API Changes

BEFORE

org.geotools.feature.Feature

public interface Feature {
}

AFTER

org.geotools.feature.Feature

import org.opengis.feature.simple.SimpleFeature;

/**
 *
 * @deprecated Use simple feature
 */
public interface Feature implements SimpleFeature {
}

Documentation Changes

Website: