You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by vs...@apache.org on 2008/07/09 22:41:24 UTC

svn commit: r675339 - in /maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies: Dependencies.java renderer/DependenciesRenderer.java

Author: vsiveton
Date: Wed Jul  9 13:41:24 2008
New Revision: 675339

URL: http://svn.apache.org/viewvc?rev=675339&view=rev
Log:
MPIR-115: Make the Sealed column optional in dependencies report 

o sealed column is now display if one artifact is sealed

Modified:
    maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/Dependencies.java
    maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java

Modified: maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/Dependencies.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/Dependencies.java?rev=675339&r1=675338&r2=675339&view=diff
==============================================================================
--- maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/Dependencies.java (original)
+++ maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/Dependencies.java Wed Jul  9 13:41:24 2008
@@ -72,6 +72,11 @@
     private Map transitiveDependenciesByScope;
 
     /**
+     * @since 2.1
+     */
+    private Map dependencyDetails;
+
+    /**
      * Default constructor
      *
      * @param project
@@ -258,8 +263,18 @@
     public JarData getJarDependencyDetails( Artifact artifact )
         throws IOException
     {
-        JarAnalyzer jarAnalyzer = new JarAnalyzer( artifact.getFile() );
+        if ( dependencyDetails == null )
+        {
+            dependencyDetails = new HashMap();
+        }
 
+        JarData old = (JarData) dependencyDetails.get( artifact.getId() );
+        if ( dependencyDetails.get( artifact.getId() ) != null )
+        {
+            return old;
+        }
+
+        JarAnalyzer jarAnalyzer = new JarAnalyzer( artifact.getFile() );
         try
         {
             classesAnalyzer.analyze( jarAnalyzer );
@@ -269,6 +284,8 @@
             jarAnalyzer.closeQuietly();
         }
 
+        dependencyDetails.put( artifact.getId(), jarAnalyzer.getJarData() );
+
         return jarAnalyzer.getJarData();
     }
 

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=675339&r1=675338&r2=675339&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 Wed Jul  9 13:41:24 2008
@@ -358,9 +358,6 @@
         String debug = getReportString( "report.dependencies.file.details.column.debug" );
         String sealed = getReportString( "report.dependencies.file.details.column.sealed" );
 
-        String[] tableHeader = new String[]{filename, size, entries, classes, packages, jdkrev, debug, sealed};
-        tableHeader( tableHeader );
-
         int[] justification = new int[]{Parser.JUSTIFY_LEFT, Parser.JUSTIFY_RIGHT, Parser.JUSTIFY_RIGHT,
             Parser.JUSTIFY_RIGHT, Parser.JUSTIFY_RIGHT, Parser.JUSTIFY_CENTER, Parser.JUSTIFY_CENTER,
             Parser.JUSTIFY_CENTER};
@@ -375,6 +372,72 @@
         int totaldebug = 0;
         int totalsealed = 0;
 
+        boolean hasSealed = false;
+        for ( Iterator it = alldeps.iterator(); it.hasNext(); )
+        {
+            Artifact artifact = (Artifact) it.next();
+
+            if ( !Artifact.SCOPE_SYSTEM.equals( artifact.getScope() ) )
+            {
+                // TODO site:run Why do we need to resolve this...
+                if ( artifact.getFile() == null )
+                {
+                    try
+                    {
+                        repoUtils.resolve( artifact );
+                    }
+                    catch ( ArtifactResolutionException e )
+                    {
+                        log.error( "Artifact: " + artifact.getId() + " has no file.", e );
+                        continue;
+                    }
+                    catch ( ArtifactNotFoundException e )
+                    {
+                        if ( ( dependencies.getProject().getGroupId().equals( artifact.getGroupId() ) )
+                            && ( dependencies.getProject().getArtifactId().equals( artifact.getArtifactId() ) )
+                            && ( dependencies.getProject().getVersion().equals( artifact.getVersion() ) ) )
+                        {
+                            log.warn( "The artifact of this project has never been deployed." );
+                        }
+                        else
+                        {
+                            log.error( "Artifact: " + artifact.getId() + " has no file.", e );
+                        }
+
+                        continue;
+                    }
+                }
+
+                if ( JAR_SUBTYPE.contains( artifact.getType().toLowerCase() ) )
+                {
+                    try
+                    {
+                        JarData jarDetails = dependencies.getJarDependencyDetails( artifact );
+                        if ( jarDetails.isSealed() )
+                        {
+                            hasSealed = true;
+                            break;
+                        }
+                    }
+                    catch ( IOException e )
+                    {
+                        log.error( "IOException: " + e.getMessage(), e );
+                    }
+                }
+            }
+        }
+
+        String[] tableHeader;
+        if ( hasSealed )
+        {
+            tableHeader = new String[] { filename, size, entries, classes, packages, jdkrev, debug, sealed };
+        }
+        else
+        {
+            tableHeader = new String[] { filename, size, entries, classes, packages, jdkrev, debug };
+        }
+        tableHeader( tableHeader );
+
         DecimalFormat decFormat = new DecimalFormat( "#,##0" );
 
         for ( Iterator it = alldeps.iterator(); it.hasNext(); )
@@ -436,13 +499,6 @@
                             totaldebug++;
                         }
 
-                        String sealedstr = "";
-                        if ( jarDetails.isSealed() )
-                        {
-                            sealedstr = "sealed";
-                            totalsealed++;
-                        }
-
                         totalentries += jarDetails.getNumEntries();
                         totalclasses += jarDetails.getNumClasses();
                         totalpackages += jarDetails.getNumPackages();
@@ -459,11 +515,36 @@
                             // ignore
                         }
 
-                        tableRow( new String[]{artifactFile.getName(), decFormat.format( artifactFile.length() ),
-                            decFormat.format( jarDetails.getNumEntries() ),
-                            decFormat.format( jarDetails.getNumClasses() ),
-                            decFormat.format( jarDetails.getNumPackages() ), jarDetails.getJdkRevision(), debugstr,
-                            sealedstr} );
+                        if ( hasSealed )
+                        {
+                            String sealedstr = "";
+                            if ( jarDetails.isSealed() )
+                            {
+                                sealedstr = "sealed";
+                                totalsealed++;
+                            }
+
+                            tableRow( new String[] {
+                                artifactFile.getName(),
+                                decFormat.format( artifactFile.length() ),
+                                decFormat.format( jarDetails.getNumEntries() ),
+                                decFormat.format( jarDetails.getNumClasses() ),
+                                decFormat.format( jarDetails.getNumPackages() ),
+                                jarDetails.getJdkRevision(),
+                                debugstr,
+                                sealedstr } );
+                        }
+                        else
+                        {
+                            tableRow( new String[] {
+                                artifactFile.getName(),
+                                decFormat.format( artifactFile.length() ),
+                                decFormat.format( jarDetails.getNumEntries() ),
+                                decFormat.format( jarDetails.getNumClasses() ),
+                                decFormat.format( jarDetails.getNumPackages() ),
+                                jarDetails.getJdkRevision(),
+                                debugstr } );
+                        }
                     }
                     catch ( IOException e )
                     {
@@ -480,9 +561,29 @@
 
         tableHeader[0] = "Total";
         tableHeader( tableHeader );
-        tableRow( new String[]{"" + totaldeps + " total dependencies", decFormat.format( totaldepsize ),
-            decFormat.format( totalentries ), decFormat.format( totalclasses ), decFormat.format( totalpackages ),
-            String.valueOf( highestjdk ), decFormat.format( totaldebug ), decFormat.format( totalsealed )} );
+        if ( hasSealed )
+        {
+            tableRow( new String[] {
+                "" + totaldeps + " total dependencies",
+                decFormat.format( totaldepsize ),
+                decFormat.format( totalentries ),
+                decFormat.format( totalclasses ),
+                decFormat.format( totalpackages ),
+                String.valueOf( highestjdk ),
+                decFormat.format( totaldebug ),
+                decFormat.format( totalsealed ) } );
+        }
+        else
+        {
+            tableRow( new String[] {
+                "" + totaldeps + " total dependencies",
+                decFormat.format( totaldepsize ),
+                decFormat.format( totalentries ),
+                decFormat.format( totalclasses ),
+                decFormat.format( totalpackages ),
+                String.valueOf( highestjdk ),
+                decFormat.format( totaldebug ) } );
+        }
 
         sink.tableRows_();