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 2008/04/20 22:37:26 UTC

svn commit: r649973 - in /maven/plugins/trunk/maven-project-info-reports-plugin/src: main/java/org/apache/maven/report/projectinfo/ main/java/org/apache/maven/report/projectinfo/dependencies/renderer/ main/resources/ test/java/org/apache/maven/report/p...

Author: hboutemy
Date: Sun Apr 20 13:37:25 2008
New Revision: 649973

URL: http://svn.apache.org/viewvc?rev=649973&view=rev
Log:
[MPIR-80] added Java requirements to the Dependency Report
Submitted by: Niall Pemberton
Reviewed by: Hervé Boutemy

Modified:
    maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java
    maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java
    maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report.properties
    maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/DependenciesReportTest.java

Modified: maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java?rev=649973&r1=649972&r2=649973&view=diff
==============================================================================
--- maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java (original)
+++ maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java Sun Apr 20 13:37:25 2008
@@ -151,7 +151,7 @@
             new DependenciesReportConfiguration( dependencyDetailsEnabled, dependencyLocationsEnabled );
 
         DependenciesRenderer r =
-            new DependenciesRenderer( getSink(), locale, i18n, dependencies, dependencyTree, config, repoUtils );
+            new DependenciesRenderer( getSink(), locale, i18n, dependencies, dependencyTree, config, repoUtils, project );
 
         repoUtils.setLog( getLog() );
         r.setLog( getLog() );

Modified: maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java?rev=649973&r1=649972&r2=649973&view=diff
==============================================================================
--- maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java (original)
+++ maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java Sun Apr 20 13:37:25 2008
@@ -40,6 +40,7 @@
 import org.apache.maven.wagon.Wagon;
 import org.codehaus.plexus.i18n.I18N;
 import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
 
 import java.io.File;
 import java.io.IOException;
@@ -88,6 +89,8 @@
 
     private RepositoryUtils repoUtils;
 
+    private MavenProject project;
+
     /**
      * Will be filled with license name / list of projects.
      */
@@ -109,7 +112,7 @@
 
     public DependenciesRenderer( Sink sink, Locale locale, I18N i18n, Dependencies dependencies,
                                  DependencyTree depTree, DependenciesReportConfiguration config,
-                                 RepositoryUtils repoUtils )
+                                 RepositoryUtils repoUtils, MavenProject project )
     {
         super( sink );
 
@@ -124,6 +127,8 @@
         this.i18n = i18n;
 
         this.configuration = config;
+
+        this.project = project;
     }
 
     // ----------------------------------------------------------------------
@@ -158,6 +163,9 @@
             return;
         }
 
+        // === Section: Project Java Version.
+        renderSectionJavaVersion();
+
         // === Section: Project Dependencies.
         renderSectionProjectDependencies();
 
@@ -211,6 +219,86 @@
         String type = getReportString( "report.dependencies.column.type" );
         String optional = getReportString( "report.dependencies.column.optional" );
         return new String[]{groupId, artifactId, version, classifier, type, optional};
+    }
+
+    private void renderSectionJavaVersion()
+    {
+        Xpp3Dom pluginConfig = project.getGoalConfiguration( "org.apache.maven.plugins", "maven-compiler-plugin", null, null );
+        String source = null;
+        String target = null;
+        String compilerVersion = null;
+
+        if ( pluginConfig != null )
+        {
+            source = getChildValue( pluginConfig, "source" );
+            target = getChildValue( pluginConfig, "target" );
+            String fork = getChildValue( pluginConfig, "fork" );
+            if ( "true".equalsIgnoreCase( fork ) )
+            {
+                compilerVersion = getChildValue( pluginConfig, "compilerVersion" );
+            }
+        }
+
+        if ( compilerVersion == null )
+        {
+            compilerVersion = System.getProperty( "java.specification.version" );
+        }
+
+        String javaOptionsText = null;
+        String minimumJavaVersion = compilerVersion;
+
+        if ( source == null && target == null )
+        {
+            javaOptionsText = i18n.format( "project-info-report", locale, "report.dependencies.java.options.notset", compilerVersion );
+        }
+        else if ( source != null && target != null )
+        {
+            minimumJavaVersion = target;
+            if ( source.equals( target ) )
+            {
+                javaOptionsText = i18n.format( "project-info-report", locale, "report.dependencies.java.options.same", compilerVersion, source );
+            }
+            else
+            {
+                Object[] args = new Object[] { compilerVersion, source, target };
+                javaOptionsText = i18n.format( "project-info-report", locale, "report.dependencies.java.options.different", args );
+            }
+        }
+        else if ( target != null )
+        {
+            minimumJavaVersion = target;
+            javaOptionsText = i18n.format( "project-info-report", locale, "report.dependencies.java.options.target", compilerVersion, target );
+        }
+        else
+        {
+            javaOptionsText = i18n.format( "project-info-report", locale, "report.dependencies.java.options.source", compilerVersion, source );
+        }
+        String minimumJavaText = i18n.format( "project-info-report", locale, "report.dependencies.java.minimum", minimumJavaVersion);
+
+        // Output the section text
+        startSection( getReportString( "report.dependencies.java.section.title" ) );
+        paragraph( minimumJavaText );
+        paragraph( javaOptionsText );
+        endSection();
+    }
+
+    private String getChildValue(Xpp3Dom parent, String childName)
+    {
+        if (parent == null)
+        {
+            return null;
+        }
+        Xpp3Dom child = parent.getChild(childName);
+        if (child == null)
+        {
+            return null;
+        }
+        String value = child.getValue();
+        if (child == null || value.trim().length() == 0)
+        {
+            return null;
+        }
+        return value.trim();
     }
 
     private void renderSectionProjectDependencies()

