You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by de...@apache.org on 2007/07/27 20:49:28 UTC

svn commit: r560351 - /maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/PomV3ToV4Translator.java

Author: dennisl
Date: Fri Jul 27 11:49:27 2007
New Revision: 560351

URL: http://svn.apache.org/viewvc?view=rev&rev=560351
Log:
[MONE-16] Convert the reports to reporting plugins

o Added a mechanism to lookup the groupId of a report. Previously, if a report was only listed in the <reports> section of a model v3 pom, we had no idea which groupId it had. This means that we can now handle reports that do not come from the Maven project.

Modified:
    maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/PomV3ToV4Translator.java

Modified: maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/PomV3ToV4Translator.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/PomV3ToV4Translator.java?view=diff&rev=560351&r1=560350&r2=560351
==============================================================================
--- maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/PomV3ToV4Translator.java (original)
+++ maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/PomV3ToV4Translator.java Fri Jul 27 11:49:27 2007
@@ -43,8 +43,10 @@
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.Properties;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -60,6 +62,22 @@
 
     private List warnings;
 
+    /**
+     * A map that holds artifactIds (as keys) and groupIds (as values) for
+     * reports that are not Maven's own. It is used to lookup the groupId of
+     * reports that are not specified as a dependency.
+     */
+    private Map model3ReportPlugins = new HashMap();
+
+    public PomV3ToV4Translator()
+    {
+        // Add known non-Maven project reports, i.e from the maven-plugins
+        // project at SourceForge.
+        model3ReportPlugins.put( "maven-cobertura-plugin", "maven-plugins" );
+        model3ReportPlugins.put( "maven-findbugs-plugin", "maven-plugins" );
+        model3ReportPlugins.put( "maven-javancss-plugin", "maven-plugins" );
+    }
+
     public Model translate( org.apache.maven.model.v3_0_0.Model v3Model )
         throws PomTranslationException
     {
@@ -262,7 +280,7 @@
                 {
                     ReportPlugin reportPlugin = new ReportPlugin();
 
-                    reportPlugin.setGroupId( "org.apache.maven.plugins" );
+                    reportPlugin.setGroupId( findReportPluginGroupId( reportName ) );
 
                     reportPlugin.setArtifactId( reportName );
 
@@ -283,6 +301,22 @@
         }
 
         return reports;
+    }
+
+    /**
+     * Find a suitable groupId for a report from a model v3 pom.
+     *
+     * @param artifactId The artifactId of the report we are looking up
+     * @return A suitable groupId
+     */
+    private String findReportPluginGroupId( String artifactId )
+    {
+        String groupId = (String) model3ReportPlugins.get( artifactId );
+        if ( groupId == null )
+        {
+            groupId = "org.apache.maven.plugins";
+        }
+        return groupId;
     }
 
     private Organization translateOrganization( org.apache.maven.model.v3_0_0.Organization v3Organization )