Class AbstractVerifyMojo

  • All Implemented Interfaces:
    org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo
    Direct Known Subclasses:
    FormatMojo, VerifyMojo

    public abstract class AbstractVerifyMojo
    extends org.apache.maven.plugin.AbstractMojo
    Common code for the Verify and Format Mojos.
    Since:
    4.0M2
    Version:
    $Id: b3e83bd61c7e78939c3b33c1c85bbf1f3ba4992f $
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static String AUTHOR
      Admin author for creator/contentAuthor and author.
      protected String commonsVersion
      The Commons version to be used by this mojo.
      protected List<String> contentPages
      Explicitly define a list of pages (it's a regex) that should be considered as content pages (rather than technical pages which is the default).
      protected String defaultLanguage
      The language in which non-translated documents are written in.
      protected String encoding
      The encoding to use when generating the package summary file and when storing file names.
      protected String[] excludes
      List of files to exclude.
      protected org.apache.maven.artifact.factory.ArtifactFactory factory
      Used to look up Artifacts in the remote repository.
      protected static String FILE_TAG
      The name of the tag that marks a specific file in link #PACKAGE_XML.
      protected static String FILES_TAG
      The name of the tag that marks the list of files in link #PACKAGE_XML.
      protected boolean force
      If true then don't check if the packaging is XAR before running mojos.
      protected boolean formatLicense
      If true then check for cliense and add a license header to XML files.
      protected String[] includes
      List of files to include.
      protected org.apache.maven.project.MavenProjectBuilder mavenProjectBuilder
      Project builder -- builds a model from a pom.xml.
      protected static String PACKAGE_XML
      The name of the XAR descriptor file.
      protected org.apache.maven.project.MavenProject project
      The maven project.
      protected List<org.apache.maven.artifact.repository.ArtifactRepository> remoteRepos
      List of Remote Repositories used by the resolver.
      protected org.apache.maven.artifact.resolver.ArtifactResolver resolver
      Used to look up Artifacts in the remote repository.
      protected boolean skipDates
      Disables the check for the existence of the date fields.
      protected Set<String> skipDatesDocumentList
      Disables the check for the existence of the date fields.
      protected List<String> translatablePages
      Explicitly define a list of pages (it's a regex) that can have translations and thus which must have a default language not empty.
      protected static String VERSION
      First version.
      protected List<String> visibleTechnicalPages
      Explicitly define a list of pages (it's a regex) that are technical pages but that should be visible (not hidden).
      • Fields inherited from interface org.apache.maven.plugin.Mojo

        ROLE
    • Field Detail

      • force

        @Parameter(property="xar.force",
                   readonly=true)
        protected boolean force
        If true then don't check if the packaging is XAR before running mojos.
      • defaultLanguage

        @Parameter(property="xar.defaultLanguage",
                   defaultValue="en")
        protected String defaultLanguage
        The language in which non-translated documents are written in.
      • formatLicense

        @Parameter(property="xar.formatLicense",
                   readonly=true)
        protected boolean formatLicense
        If true then check for cliense and add a license header to XML files.
      • commonsVersion

        @Parameter(property="xar.commons.version")
        protected String commonsVersion
        The Commons version to be used by this mojo.
      • skipDates

        @Parameter(property="xar.dates.skip",
                   defaultValue="false")
        protected boolean skipDates
        Disables the check for the existence of the date fields.
        Since:
        10.8RC1
      • skipDatesDocumentList

        @Parameter(property="xar.dates.skip.documentList")
        protected Set<String> skipDatesDocumentList
        Disables the check for the existence of the date fields.
        Since:
        10.8RC1
      • contentPages

        @Parameter(property="xar.contentPages")
        protected List<String> contentPages
        Explicitly define a list of pages (it's a regex) that should be considered as content pages (rather than technical pages which is the default). Note that content pages must have a non-empty default language specified.
        Since:
        7.1M1
      • translatablePages

        @Parameter(property="xar.translatablePages",
                   defaultValue=".*/.*Translations\\.xml")
        protected List<String> translatablePages
        Explicitly define a list of pages (it's a regex) that can have translations and thus which must have a default language not empty. If not defined then defaults to considering that *Translations.xml pages are translated pages.
        Since:
        12.3RC1
      • visibleTechnicalPages

        @Parameter(property="xar.visibleTechnicalPages")
        protected List<String> visibleTechnicalPages
        Explicitly define a list of pages (it's a regex) that are technical pages but that should be visible (not hidden). For example, home pages of applications. These pages must have their default langue set to empty so that a search in a given language doesn't return them as they're not content.
        Since:
        12.3RC1
      • FILES_TAG

        protected static final String FILES_TAG
        The name of the tag that marks the list of files in link #PACKAGE_XML.
        See Also:
        Constant Field Values
      • FILE_TAG

        protected static final String FILE_TAG
        The name of the tag that marks a specific file in link #PACKAGE_XML.
        See Also:
        Constant Field Values
      • includes

        @Parameter(property="includes")
        protected String[] includes
        List of files to include. Specified as fileset patterns.
      • excludes

        @Parameter(property="excludes")
        protected String[] excludes
        List of files to exclude. Specified as fileset patterns.
      • project

        @Parameter(property="project",
                   required=true,
                   readonly=true)
        protected org.apache.maven.project.MavenProject project
        The maven project.
      • encoding

        @Parameter(property="project.build.sourceEncoding")
        protected String encoding
        The encoding to use when generating the package summary file and when storing file names.
      • remoteRepos

        @Parameter(property="project.remoteArtifactRepositories",
                   readonly=true,
                   required=true)
        protected List<org.apache.maven.artifact.repository.ArtifactRepository> remoteRepos
        List of Remote Repositories used by the resolver.
      • mavenProjectBuilder

        @Component
        protected org.apache.maven.project.MavenProjectBuilder mavenProjectBuilder
        Project builder -- builds a model from a pom.xml.
      • factory

        @Component
        protected org.apache.maven.artifact.factory.ArtifactFactory factory
        Used to look up Artifacts in the remote repository.
      • resolver

        @Component
        protected org.apache.maven.artifact.resolver.ArtifactResolver resolver
        Used to look up Artifacts in the remote repository.
    • Constructor Detail

      • AbstractVerifyMojo

        public AbstractVerifyMojo()
    • Method Detail

      • initializePatterns

        protected void initializePatterns()
        Initialize regex Patterns for performance reasons.
      • getXARXMLFiles

        protected Collection<File> getXARXMLFiles()
                                           throws org.apache.maven.plugin.MojoFailureException
        Returns:
        the list of XAR XML files in this project
        Throws:
        org.apache.maven.plugin.MojoFailureException - when an error happens reading the XAR XML files on the file system
      • guessDefaultLanguage

        protected String guessDefaultLanguage​(File file,
                                              Collection<File> xwikiXmlFiles)
        Guess the &lt;defaultLanguage&gt; value to use for the passed file using the following algorithm:
        • If the page name matches one of the regexes defined by the user as a translated page, then check that the default language is defaultLanguage.
        • Otherwise, if the page name matches one of the regexes defined by the user as a content page, then check that the default language is defaultLanguage.
        • Otherwise, if there's no other translation of the file then check that the default language is empty since it's a technical page.
        • Otherwise, if there are other translations ("(prefix).(language).xml" format) then check that the default language should is defaultLanguage
        Parameters:
        file - the XML file for which to guess the default language that it should have
        xwikiXmlFiles - the list of all XML files that is used to check for translations of the passed XML file
        Returns:
        the default language as a string (e.g. "en" for English or "" for an empty default language)
        Since:
        5.4.1
      • isContentPage

        protected boolean isContentPage​(String filePath)
      • isTranslatablePage

        protected boolean isTranslatablePage​(String filePath)
      • isVisibleTechnicalPage

        protected boolean isVisibleTechnicalPage​(String filePath)
      • getXWikiCommonsVersion

        protected String getXWikiCommonsVersion()
        Returns:
        the version of the XWiki Commons project, either configured in the project using this plugin or taken from the commons.version property if defined, defaulting to the current project version if not defined
      • executeLicenseGoal

        protected void executeLicenseGoal​(String goal)
                                   throws org.apache.maven.plugin.MojoExecutionException
        Executes a goal of the Maven License plugin (used for adding or checking for license headers.
        Parameters:
        goal - the goal of the Maven License plugin to call
        Throws:
        org.apache.maven.plugin.MojoExecutionException - when the License plugins fails or if it's not found
      • getIncludes

        protected String[] getIncludes()
        Returns:
        the includes
      • getExcludes

        protected String[] getExcludes()
        Returns:
        the excludes
      • getEntryMap

        protected Map<String,​XAREntry> getEntryMap()
        Returns:
        the map containing all the XAR entries
      • unpack

        protected void unpack​(File file,
                              File location,
                              String logName,
                              boolean overwrite,
                              String[] includes,
                              String[] excludes)
                       throws org.apache.maven.plugin.MojoExecutionException
        Unpacks the XAR file (exclude the package.xml file if it exists).
        Parameters:
        file - the file to be unpacked.
        location - the location where to put the unpacket files.
        logName - the name use with ConsoleLogger.
        overwrite - indicate if extracted files has to overwrite existing ones.
        Throws:
        org.apache.maven.plugin.MojoExecutionException - error when unpacking the file.
      • unpackXARToOutputDirectory

        protected void unpackXARToOutputDirectory​(org.apache.maven.artifact.Artifact artifact,
                                                  String[] includes,
                                                  String[] excludes)
                                           throws org.apache.maven.plugin.MojoExecutionException
        Unpacks A XAR artifacts into the build output directory, along with the project's XAR files.
        Parameters:
        artifact - the XAR artifact to unpack.
        Throws:
        org.apache.maven.plugin.MojoExecutionException - in case of unpack error
      • getProject

        public org.apache.maven.project.MavenProject getProject()
        Returns:
        Returns the project.
      • resolveArtifactDependencies

        protected Set<org.apache.maven.artifact.Artifact> resolveArtifactDependencies​(org.apache.maven.artifact.Artifact artifact)
                                                                               throws org.apache.maven.artifact.resolver.ArtifactResolutionException,
                                                                                      org.apache.maven.artifact.resolver.ArtifactNotFoundException,
                                                                                      org.apache.maven.project.ProjectBuildingException
        This method resolves all transitive dependencies of an artifact.
        Parameters:
        artifact - the artifact used to retrieve dependencies
        Returns:
        resolved set of dependencies
        Throws:
        org.apache.maven.artifact.resolver.ArtifactResolutionException - error
        org.apache.maven.artifact.resolver.ArtifactNotFoundException - error
        org.apache.maven.project.ProjectBuildingException - error
        org.apache.maven.project.artifact.InvalidDependencyVersionException - error
      • resolveDependencyArtifacts

        protected Set<org.apache.maven.artifact.Artifact> resolveDependencyArtifacts​(org.apache.maven.project.MavenProject pomProject)
                                                                              throws org.apache.maven.artifact.resolver.ArtifactResolutionException,
                                                                                     org.apache.maven.artifact.resolver.ArtifactNotFoundException,
                                                                                     org.apache.maven.project.artifact.InvalidDependencyVersionException
        Parameters:
        pomProject - the project
        Returns:
        set of dependencies
        Throws:
        org.apache.maven.artifact.resolver.ArtifactResolutionException - error
        org.apache.maven.artifact.resolver.ArtifactNotFoundException - error
        org.apache.maven.project.artifact.InvalidDependencyVersionException - error
      • getDocFromXML

        protected org.xwiki.tool.xar.internal.XWikiDocument getDocFromXML​(File file)
                                                                   throws org.apache.maven.plugin.MojoExecutionException
        Load a XWiki document from its XML representation.
        Parameters:
        file - the file to parse.
        Returns:
        the loaded document object or null if the document cannot be parsed
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • getResourcesDirectory

        protected File getResourcesDirectory()
        Returns:
        the Maven Resources directory for the project