Package org.apache.maven.doxia.tools
Class DefaultSiteTool
java.lang.Object
org.apache.maven.doxia.tools.DefaultSiteTool
- All Implemented Interfaces:
SiteTool
Default implementation of the site tool.
- Author:
- Vincent Siveton
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.apache.maven.doxia.site.inheritance.SiteModelInheritanceAssembler
The component for assembling inheritance.protected org.codehaus.plexus.i18n.I18N
Internationalization.protected org.eclipse.aether.RepositorySystem
The component that is used to resolve additional required artifacts.Fields inherited from interface org.apache.maven.doxia.tools.SiteTool
DEFAULT_LOCALE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetInterpolatedSiteDescriptorContent
(Map<String, String> props, org.apache.maven.project.MavenProject aProject, String siteDescriptorContent) Interpolating several expressions in the site descriptor content.protected static String
getNormalizedPath
(String path) getRelativePath
(String to, String from) Deprecated.getSiteDescriptor
(File siteDirectory, Locale locale) Get a site descriptor from the project's site directory.getSiteLocales
(String locales) Extracts from a comma-separated list the locales that are available insite-tool
resource bundle.org.apache.maven.doxia.site.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) Get a site model for a project.org.apache.maven.artifact.Artifact
getSkinArtifactFromRepository
(org.eclipse.aether.RepositorySystemSession repoSession, List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositories, org.apache.maven.doxia.site.Skin skin) Get a skin artifact from one of the repositories.void
populateReportsMenu
(org.apache.maven.doxia.site.SiteModel siteModel, Locale locale, Map<String, List<org.apache.maven.reporting.MavenReport>> categories) Populate the pre-definedreports
menu of the site model, if used through<menu ref="reports"/>
.
-
Field Details
-
repositorySystem
@Inject protected org.eclipse.aether.RepositorySystem repositorySystemThe component that is used to resolve additional required artifacts. -
i18n
@Inject protected org.codehaus.plexus.i18n.I18N i18nInternationalization. -
assembler
@Inject protected org.apache.maven.doxia.site.inheritance.SiteModelInheritanceAssembler assemblerThe component for assembling inheritance.
-
-
Constructor Details
-
DefaultSiteTool
public DefaultSiteTool()
-
-
Method Details
-
getSkinArtifactFromRepository
public org.apache.maven.artifact.Artifact getSkinArtifactFromRepository(org.eclipse.aether.RepositorySystemSession repoSession, List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositories, org.apache.maven.doxia.site.Skin skin) throws SiteToolException Get a skin artifact from one of the repositories.- Specified by:
getSkinArtifactFromRepository
in interfaceSiteTool
- 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 aSiteModel
from a given project - Throws:
SiteToolException
- if any
-
getRelativePath
Deprecated.This method is not implemented according to the URI specification and has many weird corner cases where it doesn't do the right thing. Please consider using a better implemented method from a different library such as org.apache.http.client.utils.URIUtils#resolve.- Specified by:
getRelativePath
in interfaceSiteTool
- Parameters:
to
- theto
url of file as stringfrom
- thefrom
url of file as string- Returns:
- a relative path from
from
toto
.
-
getSiteDescriptor
Get a site descriptor from the project's site directory.- Specified by:
getSiteDescriptor
in interfaceSiteTool
- Parameters:
siteDirectory
- the site directory, not nulllocale
- the locale wanted for the site descriptor, not null. Most specific to least specific lookup fromsite_language_country_variant.xml
,site_language_country.xml
,site_language.xml}
, tosite.xml
as last resort forLocale.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
-
getSiteModel
public org.apache.maven.doxia.site.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.- Specified by:
getSiteModel
in interfaceSiteTool
- Parameters:
siteDirectory
- the site directory, may be null if project from repositorylocale
- the locale used for the i18n in SiteModel, not null. SeeSiteTool.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 thesite.xml
file with some interpolations. - Throws:
SiteToolException
- if any
-
getInterpolatedSiteDescriptorContent
public String getInterpolatedSiteDescriptorContent(Map<String, String> props, org.apache.maven.project.MavenProject aProject, String siteDescriptorContent) throws SiteToolExceptionInterpolating several expressions in the site descriptor content. Actually, the expressions can be in the project, the environment variables and the specific properties likeencoding
.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
- Specified by:
getInterpolatedSiteDescriptorContent
in interfaceSiteTool
- 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.
-
populateReportsMenu
public void populateReportsMenu(org.apache.maven.doxia.site.SiteModel siteModel, Locale locale, Map<String, List<org.apache.maven.reporting.MavenReport>> categories) Populate the pre-definedreports
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".- Specified by:
populateReportsMenu
in interfaceSiteTool
- Parameters:
siteModel
- the Doxia Sitetools SiteModel, not null.locale
- the locale used for the i18n in SiteModel, not null. SeeSiteTool.getSiteDescriptor(File, Locale)
for details.categories
- reports per category to put in "Reports" or "Information" menus, not null.- See Also:
-
getSiteLocales
Extracts from a comma-separated list the locales that are available insite-tool
resource bundle.- Specified by:
getSiteLocales
in interfaceSiteTool
- Parameters:
locales
- A comma separated list of locales- Returns:
- a list of
Locale
s.
-
getNormalizedPath
- Parameters:
path
- could be null.- Returns:
- the path normalized, i.e. by eliminating "/../" and "/./" in the path.
- See Also:
-