You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2015/12/17 19:33:15 UTC
svn commit: r1720625 - in
/maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src:
main/java/org/apache/maven/doxia/tools/
test/java/org/apache/maven/doxia/tools/
Author: hboutemy
Date: Thu Dec 17 18:33:15 2015
New Revision: 1720625
URL: http://svn.apache.org/viewvc?rev=1720625&view=rev
Log:
[DOXIASITETOOLS-125] fixed site directory propagation from project to parent
Modified:
maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java
maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/SiteTool.java
maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java
Modified: maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java?rev=1720625&r1=1720624&r2=1720625&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java Thu Dec 17 18:33:15 2015
@@ -325,6 +325,7 @@ public class DefaultSiteTool
/** {@inheritDoc} */
public File getSiteDescriptor( File siteDirectory, Locale locale )
{
+ checkNotNull( "siteDirectory", siteDirectory );
final Locale llocale = ( locale == null ) ? new Locale( "" ) : locale;
File siteDescriptor = new File( siteDirectory, "site_" + llocale.getLanguage() + ".xml" );
@@ -391,6 +392,8 @@ public class DefaultSiteTool
final Locale llocale = ( locale == null ) ? Locale.getDefault() : locale;
+ getLogger().debug( "Computing decoration model for locale " + llocale );
+
Map<String, String> props = new HashMap<String, String>( 2 );
// This is to support the deprecated ${reports} and ${modules} tags.
@@ -404,6 +407,8 @@ public class DefaultSiteTool
if ( decorationModel == null )
{
+ getLogger().debug( "Using default site descriptor" );
+
String siteDescriptorContent;
InputStream in = null;
@@ -442,6 +447,11 @@ public class DefaultSiteTool
decorationModel.setBannerLeft( banner );
}
+ if ( decorationModel != null && decorationModel.getSkin() != null )
+ {
+ getLogger().debug( "Skin used: " + decorationModel.getSkin() );
+ }
+
return decorationModel;
}
@@ -1015,12 +1025,12 @@ public class DefaultSiteTool
}
/**
+ * @param siteDirectory, can be null if project.basedir is null, ie POM from repository
+ * @param locale not null
* @param project not null
* @param reactorProjects not null
* @param localRepository not null
* @param repositories not null
- * @param siteDirectory may be null
- * @param locale not null
* @param origProps not null
* @return the decoration model depending the locale
* @throws SiteToolException if any
@@ -1064,6 +1074,10 @@ public class DefaultSiteTool
siteDescriptorContent = IOUtil.toString( siteDescriptorReader );
siteDescriptorLastModified = siteDescriptor.lastModified();
}
+ else
+ {
+ getLogger().debug( "No site descriptor found for " + project.getId() );
+ }
}
catch ( IOException e )
{
@@ -1085,12 +1099,25 @@ public class DefaultSiteTool
if ( parentProject != null && ( decoration == null || decoration.isMergeParent() ) )
{
- getLogger().debug( "Loading parent project site descriptor..." );
+ getLogger().debug( "Looking for parent project site descriptor: " + parentProject.getId() );
MavenProject parentParentProject = getParentProject( parentProject, reactorProjects, localRepository );
- DecorationModel parent = getDecorationModel( null, locale, parentProject, parentParentProject,
- reactorProjects, localRepository, repositories, props );
+ File parentSiteDirectory = null;
+
+ if ( parentProject.getBasedir() != null )
+ {
+ String siteRelativePath = getRelativeFilePath( project.getBasedir().getAbsolutePath(),
+ siteDescriptor.getParentFile().getAbsolutePath() );
+
+ parentSiteDirectory = new File( parentProject.getBasedir(), siteRelativePath );
+ // notice: using same siteRelativePath for parent as current project; may be wrong if site plugin
+ // has different configuration. But this is a rare case (this only has impact if parent if from reactor)
+ }
+
+ DecorationModel parent =
+ getDecorationModel( parentSiteDirectory, locale, parentProject, parentParentProject, reactorProjects,
+ localRepository, repositories, props );
// MSHARED-116 requires an empty decoration model (instead of a null one)
// MSHARED-145 requires us to do this only if there is a parent to merge it with
@@ -1111,18 +1138,13 @@ public class DefaultSiteTool
String parentDistMgmnt = getDistMgmntSiteUrl( parentProject );
if ( getLogger().isDebugEnabled() )
{
- getLogger().debug( "model inheritance distributionManagement.site.url child = " + projectDistMgmnt
- + ", parent = " + parentDistMgmnt );
+ getLogger().debug( "assembling decoration model inheritance: distributionManagement.site.url child = " + projectDistMgmnt
+ + " and parent = " + parentDistMgmnt );
}
assembler.assembleModelInheritance( name, decoration, parent, projectDistMgmnt,
parentDistMgmnt == null ? projectDistMgmnt : parentDistMgmnt );
}
- if ( decoration != null && decoration.getSkin() != null )
- {
- getLogger().debug( "Skin used: " + decoration.getSkin() );
- }
-
return decoration;
}
Modified: maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/SiteTool.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/SiteTool.java?rev=1720625&r1=1720624&r2=1720625&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/SiteTool.java (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/SiteTool.java Thu Dec 17 18:33:15 2015
@@ -80,7 +80,7 @@ public interface SiteTool
/**
* Get a site descriptor from the project's site directory.
*
- * @param siteDirectory the site directory
+ * @param siteDirectory the site directory, not null
* @param locale the locale wanted for the site descriptor. If not null, searching for
* <code>site_<i>localeLanguage</i>.xml</code>, otherwise searching for <code>site.xml</code>.
* @return the site descriptor file
@@ -124,7 +124,7 @@ public interface SiteTool
/**
* Get a decoration model for a project.
*
- * @param siteDirectory the site directory, may be <code>null</code>
+ * @param siteDirectory the site directory, may be null if project from repository
* @param locale the locale used for the i18n in DecorationModel. If null, using the default locale in the jvm.
* @param project the Maven project, not null.
* @param reactorProjects the Maven reactor projects, not null.
Modified: maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java?rev=1720625&r1=1720624&r2=1720625&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java Thu Dec 17 18:33:15 2015
@@ -258,19 +258,34 @@ public class SiteToolTest
project.setVersion( "1.0" );
List<MavenProject> reactorProjects = new ArrayList<MavenProject>();
- project.setBasedir( null ); // get it from repo
-
- DecorationModel model = tool.getDecorationModel( null, Locale.getDefault(), project, reactorProjects,
- getLocalRepo(), project.getRemoteArtifactRepositories() );
+ // model from current local build
+ DecorationModel model =
+ tool.getDecorationModel( new File( project.getBasedir(), "src/site" ), Locale.getDefault(), project,
+ reactorProjects, getLocalRepo(), project.getRemoteArtifactRepositories() );
assertNotNull( model );
assertNotNull( model.getBannerLeft() );
- assertEquals( "Maven", model.getBannerLeft().getName() );
- assertEquals( "images/apache-maven-project-2.png", model.getBannerLeft().getSrc() );
+ assertEquals( "Maven Site", model.getBannerLeft().getName() );
+ assertEquals( "http://maven.apache.org/images/apache-maven-project.png", model.getBannerLeft().getSrc() );
assertEquals( "http://maven.apache.org/", model.getBannerLeft().getHref() );
assertNotNull( model.getBannerRight() );
assertNull( model.getBannerRight().getName() );
- assertEquals( "images/maven-logo-2.gif", model.getBannerRight().getSrc() );
+ assertEquals( "http://maven.apache.org/images/maven-small.gif", model.getBannerRight().getSrc() );
assertNull( model.getBannerRight().getHref() );
+
+ // model from repo: http://repo1.maven.org/maven2/org/apache/maven/maven-site/1.0/maven-site-1.0-site.xml
+ project.setBasedir( null );
+ DecorationModel modelFromRepo =
+ tool.getDecorationModel( null, Locale.getDefault(), project, reactorProjects, getLocalRepo(),
+ project.getRemoteArtifactRepositories() );
+ assertNotNull( modelFromRepo );
+ assertNotNull( modelFromRepo.getBannerLeft() );
+ assertEquals( "Maven", modelFromRepo.getBannerLeft().getName() );
+ assertEquals( "images/apache-maven-project-2.png", modelFromRepo.getBannerLeft().getSrc() );
+ assertEquals( "http://maven.apache.org/", modelFromRepo.getBannerLeft().getHref() );
+ assertNotNull( modelFromRepo.getBannerRight() );
+ assertNull( modelFromRepo.getBannerRight().getName() );
+ assertEquals( "images/maven-logo-2.gif", modelFromRepo.getBannerRight().getSrc() );
+ assertNull( modelFromRepo.getBannerRight().getHref() );
}
/**