Author: brett
Date: Thu Apr  6 01:02:44 2006
New Revision: 391926

URL: http://svn.apache.org/viewcvs?rev=391926&view=rev
Log:
[MSITE-23] use correct parent project in site:stage

Modified:
    
maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java
    
maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageMojo.java

Modified: 
maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java?rev=391926&r1=391925&r2=391926&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java
 Thu Apr  6 01:02:44 2006
@@ -276,7 +276,6 @@
         }
 
         // Legacy for the old ${parentProject} syntax
-        MavenProject parentProject = project.getParent();
         props.put( "parentProject", "<menu ref=\"parentProject\"/>" );
 
         siteDescriptorContent = StringUtils.interpolate( 
siteDescriptorContent, props );
@@ -295,9 +294,10 @@
             throw new MojoExecutionException( "Error reading site descriptor", 
e );
         }
 
+        MavenProject parentProject = getParentProject( project );
         if ( parentProject != null && project.getUrl() != null && 
parentProject.getUrl() != null )
         {
-            populateProjectParentMenu( decoration, locale );
+            populateProjectParentMenu( decoration, locale, parentProject );
         }
 
         if ( parentProject != null && project.getUrl() != null && 
parentProject.getUrl() != null )
@@ -358,13 +358,13 @@
         return result;
     }
 
-    private void populateProjectParentMenu( DecorationModel decorationModel, 
Locale locale )
+    private void populateProjectParentMenu( DecorationModel decorationModel, 
Locale locale, MavenProject parentProject )
     {
         Menu menu = decorationModel.getMenuRef( "parentProject" );
 
         if ( menu != null )
         {
-            String parentUrl = getParentUrl();
+            String parentUrl = parentProject.getUrl();
 
             if ( parentUrl != null )
             {
@@ -382,7 +382,7 @@
                 menu.setName( i18n.getString( "site-plugin", locale, 
"report.menu.parentproject" ) );
 
                 MenuItem item = new MenuItem();
-                item.setName( project.getParent().getName() );
+                item.setName( parentProject.getName() );
                 item.setHref( parentUrl );
                 menu.addItem( item );
             }
@@ -397,17 +397,19 @@
      * <p/>
      * TODO: once bug is fixed in Maven proper, remove this
      *
+     * @param project
      * @return parent project URL.
      */
-    private String getParentUrl()
+    protected MavenProject getParentProject( MavenProject project )
     {
-        String url = null;
+        MavenProject parentProject = null;
 
-        if ( project.getParent() != null )
+        MavenProject origParent = project.getParent();
+        if ( origParent != null )
         {
-            if ( project.getParent().getArtifactId() != null )
+            if ( origParent.getArtifactId() != null )
             {
-                String parentArtifactId = project.getParent().getArtifactId();
+                String parentArtifactId = origParent.getArtifactId();
 
                 Iterator reactorItr = reactorProjects.iterator();
 
@@ -419,24 +421,24 @@
 
                     if ( parentArtifactId.equals( reactorArtifactId ) )
                     {
-                        url = reactorProject.getUrl();
+                        parentProject = reactorProject;
                         break;
                     }
                 }
             }
 
-            if ( url == null )
+            if ( parentProject == null )
             {
                 try
                 {
                     MavenProject mavenProject = mavenProjectBuilder.build(
                         new File( project.getBasedir(), 
project.getModel().getParent().getRelativePath() ),
                         localRepository, null );
-                    if ( mavenProject.getGroupId().equals( 
project.getParent().getGroupId() ) &&
-                        mavenProject.getArtifactId().equals( 
project.getParent().getArtifactId() ) &&
-                        mavenProject.getVersion().equals( 
project.getParent().getVersion() ) )
+                    if ( mavenProject.getGroupId().equals( 
origParent.getGroupId() ) &&
+                        mavenProject.getArtifactId().equals( 
origParent.getArtifactId() ) &&
+                        mavenProject.getVersion().equals( 
origParent.getVersion() ) )
                     {
-                        url = mavenProject.getUrl();
+                        parentProject = mavenProject;
                     }
                 }
                 catch ( ProjectBuildingException e )
@@ -445,13 +447,13 @@
                 }
             }
 
-            if ( url == null )
+            if ( parentProject == null )
             {
                 try
                 {
-                    url = mavenProjectBuilder.buildFromRepository( 
project.getParentArtifact(),
-                                                                   
project.getRemoteArtifactRepositories(),
-                                                                   
localRepository ).getUrl();
+                    parentProject = mavenProjectBuilder.buildFromRepository( 
project.getParentArtifact(),
+                                                                             
project.getRemoteArtifactRepositories(),
+                                                                             
localRepository );
                 }
                 catch ( ProjectBuildingException e )
                 {
@@ -459,15 +461,14 @@
                 }
             }
 
-            if ( url == null )
+            if ( parentProject == null )
             {
                 // fallback to uninterpolated value
 
-                url = project.getParent().getUrl();
+                parentProject = origParent;
             }
         }
-
-        return url;
+        return parentProject;
     }
 
     private File getSkinArtifactFile( DecorationModel decoration )

