Claude Warren created RAT-401:
---------------------------------

             Summary: Rework the IDocumentAnalyzer and RatReport into a single 
component
                 Key: RAT-401
                 URL: https://issues.apache.org/jira/browse/RAT-401
             Project: Apache Rat
          Issue Type: New Feature
          Components: core engine, reports
    Affects Versions: 0.16.1, 0.17
            Reporter: Claude Warren


h1. What

The idea here is to make a component framework for reporting on Document 
instances.
h2. What do  we have

The current system has several components
 * IDocumentAnalyser which has the analyze(Document) method and update metadata 
in the Document.
 ** DefaultPolicyAnalyser:  sets the list of approved licenses in the document. 
 There is probably another way to do this.

 **  

DocumentAnalyserMultiplexer: simply runs multiple IDocumentAnalysers.

 **  

DocumentHeaderAnalyser: processes documents looking for licenses.

 * RatReport which reports the document after the analysis.
 ** ConfigurationReport: Dumps some configuration info into the XML report
 ** ClaimAggregator: collects statistical information from the document across 
the reports.
 ** SimpleXmlClaimReporter: Writes the XML info for a single document based on 
the metadata.
 ** ClaimReporterMultiplexer: Runs an analyser and then a reporter on a 
Document.
 ** LicenseAddingReport: edits the documents (Not sure this should be a report).

h2. What is the change

What I propose to do is to group the components together into ReportingModules. 
 Currently we have what could be considered 3 ReportingModules.

Module 1 – License reporting comprises:
 * DefaultPolicyAnalyser

 * DocumentHeaderAnalyser:

 * SimpleXmlClaimReporter
 * ClaimAggregator

 

Module 2 – Configuration reporting comprises:
 * ConfigurationReport

Module 3-- License adding report comprises:
 * LicenseAddingReport

 

The modules would be a pluggable component that:
 * Processes a document
 * potentially, writes some data to the XML output
 * After all documents have been processed potentially writes statistical data 
to the output.
 * provides an XSD fragment to describe the data it writes.

h2. Why

So that we can get to the point where it is easy to write modules that do 
things like:
 * Check for the existence of specific files (either as required and not 
allowed).
 * Check for the contents of specific files (e.g. check the contents of the 
LICENSE file and report on it).
 * Check file names against a webservice that tells us if there are issues with 
the package. (e.g. the mavenrepository provides CVE issues lists for jars)

 

 

We have a system that walks the build system and understands the various 
exclusion files and rules.  Let's use it to really do a release audit.

 

 

 

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to