Getting Started

Here is what I would like to check:
- IP Check, do we have the correct header, is there any IP issue to consider
- Doc Check, does each class have a class javadoc. Check package html to see if it
  is up to date.

Header Used:

/*
 *    Geotools - OpenSource mapping toolkit
 *    http://geotools.org
 *    (C) 2002-2006, Geotools Project Managment Committee (PMC)
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License as published by the Free Software Foundation;
 *    version 2.1 of the License.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 */

Changes

Modules

The GeoTools project is made up of three parts:
  1. The "Core" GeoTools library, defining a  implementations and a layered architecture around ISO and OGC specifications. Where approved GeoAPI interfaces are available they are used, however we do provide some of our own interfaces. The library on its own provides no functionality, simply definining a framework for plugins to work together. GeoTools is often deployed with own a few of the layers needed for the task at hand.
  2. The GeoTools "Plugins" are each individual modules that provide functionality for the GeoTools library. As an example a plugin exists for teaching the library about a CRS Authroty, or how to talk to each data format.
  3. The GeoTools "Extentions" are additional functionality built on top of the geotools library, often built around non standardized conepts. You will find examples like an SLD "color brewer" for creating approriate styles, or a graph module supporting limitied topology operations.
GeoTools is organized around the concept of "module maintainer", where each module has one or two maintainers that are responsible for keeping it in shape and ready for release.  These IP checks should really be the domain of each module maintainer, where they have not had time to take part it will still be there responsibilty to fix (or accept patches for) any issues found.

Core

The following modules define the scope of the library,  additaional interfaces not yet available through GeoAPI, test data etc::
The following modules contain default implementations and structure the library into plugins:

Module API

package org.geotools.catalog

Provides a catalog capable of managing resources and their associated connections.

This code started out as part of the uDig project (LGPL) and has been ported for GeoTools
2.2.x, we hope to eventually back port the "adaptive renderer" which is built on the
idea of resource handles captured here.

There is lots of great work to be done in this package, here are just a few ideas:

Review


Catalog - updated header
CatalogInfo- updated header
GeoResource- updated header
GeoResourceInfo- updated header
Resolve- updated header
ResolveChangeEvent- updated header
ResolveChangeListener- updated header
ResolveDelta- updated header
ResolveDeltaVisitor- updated header
Service- updated header
ServiceFactory- updated header
ServiceFinder- updated header
SerivceInfo- updated header

Documentation

Each file included a class javadoc, a package package html was added

package org.geotools.data

Data access api providing a common interface to several file formats and data sources.

This code was revised for the GeoServer 1.2 release as part of GeoTools 2.0, design documentation and research for this effort
is avaiable at http://vwfs.refractions.net/.

There are several areas in which the data module can be improved:

Review

AllQuery
AutoCommitTransaction
CurrentTransactionLock
DataSourceException
DataStore
DataStoreFactorySPI
FeatureEvent
FeatureListener
FeatureLock
FeatureLocking
FeatureReader
FeatureResults
FeatureSource
FeatureStore
FeatureWriter
FIDSQuery
LockingManager
Query
Repository
Transaction
- All files required their header updated

Documentation

- Each file does indeed have a class javadoc
- package html provided as part of module mail

package org.geotools.data.collection

Defines additional API for handling resource based iterators (ie they must be closed). The idea is from the hibernate framework, although it was just mentioned in IRC meetings, no API was copied directly.

Review

ResourceCollection
ResourceList

Documentation

package.html required.

package org.geotools.

Review

Documentation

package org.geotools.event

Used to define interfaces for an EMF Style event model (as oppsed to java beans). This style of event model is much better equiped for handling tree structures such as a SLD. Originally based on uDig codebase, same source as that used for Catalog events. Chances are we can reduce this to one set of event classes.

Review

GTComponent
GTConstant
GTDelta
GTDeltaVisitor
GTEvent
GTListener
GTNote
GTRoot

Documentation

package.html present.

package org.geotools.feature

Defines the interfaces for the GeoTools 2 feature model.

Review

AttributeType
CollectionEvent
CollectionListener
Feature
FeatureAttributeType
FeatureCollection
FeatureIterator
FeatureIterator
FeatureList
FeatureType
GeometryAttributeType
IllegalAttributeException
PrivateAttributeType
SchemaExceptionType

Documentation

package org.geotools.feature.collection

Review

RandomFeatureAccess

Documentation

No package html.

package org.geotools.feature.visitor

Review

FeatureVisitor

Documentation

package org.geotools.filter

Responsible for representing the Filter 1.1 filter and sortBy syntax. Right now these interfaces implement the GeoAPI interfaces, and they will be removed next major release.

Review

BetweenFilter
CompareFilter
EnvironmentVariable
FidFilter
Filter
FilterFactory
FilterType
FilterVisitor
GeometryDistanceFilter
GeometryFilter
IllegalFilterException
LikeFilter
LogicFilter
MapScaleDenominator
NullFilter
SortBy
SortBy2
SortOrder

Documentation

package org.geotools.filter.expression

Responsible for representing the Filter 1.1 expression syntax. Right now these interfaces implement the GeoAPI interfaces, and they will be removed next major release.

Review

AttributeExpression
BBoxExpression
ConstantExpression
Expression
ExpressionType
FunctionExpression
LiteralExpression
MathExpression

Documentation

package org.geotools.styling

Review

AnchorPoint
ChannelSelection
ColorMap
ColorMapEntry
ContrastEnhancement
Displacement
Extent
ExternalGraphic
FeatureTypeConstraint
FeatureTypeStyle
Fill
Font
Graphic
Halo
ImageOutline
LabelPlacement
LineSymbolizer
Mark
NamedLayer
NamedStyle
OverlapBehavior
PointPlacement
PointSymbolizer
remoteOWS
Rule
SelectedChannelType
ShadedRelive
Stroke
Style
StyledLayer
StyledLayerDescriptor
StyleFactory
StyleFactory2
StyleVisistor
Symbol
Symbolizer
TextMark
TextSymbolizer
TextSymbolizer2
UserLayer

Documentation

package org.geotools.feature.util

Review

ProgressListener

Documentation

No package html.

Module Coverage

Module sample-data

Module referencing

Module main

Module main - data

Module main - jdbc

Module main - xml

Module render