Package org.apache.maven.doxia.tools
Class DefaultSiteTool
- java.lang.Object
-
- org.apache.maven.doxia.tools.DefaultSiteTool
-
- All Implemented Interfaces:
SiteTool
@Singleton @Named public class DefaultSiteTool extends java.lang.Object implements SiteTool
Default implementation of the site tool.- Author:
- Vincent Siveton
-
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.maven.doxia.site.inheritance.SiteModelInheritanceAssemblerassemblerThe component for assembling inheritance.protected org.codehaus.plexus.i18n.I18Ni18nInternationalization.protected org.eclipse.aether.RepositorySystemrepositorySystemThe component that is used to resolve additional required artifacts.-
Fields inherited from interface org.apache.maven.doxia.tools.SiteTool
DEFAULT_LOCALE
-
-
Constructor Summary
Constructors Constructor Description DefaultSiteTool()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description java.lang.StringgetInterpolatedSiteDescriptorContent(java.util.Map<java.lang.String,java.lang.String> props, org.apache.maven.project.MavenProject aProject, java.lang.String siteDescriptorContent)Deprecated.protected static java.lang.StringgetNormalizedPath(java.lang.String path)java.lang.StringgetRelativePath(java.lang.String to, java.lang.String from)Deprecated.java.io.FilegetSiteDescriptor(java.io.File siteDirectory, java.util.Locale locale)Get a site descriptor from the project's site directory.java.util.List<java.util.Locale>getSiteLocales(java.lang.String locales)Extracts from a comma-separated list the locales that are available insite-toolresource bundle.org.apache.maven.doxia.site.SiteModelgetSiteModel(java.io.File siteDirectory, java.util.Locale locale, org.apache.maven.execution.MavenExecutionRequest request, org.apache.maven.project.MavenProject project, java.util.List<org.apache.maven.project.MavenProject> reactorProjects, org.eclipse.aether.RepositorySystemSession repoSession, java.util.List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositories)Get a site model for a project.org.apache.maven.doxia.site.SiteModelgetSiteModel(java.io.File siteDirectory, java.util.Locale locale, org.apache.maven.project.MavenProject project, java.util.List<org.apache.maven.project.MavenProject> reactorProjects, org.eclipse.aether.RepositorySystemSession repoSession, java.util.List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositories)Deprecated.org.apache.maven.artifact.ArtifactgetSkinArtifactFromRepository(org.eclipse.aether.RepositorySystemSession repoSession, java.util.List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositories, org.apache.maven.doxia.site.Skin skin)Get a skin artifact from one of the repositories.voidpopulateReportsMenu(org.apache.maven.doxia.site.SiteModel siteModel, java.util.Locale locale, java.util.Map<java.lang.String,java.util.List<org.apache.maven.reporting.MavenReport>> categories)Populate the pre-definedreportsmenu of the site model, if used through<menu ref="reports"/>.
-
-
-
Field Detail
-
repositorySystem
@Inject protected org.eclipse.aether.RepositorySystem repositorySystem
The component that is used to resolve additional required artifacts.
-
i18n
@Inject protected org.codehaus.plexus.i18n.I18N i18n
Internationalization.
-
assembler
@Inject protected org.apache.maven.doxia.site.inheritance.SiteModelInheritanceAssembler assembler
The component for assembling inheritance.
-
-
Method Detail
-
getSkinArtifactFromRepository
public org.apache.maven.artifact.Artifact getSkinArtifactFromRepository(org.eclipse.aether.RepositorySystemSession repoSession, java.util.List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositories, org.apache.maven.doxia.site.Skin skin) throws SiteToolExceptionGet a skin artifact from one of the repositories.- Specified by:
getSkinArtifactFromRepositoryin 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
Skinartifact defined in aSiteModelfrom a given project - Throws:
SiteToolException- if any
-
getRelativePath
@Deprecated public java.lang.String getRelativePath(java.lang.String to, java.lang.String from)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:
getRelativePathin interfaceSiteTool- Parameters:
to- thetourl of file as stringfrom- thefromurl of file as string- Returns:
- a relative path from
fromtoto.
-
getSiteDescriptor
public java.io.File getSiteDescriptor(java.io.File siteDirectory, java.util.Locale locale)Get a site descriptor from the project's site directory.- Specified by:
getSiteDescriptorin 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.xmlas 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
@Deprecated public org.apache.maven.doxia.site.SiteModel getSiteModel(java.io.File siteDirectory, java.util.Locale locale, org.apache.maven.project.MavenProject project, java.util.List<org.apache.maven.project.MavenProject> reactorProjects, org.eclipse.aether.RepositorySystemSession repoSession, java.util.List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositories) throws SiteToolExceptionDeprecated.Description copied from interface:SiteToolGet a site model for a project.- Specified by:
getSiteModelin 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
SiteModelobject corresponding to thesite.xmlfile with some interpolations. - Throws:
SiteToolException- if any
-
getSiteModel
public org.apache.maven.doxia.site.SiteModel getSiteModel(java.io.File siteDirectory, java.util.Locale locale, org.apache.maven.execution.MavenExecutionRequest request, org.apache.maven.project.MavenProject project, java.util.List<org.apache.maven.project.MavenProject> reactorProjects, org.eclipse.aether.RepositorySystemSession repoSession, java.util.List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositories) throws SiteToolExceptionDescription copied from interface:SiteToolGet a site model for a project.- Specified by:
getSiteModelin 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.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
SiteModelobject corresponding to thesite.xmlfile with some interpolations. - Throws:
SiteToolException- if any
-
getInterpolatedSiteDescriptorContent
@Deprecated public java.lang.String getInterpolatedSiteDescriptorContent(java.util.Map<java.lang.String,java.lang.String> props, org.apache.maven.project.MavenProject aProject, java.lang.String siteDescriptorContent) throws SiteToolExceptionDeprecated.Description copied from interface:SiteToolInterpolating 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:
getInterpolatedSiteDescriptorContentin 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, java.util.Locale locale, java.util.Map<java.lang.String,java.util.List<org.apache.maven.reporting.MavenReport>> categories)Populate the pre-definedreportsmenu 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:
populateReportsMenuin 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:
MavenReport.CATEGORY_PROJECT_INFORMATION,MavenReport.CATEGORY_PROJECT_REPORTS
-
getSiteLocales
public java.util.List<java.util.Locale> getSiteLocales(java.lang.String locales)
Extracts from a comma-separated list the locales that are available insite-toolresource bundle.- Specified by:
getSiteLocalesin interfaceSiteTool- Parameters:
locales- A comma separated list of locales- Returns:
- a list of
Locales.
-
getNormalizedPath
protected static java.lang.String getNormalizedPath(java.lang.String path)
- Parameters:
path- could be null.- Returns:
- the path normalized, i.e. by eliminating "/../" and "/./" in the path.
- See Also:
FilenameUtils.normalize(String)
-
-