This is a rough sketch of the API. For the first few reports, they will all go in one JAR: maven-repository-reports-standard. No integration with the discoverer is necessary at this point.
This interface is used by the single artifact processor.
The initial implementation of this will just need to be a mock implementation in
src/test/java, used to track the failures and successes for checking assertions. Later, implementations will be made to present reports on the web interface, send them via mail, and so on.
This interface will be called by the main system for each artifact as it is discovered. This is how each of the different types of reports are implemented, so there will be implementations such as: ChecksumArtifactReport MRM-17 (see repoclean's digestor for some related code), and TransitiveClosureArtifactReport MRM-2.
This interface is called by the main system for each piece of metadata as it is discovered, similarly to above. ChecksumArtifactReport will also implement this (as metadata has checksums), and there will be a MetadataValidationReport MRM-16
The transitive and metadata validation reports will need to query the repository for artifacts. There is no implementation of this at present - instead, a mock implementation should be created that acts as a repository of test artifacts.