Author: olamy
Date: Mon Sep 28 21:51:21 2009
New Revision: 819744

URL: http://svn.apache.org/viewvc?rev=819744&view=rev
Log:
if empty try to resolve/find plugin  version from the pom :
- first from build.plugins.
- second from build.pluginManagement.plugins.
- third with the current repositories (can resolve a SNAPSHOT version)

Modified:
    maven/plugins/branches/maven-site-plugin-3.x/src/it/no-version/pom.xml
    
maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java

Modified: maven/plugins/branches/maven-site-plugin-3.x/src/it/no-version/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/plugins/branches/maven-site-plugin-3.x/src/it/no-version/pom.xml?rev=819744&r1=819743&r2=819744&view=diff
==============================================================================
--- maven/plugins/branches/maven-site-plugin-3.x/src/it/no-version/pom.xml 
(original)
+++ maven/plugins/branches/maven-site-plugin-3.x/src/it/no-version/pom.xml Mon 
Sep 28 21:51:21 2009
@@ -22,6 +22,11 @@
         <artifactId>maven-site-plugin</artifactId>
         <version>@project.version@</version>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-report-plugin</artifactId>
+        <version>2.4.3</version>
+      </plugin>      
     </plugins>
   </build>  
   <reporting>

Modified: 
maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java?rev=819744&r1=819743&r2=819744&view=diff
==============================================================================
--- 
maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java
 (original)
+++ 
maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java
 Mon Sep 28 21:51:21 2009
@@ -43,11 +43,13 @@
 import org.apache.maven.plugin.version.PluginVersionResolutionException;
 import org.apache.maven.plugin.version.PluginVersionResolver;
 import org.apache.maven.plugin.version.PluginVersionResult;
+import org.apache.maven.project.MavenProject;
 import org.apache.maven.reporting.MavenReport;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.configuration.PlexusConfiguration;
 import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.codehaus.plexus.util.xml.Xpp3DomUtils;
 
@@ -109,7 +111,7 @@
                 Plugin plugin = new Plugin();
                 plugin.setGroupId( reportPlugin.getGroupId() );
                 plugin.setArtifactId( reportPlugin.getArtifactId() );
-                plugin.setVersion( getPluginVersion (reportPlugin, 
repositoryRequest ) );
+                plugin.setVersion( getPluginVersion (reportPlugin, 
repositoryRequest, mavenReportExecutorRequest.getProject() ) );
 
                 if (logger.isInfoEnabled())
                 {
@@ -342,7 +344,7 @@
         return logger;
     }
     
-    protected String getPluginVersion( ReportPlugin reportPlugin, 
RepositoryRequest repositoryRequest )
+    protected String getPluginVersion( ReportPlugin reportPlugin, 
RepositoryRequest repositoryRequest, MavenProject project )
         throws PluginVersionResolutionException
     {
         if ( getLog().isDebugEnabled() )
@@ -353,6 +355,38 @@
         {
             return reportPlugin.getVersion();
         }
+        
+        // search in the build section
+        if ( project.getBuild() != null )
+        {
+            Plugin plugin = find( reportPlugin.getGroupId(), 
reportPlugin.getArtifactId(), project.getBuild().getPlugins() );
+            if (plugin != null && plugin.getVersion() != null)
+            {
+                if (getLog().isDebugEnabled())
+                {
+                    logger.debug( "resolve version from the build.plugins 
section " + plugin.getVersion() );
+                }
+                return plugin.getVersion();
+            }
+        }
+        
+        // search in pluginMngt section
+        if ( project.getBuild() != null && 
project.getBuild().getPluginManagement() != null )
+        {
+            Plugin plugin =
+                find( reportPlugin.getGroupId(), reportPlugin.getArtifactId(),
+                      project.getBuild().getPluginManagement().getPlugins() );
+            if ( plugin != null && plugin.getVersion() != null )
+            {
+                if ( getLog().isDebugEnabled() )
+                {
+                    logger.debug( "resolve version from the 
build.pluginManagement.plugins section " + plugin.getVersion() );
+                }
+                return plugin.getVersion();
+            }
+        }        
+        
+        
         logger.warn( "report plugin " + reportPlugin.getGroupId() + ":" + 
reportPlugin.getArtifactId()
             + " has an empty version" );
         logger.warn( "" );
@@ -375,4 +409,21 @@
         }
         return result.getVersion();
     }
+    
+    private Plugin find( String groupId, String artifactId, List<Plugin> 
plugins )
+    {
+        if ( plugins == null )
+        {
+            return null;
+        }
+        for ( Plugin plugin : plugins )
+        {
+            if ( StringUtils.equals( plugin.getArtifactId(), artifactId )
+                && StringUtils.equals( plugin.getGroupId(), groupId ) )
+            {
+                return plugin;
+            }
+        }
+        return null;
+    }
 }


Reply via email to