Modified: 
maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageMojo.java
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageMojo.java?rev=391926&r1=391925&r2=391926&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageMojo.java
 Thu Apr  6 01:02:44 2006
@@ -16,9 +16,6 @@
  * limitations under the License.
  */
 
-import java.io.File;
-import java.util.Iterator;
-
 import org.apache.maven.artifact.manager.WagonManager;
 import org.apache.maven.model.Site;
 import org.apache.maven.plugin.MojoExecutionException;
@@ -38,6 +35,9 @@
 import org.codehaus.plexus.util.PathTool;
 import org.codehaus.plexus.util.StringUtils;
 
+import java.io.File;
+import java.util.Iterator;
+
 /**
  * Staging a site in specific directory.
  * <p>Useful to test the generated site.</p>
@@ -53,7 +53,7 @@
     /**
      * Staging directory location.
      *
-     * @parameter expression="${stagingDirectory}"
+     * @parameter expression="${stagingDirectory}" 
default-value="${project.build.directory}/stage-site"
      * @required
      */
     private File stagingDirectory;
@@ -61,9 +61,8 @@
     /**
      * Staging site URL to deploy the staging directory.
      *
-     * @see <a 
href="http://maven.apache.org/maven-model/maven.html#class_site";>MavenModel#class_site</a>
-     *
      * @parameter expression="${stagingSiteURL}"
+     * @see <a 
href="http://maven.apache.org/maven-model/maven.html#class_site";>MavenModel#class_site</a>
      */
     private String stagingSiteURL;
 
@@ -91,18 +90,18 @@
 
         outputDirectory = new File( stagingDirectory, structureProject );
 
-        String outputRelativePath = PathTool.getRelativePath( 
stagingDirectory.getAbsolutePath(),
-                                                              new File( 
outputDirectory, "dummy.html" )
-                                                                  
.getAbsolutePath() );
+        String outputRelativePath = PathTool.getRelativePath( 
stagingDirectory.getAbsolutePath(), new File(
+            outputDirectory, "dummy.html" ).getAbsolutePath() );
         project.setUrl( outputRelativePath + "/" + structureProject );
 
-        if ( project.getParent() != null )
+        MavenProject parent = getParentProject( project );
+        if ( parent != null )
         {
-            String structureParentProject = getStructure( project.getParent() 
);
-            project.getParent().setUrl( outputRelativePath + "/" + 
structureParentProject );
+            String structureParentProject = getStructure( parent );
+            parent.setUrl( outputRelativePath + "/" + structureParentProject );
         }
 
-        if ( ( reactorProjects != null ) && ( reactorProjects.size() > 1 ) )
+        if ( reactorProjects != null && reactorProjects.size() > 1 )
         {
             Iterator reactorItr = reactorProjects.iterator();
 
@@ -110,8 +109,8 @@
             {
                 MavenProject reactorProject = (MavenProject) reactorItr.next();
 
-                if ( ( reactorProject != null ) && ( 
reactorProject.getParent() != null )
-                    && ( project.getArtifactId().equals( 
reactorProject.getParent().getArtifactId() ) ) )
+                if ( reactorProject != null && reactorProject.getParent() != 
null &&
+                    project.getArtifactId().equals( 
reactorProject.getParent().getArtifactId() ) )
                 {
                     String structureReactorProject = getStructure( 
reactorProject );
                     reactorProject.setUrl( outputRelativePath + "/" + 
structureReactorProject );
@@ -157,7 +156,7 @@
         if ( site == null )
         {
             throw new MojoExecutionException(
-                                              "Missing site information in the 
distribution management element in the project." );
+                "Missing site information in the distribution management 
element in the project." );
         }
 
         if ( StringUtils.isEmpty( site.getUrl() ) )
@@ -190,7 +189,7 @@
         String id = "stagingSite";
         Repository repository = new Repository( id, stagingSiteURL );
 
-        Wagon wagon = null;
+        Wagon wagon;
         try
         {
             wagon = wagonManager.getWagon( repository.getProtocol() );
@@ -202,8 +201,8 @@
 
         if ( !wagon.supportsDirectoryCopy() )
         {
-            throw new MojoExecutionException( "Wagon protocol '" + 
repository.getProtocol()
-                + "' doesn't support directory copying" );
+            throw new MojoExecutionException(
+                "Wagon protocol '" + repository.getProtocol() + "' doesn't 
support directory copying" );
         }
 
         try


Reply via email to