## 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

- 2002-2005 changed to 2002-2006
- Geotools2 changed to GeoTools

## 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::

- api - interfaces based on specifications, for which no GeoAPI interface is available
- coverage - focus on the converage specifications
- sample-data - sample data used by testcases through out the library

The following modules contain default implementations and structure the library into plugins:

- referencing - captures implementations for CRS and referencing
- main - defines default implementations
- main - data - implementations for datastore
- main - jdbc - implementations for jdbc datastores
- main - xml - implementations for several XML parsers
- render

## 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:

- Allow the file handle to resolve to an ISO Metadata class (rather then just GeoResourceInfo - which is based on dublin core).
- Allow the use of Filter to query against GeoResourceInfo
- Support the capture of additional information such as associations from OWS Catalog 2 specification

#### 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:

- support for "joins" has been attempted several times, most recently on the "complex-features" branch, a standards compatible way of defining joins can be seen as part of the Catalog 2 specification in which a Query may hold several filters against different metadata. Starting at the other end of the problem
- the "community schema" effort concentrates on mapping the joins needed to fufill a predefined XML schema.
- The exact mechaism for Locking can be improved based on the workflow documented in GeoAPI currently (in which LockResults are returned at the end of a Commit)
- Repository can either be subsumed by Catalog, or can remain as a front end for cross datastore opperations (such as client side joins and unlocks). It would make sense to have Repository serve as the creator of both Transaction and Locks.
- Coverage support should be accessable in a manner similar to DataStore.

#### 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