Modified: maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report.properties
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report.properties?rev=649973&r1=649972&r2=649973&view=diff
==============================================================================
--- maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report.properties (original)
+++ maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report.properties Sun Apr 20 13:37:25 2008
@@ -77,6 +77,13 @@
 report.dependencies.repo.locations.column.snapshot                 = Snapshot
 report.dependencies.repo.locations.column.url                      = URL
 report.dependencies.repo.locations.title                           = Dependency Repository Locations
+report.dependencies.java.section.title                             = Java Version
+report.dependencies.java.minimum                                   = This project requires a minimum of Java {0}.
+report.dependencies.java.options.notset                            = It has been built using Java {0} (the compiler -source and -target options were not set).
+report.dependencies.java.options.same                              = It has been built using Java {0} with the compiler -source and -target options set to Java {1}.
+report.dependencies.java.options.different                         = It has been built using Java {0} with the compiler -source option set to Java {1} and the -target option set to Java {2}.
+report.dependencies.java.options.source                            = It has been built using Java {0} with the compiler -source option set to Java {1} (-target option not set).
+report.dependencies.java.options.target                            = It has been built using Java {0} with the compiler -target option set to Java {1} (-source option not set).
 report.dependencies.title                                          = Project Dependencies
 report.dependencies.unamed                                         = Unamed
 report.dependency-convergence.convergence.caption                  = Dependencies used in sub-projects

Modified: maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/DependenciesReportTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/DependenciesReportTest.java?rev=649973&r1=649972&r2=649973&view=diff
==============================================================================
--- maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/DependenciesReportTest.java (original)
+++ maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/DependenciesReportTest.java Sun Apr 20 13:37:25 2008
@@ -78,15 +78,16 @@
 
         // Test the texts
         TextBlock[] textBlocks = response.getTextBlocks();
-        assertEquals( textBlocks[0].getText(), getString( "report.dependencies.title" ) );
-        assertEquals( textBlocks[1].getText(), "test" );
-        assertEquals( textBlocks[2].getText(), getString( "report.dependencies.intro.test" ) );
-        assertEquals( textBlocks[3].getText(), getString( "report.transitivedependencies.title" ) );
-        assertEquals( textBlocks[4].getText(), getString( "report.transitivedependencies.intro" ) );
-        assertEquals( textBlocks[5].getText(), "test" );
-        assertEquals( textBlocks[6].getText(), getString( "report.dependencies.intro.test" ) );
-        assertEquals( textBlocks[7].getText(), getString( "report.dependencies.graph.title" ) );
-        assertEquals( textBlocks[8].getText(), getString( "report.dependencies.graph.tree.title" ) );
-        assertEquals( textBlocks[12].getText(), getString( "report.dependencies.graph.tables.title" ) );
+        assertEquals( textBlocks[0].getText(), getString( "report.dependencies.java.section.title" ) );
+        assertEquals( textBlocks[3].getText(), getString( "report.dependencies.title" ) );
+        assertEquals( textBlocks[4].getText(), "test" );
+        assertEquals( textBlocks[5].getText(), getString( "report.dependencies.intro.test" ) );
+        assertEquals( textBlocks[6].getText(), getString( "report.transitivedependencies.title" ) );
+        assertEquals( textBlocks[7].getText(), getString( "report.transitivedependencies.intro" ) );
+        assertEquals( textBlocks[8].getText(), "test" );
+        assertEquals( textBlocks[9].getText(), getString( "report.dependencies.intro.test" ) );
+        assertEquals( textBlocks[10].getText(), getString( "report.dependencies.graph.title" ) );
+        assertEquals( textBlocks[11].getText(), getString( "report.dependencies.graph.tree.title" ) );
+        assertEquals( textBlocks[15].getText(), getString( "report.dependencies.graph.tables.title" ) );
     }
 }