Hi,

Currently Maven report plugin implements MavenReport by
extending AbstractMavenReport

Interface MavenReport is in maven-reporting-api
Class AbstractMavenReport is in maven-reporting-impl

maven-reporting-impl - has many transitive dependencies.

We have also AbstractMavenReportRenderer which hide some of method from
Doxia Sink,

Proposition:

Move AbstractMavenReport to maven-reporting-api
Add similar method from AbstractMavenReportRenderer to AbstractMavenReport

We can have something like:

class AbstractMavenReport ...
{

  @Component
  private DoxiaSupport doxiaSupport;

  public void paragraph( String paragraph )
  {
    doxiaSupport.paragraph( paragraph );
  }

 ....
}

Interface DoxiaSupport will be also in maven-reporting-api.

m-site-p by m-exec will add needed implementation of DoxiaSupport on plugin
classpath.

Advantage:
 - plugin report will only need maven-reporting-api without any
transitive dependencies.

Disadvantage:
 - plugin report can be only executed by m-site-p

WDYT?

-- 
Sławomir Jaranowski

Reply via email to