Class AbstractMavenReport

  • All Implemented Interfaces:
    org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo, org.apache.maven.reporting.MavenMultiPageReport, org.apache.maven.reporting.MavenReport

    public abstract class AbstractMavenReport
    extends org.apache.maven.plugin.AbstractMojo
    implements org.apache.maven.reporting.MavenMultiPageReport
    The basis for a Maven report which can be generated both as part of a site generation or as a direct standalone goal invocation. Both invocations are delegated to abstract executeReport( Locale ) from:
    • Mojo's execute() method, see maven-plugin-api
    • MavenMultiPageReport's generate( Sink, SinkFactory, Locale ), see maven-reporting-api
    Since:
    2.0
    Author:
    Emmanuel Venisse
    See Also:
    Mojo.execute(), from maven-plugin-api, MavenMultiPageReport.generate( Sink, SinkFactory, Locale ), from maven-reporting-api, abstract executeReport( Locale )
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.String locale
      The locale to use when the report generation is invoked directly as a standalone Mojo.
      protected org.apache.maven.plugin.MojoExecution mojoExecution
      The mojo execution
      protected java.io.File outputDirectory
      The shared output directory for the report.
      protected java.lang.String outputFormat
      The report output format: null by default, to represent a site, but can be configured to a Doxia Sink id.
      protected java.lang.String outputTimestamp
      Timestamp for reproducible output archive entries, either formatted as ISO 8601 yyyy-MM-dd'T'HH:mm:ssXXX or as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).
      protected org.apache.maven.project.MavenProject project
      The Maven Project.
      protected java.util.List<org.apache.maven.project.MavenProject> reactorProjects
      The reactor projects.
      protected java.util.List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositories
      Remote project repositories used for the project.
      protected org.eclipse.aether.RepositorySystemSession repoSession
      The repository system session.
      protected java.io.File siteDirectory
      Directory containing the site.xml file.
      protected org.apache.maven.doxia.siterenderer.Renderer siteRenderer
      Doxia Site Renderer component.
      protected org.apache.maven.doxia.tools.SiteTool siteTool
      SiteTool.
      • Fields inherited from interface org.apache.maven.reporting.MavenReport

        CATEGORY_PROJECT_INFORMATION, CATEGORY_PROJECT_REPORTS, ROLE
      • Fields inherited from interface org.apache.maven.plugin.Mojo

        ROLE
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      boolean canGenerateReport()  
      protected void closeReport()
      Actions when closing the report.
      protected java.lang.String constructXrefLocation​(java.io.File location, boolean test)
      Contructs the (Test) Source XRef location relative to the getReportOutputDirectory() with getXrefLocation(File, boolean).
      void execute()
      This method is called when the report generation is invoked directly as a standalone Mojo.
      protected abstract void executeReport​(java.util.Locale locale)
      Execute the generation of the report.
      void generate​(org.apache.maven.doxia.sink.Sink sink, java.util.Locale locale)
      Deprecated.
      void generate​(org.apache.maven.doxia.sink.Sink sink, org.apache.maven.doxia.sink.SinkFactory sinkFactory, java.util.Locale locale)
      This method is called when the report generation is invoked by maven-site-plugin.
      java.lang.String getCategoryName()  
      protected java.lang.String getInputEncoding()
      Gets the input files encoding.
      protected java.util.Locale getLocale()
      Gets the locale
      protected java.lang.String getOutputDirectory()  
      protected java.lang.String getOutputEncoding()
      Gets the effective reporting output files encoding.
      protected org.apache.maven.project.MavenProject getProject()  
      java.io.File getReportOutputDirectory()  
      org.apache.maven.doxia.sink.Sink getSink()  
      org.apache.maven.doxia.sink.SinkFactory getSinkFactory()  
      protected org.apache.maven.doxia.siterenderer.Renderer getSiteRenderer()  
      protected java.io.File getXrefLocation​(java.io.File location, boolean test)
      Returns the (Test) Source XRef location as passthrough if provided, otherwise returns the default value.
      boolean isExternalReport()  
      void setReportOutputDirectory​(java.io.File reportOutputDirectory)  
      • Methods inherited from class org.apache.maven.plugin.AbstractMojo

        getLog, getPluginContext, setLog, setPluginContext
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.apache.maven.reporting.MavenReport

        getDescription, getName, getOutputName, getOutputPath
    • Field Detail

      • outputDirectory

        @Parameter(defaultValue="${project.build.directory}/reports",
                   required=true)
        protected java.io.File outputDirectory
        The shared output directory for the report. Note that this parameter is only evaluated if the goal is run directly from the command line. If the goal is run indirectly as part of a site generation, the shared output directory configured in the Maven Site Plugin is used instead.

        A plugin may use any subdirectory structure (either using a hard-coded name or, ideally, an additional user-defined mojo parameter with a default value) to generate multi-page reports or external reports with the main output file (entry point) denoted by MavenReport.getOutputName().

      • project

        @Parameter(defaultValue="${project}",
                   readonly=true,
                   required=true)
        protected org.apache.maven.project.MavenProject project
        The Maven Project.
      • mojoExecution

        @Parameter(defaultValue="${mojoExecution}",
                   readonly=true,
                   required=true)
        protected org.apache.maven.plugin.MojoExecution mojoExecution
        The mojo execution
      • reactorProjects

        @Parameter(defaultValue="${reactorProjects}",
                   required=true,
                   readonly=true)
        protected java.util.List<org.apache.maven.project.MavenProject> reactorProjects
        The reactor projects.
      • repoSession

        @Parameter(defaultValue="${repositorySystemSession}",
                   readonly=true,
                   required=true)
        protected org.eclipse.aether.RepositorySystemSession repoSession
        The repository system session.
      • remoteProjectRepositories

        @Parameter(defaultValue="${project.remoteProjectRepositories}",
                   readonly=true,
                   required=true)
        protected java.util.List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositories
        Remote project repositories used for the project.
      • siteDirectory

        @Parameter(defaultValue="${basedir}/src/site")
        protected java.io.File siteDirectory
        Directory containing the site.xml file.
      • locale

        @Parameter(defaultValue="default")
        protected java.lang.String locale
        The locale to use when the report generation is invoked directly as a standalone Mojo.
        See Also:
        SiteTool.DEFAULT_LOCALE, SiteTool.getSiteLocales(String)
      • outputTimestamp

        @Parameter(defaultValue="${project.build.outputTimestamp}")
        protected java.lang.String outputTimestamp
        Timestamp for reproducible output archive entries, either formatted as ISO 8601 yyyy-MM-dd'T'HH:mm:ssXXX or as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).
      • siteTool

        @Component
        protected org.apache.maven.doxia.tools.SiteTool siteTool
        SiteTool.
      • siteRenderer

        @Component
        protected org.apache.maven.doxia.siterenderer.Renderer siteRenderer
        Doxia Site Renderer component.
      • outputFormat

        @Parameter(property="output.format")
        protected java.lang.String outputFormat
        The report output format: null by default, to represent a site, but can be configured to a Doxia Sink id.
    • Constructor Detail

      • AbstractMavenReport

        public AbstractMavenReport()
    • Method Detail

      • execute

        public final void execute()
                           throws org.apache.maven.plugin.MojoExecutionException
        This method is called when the report generation is invoked directly as a standalone Mojo. This implementation is now marked final as it is not expected to be overridden: maven-reporting-impl provides all necessary plumbing.
        Specified by:
        execute in interface org.apache.maven.plugin.Mojo
        Throws:
        org.apache.maven.plugin.MojoExecutionException - if an error occurs when generating the report
        See Also:
        Mojo.execute()
      • generate

        @Deprecated
        public void generate​(org.apache.maven.doxia.sink.Sink sink,
                             java.util.Locale locale)
                      throws org.apache.maven.reporting.MavenReportException
        Deprecated.
        Generate a report.
        Specified by:
        generate in interface org.apache.maven.reporting.MavenReport
        Parameters:
        sink - the sink to use for the generation.
        locale - the wanted locale to generate the report, could be null.
        Throws:
        org.apache.maven.reporting.MavenReportException - if any
      • generate

        public void generate​(org.apache.maven.doxia.sink.Sink sink,
                             org.apache.maven.doxia.sink.SinkFactory sinkFactory,
                             java.util.Locale locale)
                      throws org.apache.maven.reporting.MavenReportException
        This method is called when the report generation is invoked by maven-site-plugin.
        Specified by:
        generate in interface org.apache.maven.reporting.MavenMultiPageReport
        Parameters:
        sink -
        sinkFactory -
        locale -
        Throws:
        org.apache.maven.reporting.MavenReportException
      • getCategoryName

        public java.lang.String getCategoryName()
        Specified by:
        getCategoryName in interface org.apache.maven.reporting.MavenReport
        Returns:
        CATEGORY_PROJECT_REPORTS
      • getReportOutputDirectory

        public java.io.File getReportOutputDirectory()
        Specified by:
        getReportOutputDirectory in interface org.apache.maven.reporting.MavenReport
      • setReportOutputDirectory

        public void setReportOutputDirectory​(java.io.File reportOutputDirectory)
        Specified by:
        setReportOutputDirectory in interface org.apache.maven.reporting.MavenReport
      • getOutputDirectory

        protected java.lang.String getOutputDirectory()
      • getProject

        protected org.apache.maven.project.MavenProject getProject()
      • getSiteRenderer

        protected org.apache.maven.doxia.siterenderer.Renderer getSiteRenderer()
      • getInputEncoding

        protected java.lang.String getInputEncoding()
        Gets the input files encoding.
        Returns:
        The input files encoding, never null.
      • getOutputEncoding

        protected java.lang.String getOutputEncoding()
        Gets the effective reporting output files encoding.
        Returns:
        The effective reporting output file encoding, never null.
      • getLocale

        protected java.util.Locale getLocale()
        Gets the locale
        Returns:
        the locale for this standalone report
      • closeReport

        protected void closeReport()
        Actions when closing the report.
      • getSink

        public org.apache.maven.doxia.sink.Sink getSink()
        Returns:
        the sink used
      • getSinkFactory

        public org.apache.maven.doxia.sink.SinkFactory getSinkFactory()
        Returns:
        the sink factory used
      • isExternalReport

        public boolean isExternalReport()
        Specified by:
        isExternalReport in interface org.apache.maven.reporting.MavenReport
        Returns:
        false by default.
        See Also:
        MavenReport.isExternalReport()
      • canGenerateReport

        public boolean canGenerateReport()
                                  throws org.apache.maven.reporting.MavenReportException
        Specified by:
        canGenerateReport in interface org.apache.maven.reporting.MavenReport
        Throws:
        org.apache.maven.reporting.MavenReportException
      • executeReport

        protected abstract void executeReport​(java.util.Locale locale)
                                       throws org.apache.maven.reporting.MavenReportException
        Execute the generation of the report.
        Parameters:
        locale - the wanted locale to return the report's description, could be null.
        Throws:
        org.apache.maven.reporting.MavenReportException - if any
      • getXrefLocation

        protected java.io.File getXrefLocation​(java.io.File location,
                                               boolean test)
        Returns the (Test) Source XRef location as passthrough if provided, otherwise returns the default value.
        Parameters:
        location - the XRef location provided via plugin parameter, if any
        test - whether it is test source
        Returns:
        the actual (Test) Source XRef location
      • constructXrefLocation

        protected java.lang.String constructXrefLocation​(java.io.File location,
                                                         boolean test)
        Contructs the (Test) Source XRef location relative to the getReportOutputDirectory() with getXrefLocation(File, boolean).
        Parameters:
        location - the XRef location provided via plugin parameter, if any
        test - whether it is test source
        Returns:
        the constructed (Test) Source XRef location