GeoTools : Change to SimpleFeature


We are tired of working with flat features.


Jody Garnett, Justin Deoliveira, Gabriel Roldán



Expected refactoring, performed during the FOSS4G code sprint

This page represents the current plan; for discussion please check the tracker link above.


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


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

dynamictasklist: task list macros declared inside wiki-markup macros are not supported


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






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. (tick) Use SimpleFeatureBuilder
  2. (tick) Make org.geotools.feature.FeatureImpl implement SimpleFeature
  3. (tick) Move org.geotools.feature.Feature to legacy and deprecate
  4. (tick) Add any methods needed to DefaultFeature
  5. (tick) Change imports and API as required in geotools modules
  6. (tick) Test like mad
  7. (tick) Confirm uDig and GeoServer are happy and can build
  8. (tick) Confirm uDig and GeoServer are just using SimpleFeature
  9. (tick) Update documentation where needed (most of the documentation was created w/ this in mind)
  10. (tick) Release milestone release 2.5-M2)
  11. (tick) Revise based on experience (change to getDescriptor() and getId() )
  12. (tick) Release 2.5-RC0

API Changes


public interface Feature {


import org.opengis.feature.simple.SimpleFeature;

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

Documentation Changes