import org.apache.maven.artifact.Artifact;
import org.apache.maven.model.Model;
+/**
+ * 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.
+ */
public interface ArtifactReportProcessor
{
String ROLE = ArtifactReportProcessor.class.getName();
import org.apache.maven.artifact.Artifact;
+/**
+ * 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.
+ */
public interface ArtifactReporter
{
String ROLE = ArtifactReporter.class.getName();
import org.apache.maven.artifact.repository.metadata.RepositoryMetadata;
+/**
+ * This interface is called by the main system for each piece of metadata as it is discovered.
+ */
public interface MetadataReportProcessor
{
String ROLE = MetadataReportProcessor.class.getName();
import org.apache.maven.artifact.Artifact;
+/**
+ * The transitive and metadata validation reports will need to query the repository for artifacts.
+ */
public interface RepositoryQueryLayer
{
String ROLE = RepositoryQueryLayer.class.getName();