Interface SiteTool

All Known Implementing Classes:
DefaultSiteTool

public interface SiteTool
Tool to play with Doxia objects like SiteModel.
Author:
Vincent Siveton
  • Field Details

    • DEFAULT_LOCALE

      static final Locale DEFAULT_LOCALE
      The locale by default for a Maven Site.
      See Also:
  • Method Details

    • getSkinArtifactFromRepository

      org.apache.maven.artifact.Artifact getSkinArtifactFromRepository(org.eclipse.aether.RepositorySystemSession repoSession, List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositories, Skin skin) throws SiteToolException
      Get a skin artifact from one of the repositories.
      Parameters:
      repoSession - the repository system session, not null.
      remoteProjectRepositories - the Maven remote project repositories, not null.
      skin - the Skin model, not null.
      Returns:
      the Skin artifact defined in a SiteModel from a given project
      Throws:
      SiteToolException - if any
    • getSiteDescriptor

      File getSiteDescriptor(File siteDirectory, Locale locale)
      Get a site descriptor from the project's site directory.
      Parameters:
      siteDirectory - the site directory, not null
      locale - the locale wanted for the site descriptor, not null. Most specific to least specific lookup from site_language_country_variant.xml, site_language_country.xml, site_language.xml}, to site.xml as last resort for Locale.ROOT, if provided locale defines a variant and/or a country and/or a language.
      Returns:
      the most specific site descriptor file for the given locale
    • getInterpolatedSiteDescriptorContent

      @Deprecated String getInterpolatedSiteDescriptorContent(Map<String,String> props, org.apache.maven.project.MavenProject aProject, String siteDescriptorContent) throws SiteToolException
      Interpolating several expressions in the site descriptor content. Actually, the expressions can be in the project, the environment variables and the specific properties like encoding.

      For instance:

      ${project.name}
      The value from the POM of:

      <project>
        <name>myProjectName</name>
      </project>

      ${my.value}
      The value from the POM of:

      <properties>
        <my.value>hello</my.value>
      </properties>

      ${JAVA_HOME}
      The value of JAVA_HOME in the environment variables
      Parameters:
      props - a map used for interpolation, not null.
      aProject - a Maven project, not null.
      siteDescriptorContent - the site descriptor file, not null.
      Returns:
      the interpolated site descriptor content.
      Throws:
      SiteToolException - if errors happened during the interpolation.
    • getSiteModel

      @Deprecated SiteModel getSiteModel(File siteDirectory, Locale locale, org.apache.maven.project.MavenProject project, List<org.apache.maven.project.MavenProject> reactorProjects, org.eclipse.aether.RepositorySystemSession repoSession, List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositories) throws SiteToolException
      Get a site model for a project.
      Parameters:
      siteDirectory - the site directory, may be null if project from repository
      locale - the locale used for the i18n in SiteModel, not null. See getSiteDescriptor(File, Locale) for details.
      project - the Maven project, not null.
      reactorProjects - the Maven reactor projects, not null.
      repoSession - the repository system session, not null.
      remoteProjectRepositories - the Maven remote project repositories, not null.
      Returns:
      the SiteModel object corresponding to the site.xml file with some interpolations.
      Throws:
      SiteToolException - if any
      Since:
      1.7, was previously with other parameter types and order
    • getSiteModel

      SiteModel getSiteModel(File siteDirectory, Locale locale, org.apache.maven.execution.MavenExecutionRequest request, org.apache.maven.project.MavenProject project, List<org.apache.maven.project.MavenProject> reactorProjects, org.eclipse.aether.RepositorySystemSession repoSession, List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositories) throws SiteToolException
      Get a site model for a project.
      Parameters:
      siteDirectory - the site directory, may be null if project from repository
      locale - the locale used for the i18n in SiteModel, not null. See getSiteDescriptor(File, Locale) for details.
      request - the Maven execution request, not null. This is needed to get the user properties and the system properties for interpolation.
      project - the Maven project, not null.
      reactorProjects - the Maven reactor projects, not null.
      repoSession - the repository system session, not null.
      remoteProjectRepositories - the Maven remote project repositories, not null.
      Returns:
      the SiteModel object corresponding to the site.xml file with some interpolations.
      Throws:
      SiteToolException - if any
      Since:
      2.1.0, was previously with other parameter types and order
    • populateReportsMenu

      void populateReportsMenu(SiteModel siteModel, Locale locale, Map<String,List<org.apache.maven.reporting.MavenReport>> reportsPerCategory)
      Populate the pre-defined reports menu of the site model, if used through <menu ref="reports"/>. Notice this menu reference is translated into 2 separate menus: "Project Information" and "Project Reports".
      Parameters:
      siteModel - the Doxia Sitetools SiteModel, not null.
      locale - the locale used for the i18n in SiteModel, not null. See getSiteDescriptor(File, Locale) for details.
      reportsPerCategory - reports per category to put in "Reports" or "Information" menus, not null.
      See Also:
      • MavenReport.CATEGORY_PROJECT_INFORMATION
      • MavenReport.CATEGORY_PROJECT_REPORTS
    • getSiteLocales

      List<Locale> getSiteLocales(String locales)
      Extracts from a comma-separated list the locales that are available in site-tool resource bundle.
      Parameters:
      locales - A comma separated list of locales
      Returns:
      a list of Locales.
      Since:
      1.7, was previously getAvailableLocales(String)
    • getRelativePath

      String getRelativePath(String to, String from)
      Calculate the relative path between two URLs or between two files. For example:
      to = "http://maven.apache.org" and from = "http://maven.apache.org"
      return ""
      to = "http://maven.apache.org" and from = "http://maven.apache.org/plugins/maven-site-plugin/"
      return "../.."
      to = "http://maven.apache.org/plugins/maven-site-plugin/" and from = "http://maven.apache.org"
      return "plugins/maven-site-plugin"
      to = "/myproject/myproject-module1" and from = "/myproject/myproject"
      return "../myproject-module1"
      Note: The file separator depends on the system. Maven-specific urls are supported, like dav:https://dav.codehaus.org/ or scm:svn:https://svn.apache.org/repos/asf.
      Parameters:
      to - the to url of file as string
      from - the from url of file as string
      Returns:
      a relative path from from to to.