Metadata is used by GeoTools to describe GeoSpatial information and services. The data structure is an implementation of ISO19115 (for metadata describing spatial data).
The gt-metadata module also pulls double duty as the first implementation module it is responsible for providing the facilities we use to wire the library together at runtime.
The gt-metadata module is responsible for:
implementation of the metadata interfaces from gt-api such as
Configuring the library at runtime with GeoTools and FactoryRegistry and Logging facilities
Utility classes with helpful implementations for Collections, Caching and Object pools
Default set of Converters supporting basic Java types
The GeoTools library is big and nasty (and plays with a big nasty amounts of data) and as such is always slightly ahead of its time. We run into the limits of Java - often years before good solutions show up as part of the Java language.
In a perfect world none of these utility classes would need to exist - and we could just use software components from off the shelf projects. In many cases we have found that the volume of GeoSpatial information breaks assumptions made by projects, such as commons collections, leaving us no choice but to roll our own.
You are welcome to use these classes in your own application, in the event any of these solutions are deprecated instructions will be provided on how to move on.