Package org.apache.maven.doxia.tools
Class DefaultSiteTool
java.lang.Object
org.codehaus.plexus.logging.AbstractLogEnabled
org.apache.maven.doxia.tools.DefaultSiteTool
- All Implemented Interfaces:
SiteTool
,org.codehaus.plexus.logging.LogEnabled
@Component(role=SiteTool.class)
public class DefaultSiteTool
extends org.codehaus.plexus.logging.AbstractLogEnabled
implements SiteTool
Default implementation of the site tool.
- Author:
- Vincent Siveton
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.apache.maven.doxia.site.decoration.inheritance.DecorationModelInheritanceAssembler
The component for assembling inheritance.protected org.codehaus.plexus.i18n.I18N
Internationalization.protected org.apache.maven.project.MavenProjectBuilder
Project builder (deprecated in Maven 3: should use ProjectBuilder, which will avoid issues like DOXIASITETOOLS-166)Fields inherited from interface org.apache.maven.doxia.tools.SiteTool
DEFAULT_LOCALE, ROLE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.maven.doxia.site.decoration.DecorationModel
getDecorationModel
(File siteDirectory, Locale locale, org.apache.maven.project.MavenProject project, List<org.apache.maven.project.MavenProject> reactorProjects, org.apache.maven.artifact.repository.ArtifactRepository localRepository, List<org.apache.maven.artifact.repository.ArtifactRepository> repositories) Get a decoration model for a project.org.apache.maven.artifact.Artifact
getDefaultSkinArtifact
(org.apache.maven.artifact.repository.ArtifactRepository localRepository, List<org.apache.maven.artifact.repository.ArtifactRepository> remoteArtifactRepositories) Get the default skin artifact for a project from one of the repositories.getInterpolatedSiteDescriptorContent
(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) org.apache.maven.project.MavenProject
getParentProject
(org.apache.maven.project.MavenProject aProject, List<org.apache.maven.project.MavenProject> reactorProjects, org.apache.maven.artifact.repository.ArtifactRepository localRepository) Returns the parent POM with interpolated URLs.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.artifact.Artifact
getSkinArtifactFromRepository
(org.apache.maven.artifact.repository.ArtifactRepository localRepository, List<org.apache.maven.artifact.repository.ArtifactRepository> remoteArtifactRepositories, org.apache.maven.doxia.site.decoration.DecorationModel decoration) Get a skin artifact from one of the repositories.void
populateReportsMenu
(org.apache.maven.doxia.site.decoration.DecorationModel decorationModel, Locale locale, Map<String, List<org.apache.maven.reporting.MavenReport>> categories) Populate the pre-definedreports
menu of the decoration model, if used through<menu ref="reports"/>
.Methods inherited from class org.codehaus.plexus.logging.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
-
Field Details
-
i18n
@Requirement protected org.codehaus.plexus.i18n.I18N i18nInternationalization. -
assembler
@Requirement protected org.apache.maven.doxia.site.decoration.inheritance.DecorationModelInheritanceAssembler assemblerThe component for assembling inheritance. -
mavenProjectBuilder
@Requirement protected org.apache.maven.project.MavenProjectBuilder mavenProjectBuilderProject builder (deprecated in Maven 3: should use ProjectBuilder, which will avoid issues like DOXIASITETOOLS-166)
-
-
Constructor Details
-
DefaultSiteTool
public DefaultSiteTool()
-
-
Method Details
-
getSkinArtifactFromRepository
public org.apache.maven.artifact.Artifact getSkinArtifactFromRepository(org.apache.maven.artifact.repository.ArtifactRepository localRepository, List<org.apache.maven.artifact.repository.ArtifactRepository> remoteArtifactRepositories, org.apache.maven.doxia.site.decoration.DecorationModel decoration) throws SiteToolException Description copied from interface:SiteTool
Get a skin artifact from one of the repositories.- Specified by:
getSkinArtifactFromRepository
in interfaceSiteTool
- Parameters:
localRepository
- the Maven local repository, not null.remoteArtifactRepositories
- the Maven remote repositories, not null.decoration
- the Doxia site descriptor model, not null.- Returns:
- the
Skin
artifact defined in aDecorationModel
from a given project and a local repository - Throws:
SiteToolException
- if any
-
getDefaultSkinArtifact
public org.apache.maven.artifact.Artifact getDefaultSkinArtifact(org.apache.maven.artifact.repository.ArtifactRepository localRepository, List<org.apache.maven.artifact.repository.ArtifactRepository> remoteArtifactRepositories) throws SiteToolException Description copied from interface:SiteTool
Get the default skin artifact for a project from one of the repositories.- Specified by:
getDefaultSkinArtifact
in interfaceSiteTool
- Parameters:
localRepository
- the Maven local repository, not null.remoteArtifactRepositories
- the Maven remote repositories, not null.- Returns:
- the default
Skin
artifact from a given project and a local repository - Throws:
SiteToolException
- if any- See Also:
-
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. If not null, searching forsite_localeLanguage.xml
, otherwise searching forsite.xml
.- Returns:
- the site descriptor file
-
getDecorationModel
public org.apache.maven.doxia.site.decoration.DecorationModel getDecorationModel(File siteDirectory, Locale locale, org.apache.maven.project.MavenProject project, List<org.apache.maven.project.MavenProject> reactorProjects, org.apache.maven.artifact.repository.ArtifactRepository localRepository, List<org.apache.maven.artifact.repository.ArtifactRepository> repositories) throws SiteToolException Get a decoration model for a project.- Specified by:
getDecorationModel
in interfaceSiteTool
- Parameters:
siteDirectory
- the site directory, may be null if project from repositorylocale
- the locale used for the i18n in DecorationModel. If null, using the default locale in the jvm.project
- the Maven project, not null.reactorProjects
- the Maven reactor projects, not null.localRepository
- the Maven local repository, not null.repositories
- the Maven remote repositories, not null.- Returns:
- the
DecorationModel
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.
-
getParentProject
public org.apache.maven.project.MavenProject getParentProject(org.apache.maven.project.MavenProject aProject, List<org.apache.maven.project.MavenProject> reactorProjects, org.apache.maven.artifact.repository.ArtifactRepository localRepository) Returns the parent POM with interpolated URLs. If called from Maven 3, just returnsproject.getParent()
, which is already interpolated. But when called from Maven 2, attempts to source this value from thereactorProjects
parameters if available (reactor env model attributes are interpolated), or if the reactor is unavailable (-N) resorts to theproject.getParent().getUrl()
value which will NOT have been interpolated.- Specified by:
getParentProject
in interfaceSiteTool
- Parameters:
aProject
- a Maven project, not null.reactorProjects
- the Maven reactor projects, not null.localRepository
- the Maven local repository, not null.- Returns:
- the parent project with interpolated URLs.
-
populateReportsMenu
public void populateReportsMenu(org.apache.maven.doxia.site.decoration.DecorationModel decorationModel, Locale locale, Map<String, List<org.apache.maven.reporting.MavenReport>> categories) Populate the pre-definedreports
menu of the decoration 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:
decorationModel
- the Doxia Sitetools DecorationModel, not null.locale
- the locale used for the i18n in DecorationModel. If null, using the default locale in the jvm.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. Notice thatdefault
value will be changed to the default locale of the JVM.- Specified by:
getSiteLocales
in interfaceSiteTool
- Parameters:
locales
- A comma separated list of locales- Returns:
- a list of
Locale
, which at least contains the Maven default locale which is english
-
getNormalizedPath
- Parameters:
path
- could be null.- Returns:
- the path normalized, i.e. by eliminating "/../" and "/./" in the path.
- See Also:
-