Skip to content

change to simplefeature

Jody Garnett edited this page Apr 11, 2015 · 8 revisions

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:

Clone this wiki locally