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. βœ… Use SimpleFeatureBuilder

  2. βœ… Make org.geotools.feature.FeatureImpl implement SimpleFeature

  3. βœ… Move org.geotools.feature.Feature to legacy and deprecate

  4. βœ… Add any methods needed to DefaultFeature

  5. βœ… Change imports and API as required in geotools modules

  6. βœ… Test like mad

  7. βœ… Confirm uDig and GeoServer are happy and can build

  8. βœ… Confirm uDig and GeoServer are just using SimpleFeature

  9. βœ… Update documentation where needed (most of the documentation was created w/ this in mind)

  10. βœ… Release milestone release 2.5-M2)

  11. βœ… Revise based on experience (change to getDescriptor() and getId() )

  12. βœ… 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:

⚠️ **GitHub.com Fallback** ⚠️