GeoTools version 2.2.x is

the current stable release

of the library.

Resources

Downloads

Avaiable 2.2 Downloads:

GeoTools 2.2 At a Glance

Who should be using 2.2?

Most developers should be using 2.2.x. The only exception to this are people who either need the functionality of 2.3.x or are making significant changes to Geotools.

If you want to make significant changes to Geotools, you are more than welcome to base a your work on 2.2.0 (or on the 2.2.x branch) and later integrate them into the library.

TIP: If you are doing any work against in GeoTools 2.2.x, please use Expression all the time. Don't access feature attributes directly! If you make use of expression you will have no code breakage when upgrading to 2.3.

This is just good programming practice, but following this guideline will explicitly save you pain when upgrading.

Where is 2.2.x?

You can access 2.2.x in two ways:

See the developers guide for more information on SVN access, especially this page.
You can download the numbered releases from sourceforge.

Transitioning from 2.1.x to 2.2.x

Here are my notes for transitioning geoserver 2.1.x to 2.2.x.
1. Add the referencing.jar, api.jar, and render.jar to your project
2. change all the "StyleFactory.createStyleFactory()" to "StyleFactoryFinder.createStyleFactory()"
Dont forget to add "import org.geotools.styling.StyleFactoryFinder;"
3. change all the "FilterFactory.createFilterFactory();" to "FilterFactoryFinder.createFilterFactory();
Dont forget to add "import org.geotools.filter.FilterFactoryFinder;"
4. NamedLayer.getFeatureTypeConstraint() is now spelt correctly
5. <Attribute>.isGeometry() should be replaced with:
Geometry.class.isAssignableFrom(<Attribute>.getType())
6. Anything that implements FeatureStore will also have to have addFeature(FeatureCollection) added to the method. Its very similiar to addFeatures(FeatureReader) so probably not much work.

The Good (New Stuff!)

The following are new and shiney for the 2.2.x release:

The Bad (needs improvement)

There are some limitations with 2.2.x:

The Ugly (aka will break your code)

We found a couple of Q&A mistakes from 2.1 that we fixed for 2.2:

We are sorry about these mistakes, they will require you to do a search and replace in your code (sad)

Removal of Deprecated classes

The following classes have been around for one public release cycle (they were deprecated in 2.1.0 and will now be removed:

Working on 2.2.x

Found a scary bug? Did we mess up a specification? Did our documentation confuse you? Here is how to help make 2.2.x a happy place to work and play....

What changes should be made to 2.2.x?

Anything that does not change the api. The following are fair game:

What changes are not allowed for 2.2.x?

Do not make any API changes! For example, the 2.2 branch implements GeoAPI 2.0. This dependency should not be changed. Transition to any other GeoAPI release should be done on the trunk. If you want to make "larger" than minor changes (say we got a specification wrong), we may be able to integrate them in on a numbered 2.2.x release (ie. 2.2.1).

If in doubt, just ask.

Don't lose your work!

Please make sure that you do the following when changing 2.2.x:

Changes to Expected on the 2.2.x branch

Here's some things I've heard developers are talking about doing on the 2.2.x branch:

All of these changes should not affect anyone else working on the 2.2.x branch.