@Component(role=MavenReportExecutor.class) public class DefaultMavenReportExecutor extends java.lang.Object implements MavenReportExecutor
This component will build some MavenReportExecution
from MavenReportExecutorRequest
. If a
MavenReport
needs to fork a lifecycle, this fork is executed here. It will ask the core to get some
informations in order to correctly setup MavenReport
.
Note if no version is defined in the report plugin, the version will be searched with
resolvePluginVersion(...)
method:
PluginVersionResolver
to get a fallback version (display a warning as it's not a recommended use).
Following steps are done:
PluginDescriptor
from the MavenPluginManager
(through
MavenPluginManagerHelper.getPluginDescriptor(...)
to protect from core API change)ClassLoader
, with the Site plugin classloader as parent for the report execution. IMPORTS
. Corresponding
artifacts are excluded from the artifact resolution: doxia-site-renderer
, doxia-sink-api
and maven-reporting-api
.MavenPluginManager
(through
MavenPluginManagerHelper.setupPluginRealm(...)
to protect from core API change)MavenPluginManager.getConfiguredMojo(...)
LifecycleExecutor.calculateForkedExecutions(...)
if any forked execution is needed: if yes, execute the forked
execution hereModifier and Type | Class and Description |
---|---|
private static class |
DefaultMavenReportExecutor.GoalWithConf |
Modifier and Type | Field and Description |
---|---|
private static java.util.List<java.lang.String> |
EXCLUDES |
private static java.util.List<java.lang.String> |
IMPORTS |
protected org.apache.maven.lifecycle.LifecycleExecutor |
lifecycleExecutor |
private org.codehaus.plexus.logging.Logger |
logger |
protected org.apache.maven.plugin.MavenPluginManager |
mavenPluginManager |
protected MavenPluginManagerHelper |
mavenPluginManagerHelper |
protected org.apache.maven.plugin.version.PluginVersionResolver |
pluginVersionResolver |
Constructor and Description |
---|
DefaultMavenReportExecutor() |
Modifier and Type | Method and Description |
---|---|
java.util.List<MavenReportExecution> |
buildMavenReports(MavenReportExecutorRequest mavenReportExecutorRequest)
Build the
MavenReport s, with associated forked executions if necessary. |
protected java.util.List<MavenReportExecution> |
buildReportPlugin(MavenReportExecutorRequest mavenReportExecutorRequest,
ReportPlugin reportPlugin) |
private boolean |
canAggregate(org.apache.maven.project.MavenProject project) |
private org.codehaus.plexus.util.xml.Xpp3Dom |
convert(org.codehaus.plexus.configuration.PlexusConfiguration config) |
private org.apache.maven.model.Plugin |
find(ReportPlugin reportPlugin,
java.util.List<org.apache.maven.model.Plugin> plugins)
Search similar (same groupId and artifactId) plugin as a given report plugin.
|
private org.apache.maven.reporting.MavenReport |
getConfiguredMavenReport(org.apache.maven.plugin.MojoExecution mojoExecution,
org.apache.maven.plugin.descriptor.PluginDescriptor pluginDescriptor,
MavenReportExecutorRequest mavenReportExecutorRequest) |
private org.codehaus.plexus.logging.Logger |
getLog() |
private boolean |
isMavenReport(org.apache.maven.plugin.MojoExecution mojoExecution,
org.apache.maven.plugin.descriptor.PluginDescriptor pluginDescriptor) |
private org.codehaus.plexus.util.xml.Xpp3Dom |
mergeConfiguration(org.codehaus.plexus.configuration.PlexusConfiguration mojoConf,
org.codehaus.plexus.util.xml.Xpp3Dom pluginMgmtConfig,
org.codehaus.plexus.configuration.PlexusConfiguration pluginConf,
org.codehaus.plexus.configuration.PlexusConfiguration reportSetConf,
java.util.Set<java.lang.String> parameters)
Merge plugin configuration and reportset configuration to mojo configuration to get effective
mojo configuration.
|
private void |
mergePluginToReportPlugin(MavenReportExecutorRequest mavenReportExecutorRequest,
org.apache.maven.model.Plugin buildPlugin,
ReportPlugin reportPlugin)
TODO other stuff to merge ?
|
private boolean |
prepareGoals(ReportPlugin reportPlugin,
org.apache.maven.plugin.descriptor.PluginDescriptor pluginDescriptor,
java.util.List<DefaultMavenReportExecutor.GoalWithConf> goalsWithConfiguration) |
private MavenReportExecution |
prepareReportExecution(MavenReportExecutorRequest mavenReportExecutorRequest,
DefaultMavenReportExecutor.GoalWithConf report,
boolean hasUserDefinedReports) |
protected java.lang.String |
resolvePluginVersion(ReportPlugin reportPlugin,
MavenReportExecutorRequest mavenReportExecutorRequest)
Resolve report plugin version.
|
@Requirement private org.codehaus.plexus.logging.Logger logger
@Requirement protected org.apache.maven.plugin.MavenPluginManager mavenPluginManager
@Requirement protected MavenPluginManagerHelper mavenPluginManagerHelper
@Requirement protected org.apache.maven.lifecycle.LifecycleExecutor lifecycleExecutor
@Requirement protected org.apache.maven.plugin.version.PluginVersionResolver pluginVersionResolver
private static final java.util.List<java.lang.String> IMPORTS
private static final java.util.List<java.lang.String> EXCLUDES
public java.util.List<MavenReportExecution> buildMavenReports(MavenReportExecutorRequest mavenReportExecutorRequest) throws org.apache.maven.plugin.MojoExecutionException
MavenReportExecutor
MavenReport
s, with associated forked executions if necessary.buildMavenReports
in interface MavenReportExecutor
org.apache.maven.plugin.MojoExecutionException
protected java.util.List<MavenReportExecution> buildReportPlugin(MavenReportExecutorRequest mavenReportExecutorRequest, ReportPlugin reportPlugin) throws java.lang.Exception
java.lang.Exception
private boolean prepareGoals(ReportPlugin reportPlugin, org.apache.maven.plugin.descriptor.PluginDescriptor pluginDescriptor, java.util.List<DefaultMavenReportExecutor.GoalWithConf> goalsWithConfiguration)
private MavenReportExecution prepareReportExecution(MavenReportExecutorRequest mavenReportExecutorRequest, DefaultMavenReportExecutor.GoalWithConf report, boolean hasUserDefinedReports) throws java.lang.Exception
java.lang.Exception
private boolean canAggregate(org.apache.maven.project.MavenProject project)
private org.apache.maven.reporting.MavenReport getConfiguredMavenReport(org.apache.maven.plugin.MojoExecution mojoExecution, org.apache.maven.plugin.descriptor.PluginDescriptor pluginDescriptor, MavenReportExecutorRequest mavenReportExecutorRequest) throws org.apache.maven.plugin.PluginContainerException, org.apache.maven.plugin.PluginConfigurationException
org.apache.maven.plugin.PluginContainerException
org.apache.maven.plugin.PluginConfigurationException
private boolean isMavenReport(org.apache.maven.plugin.MojoExecution mojoExecution, org.apache.maven.plugin.descriptor.PluginDescriptor pluginDescriptor)
private org.codehaus.plexus.util.xml.Xpp3Dom mergeConfiguration(org.codehaus.plexus.configuration.PlexusConfiguration mojoConf, org.codehaus.plexus.util.xml.Xpp3Dom pluginMgmtConfig, org.codehaus.plexus.configuration.PlexusConfiguration pluginConf, org.codehaus.plexus.configuration.PlexusConfiguration reportSetConf, java.util.Set<java.lang.String> parameters)
mojoConf
- configuration done at mojo descriptor levelpluginMgmtConfig
- configuration done at build.pluginManagement levelpluginConf
- configuration done at reporting plugin levelreportSetConf
- configuration done at reportSet levelparameters
- set of supported parameters: any other parameter will be removedprivate org.codehaus.plexus.util.xml.Xpp3Dom convert(org.codehaus.plexus.configuration.PlexusConfiguration config)
private org.codehaus.plexus.logging.Logger getLog()
protected java.lang.String resolvePluginVersion(ReportPlugin reportPlugin, MavenReportExecutorRequest mavenReportExecutorRequest) throws org.apache.maven.plugin.version.PluginVersionResolutionException
null
value has been found:
PluginVersionResolver
to get a fallback version and display a warning as it's not a recommended
use.reportPlugin
- the report plugin to resolve the versionmavenReportExecutorRequest
- the current report execution contextorg.apache.maven.plugin.version.PluginVersionResolutionException
private org.apache.maven.model.Plugin find(ReportPlugin reportPlugin, java.util.List<org.apache.maven.model.Plugin> plugins)
reportPlugin
- the report plugin to search for a similar pluginplugins
- the candidate pluginsprivate void mergePluginToReportPlugin(MavenReportExecutorRequest mavenReportExecutorRequest, org.apache.maven.model.Plugin buildPlugin, ReportPlugin reportPlugin)
this method will "merge" some part of the plugin declaration existing in the build section to the fake plugin build for report execution:
mavenReportExecutorRequest
- buildPlugin
- reportPlugin
-