Author: oching
Date: Tue Mar 25 18:30:01 2008
New Revision: 641103

URL: http://svn.apache.org/viewvc?rev=641103&view=rev
Log:
[MRM-591]
-group defective artifacts by repository in the report

Modified:
    
maven/archiva/trunk/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryProblemReport.java
    
maven/archiva/trunk/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RangeConstraint.java
    
maven/archiva/trunk/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByGroupIdConstraint.java
    
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java
    
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/basicReport.jsp

Modified: 
maven/archiva/trunk/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryProblemReport.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryProblemReport.java?rev=641103&r1=641102&r2=641103&view=diff
==============================================================================
--- 
maven/archiva/trunk/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryProblemReport.java
 (original)
+++ 
maven/archiva/trunk/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryProblemReport.java
 Tue Mar 25 18:30:01 2008
@@ -45,6 +45,7 @@
         setOrigin( repositoryProblem.getOrigin() );
         setPath( repositoryProblem.getPath() );
         setType( repositoryProblem.getType() );
+        setRepositoryId( repositoryProblem.getRepositoryId() );
     }
 
     public void setGroupURL( String groupURL )

Modified: 
maven/archiva/trunk/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RangeConstraint.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RangeConstraint.java?rev=641103&r1=641102&r2=641103&view=diff
==============================================================================
--- 
maven/archiva/trunk/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RangeConstraint.java
 (original)
+++ 
maven/archiva/trunk/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RangeConstraint.java
 Tue Mar 25 18:30:01 2008
@@ -28,19 +28,29 @@
     extends AbstractDeclarativeConstraint
     implements Constraint
 {
+       private String sortColumn;
+       
     public RangeConstraint()
     {
         this.range = null;
+        this.sortColumn = null;
     }
-
+    
     public RangeConstraint( int[] range )
     {
         this.range = range;
+        this.sortColumn = null;
+    }
+    
+    public RangeConstraint( int[] range, String sortColumn )
+    {
+       this.range = range;
+       this.sortColumn = sortColumn;
     }
 
     public String getSortColumn()
     {
-        return null;
+        return sortColumn;
     }
 
     public String getWhereCondition()

Modified: 
maven/archiva/trunk/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByGroupIdConstraint.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByGroupIdConstraint.java?rev=641103&r1=641102&r2=641103&view=diff
==============================================================================
--- 
maven/archiva/trunk/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByGroupIdConstraint.java
 (original)
+++ 
maven/archiva/trunk/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByGroupIdConstraint.java
 Tue Mar 25 18:30:01 2008
@@ -51,11 +51,11 @@
 
     public String getSortColumn()
     {
-        return "artifactId";
+        return "repositoryId";
     }
 
     public String getWhereCondition()
     {
         return whereClause;
-    }
+    }    
 }

Modified: 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java?rev=641103&r1=641102&r2=641103&view=diff
==============================================================================
--- 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java
 (original)
+++ 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java
 Tue Mar 25 18:30:01 2008
@@ -41,6 +41,8 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
 
 /**
  * @plexus.component role="com.opensymphony.xwork.Action" 
role-hint="generateReport"
@@ -85,6 +87,9 @@
     private Collection<String> repositoryIds;
 
     public static final String ALL_REPOSITORIES = "All Repositories";
+    
+    protected Map<String, List<RepositoryProblemReport>> repositoriesMap = 
+               new TreeMap<String, List<RepositoryProblemReport>>();
 
     public void prepare()
     {
@@ -118,9 +123,12 @@
             problemArtifactReport.setArtifactURL(
                 contextPath + "/browse/" + problemArtifact.getGroupId() + "/" 
+ problemArtifact.getArtifactId() );
 
+            addToList( problemArtifactReport );
+            
+            // retained the reports list because this is the datasource for 
the jasper report            
             reports.add( problemArtifactReport );
         }
-
+        
         if ( reports.size() <= rowCount )
         {
             isLastPage = true;
@@ -194,7 +202,7 @@
         }
         else
         {
-            constraint = new RangeConstraint( range );
+            constraint = new RangeConstraint( range, "repositoryId" );
         }
 
         return constraint;
@@ -265,6 +273,16 @@
         return isLastPage;
     }
 
+    public void setRepositoriesMap( Map<String, List<RepositoryProblemReport>> 
repositoriesMap )
+    {
+       this.repositoriesMap = repositoriesMap;
+    }
+    
+    public Map<String, List<RepositoryProblemReport>> getRepositoriesMap()
+    {
+       return repositoriesMap;
+    }
+    
     public SecureActionBundle getSecureActionBundle()
         throws SecureActionException
     {
@@ -274,5 +292,22 @@
         bundle.addRequiredAuthorization( 
ArchivaRoleConstants.OPERATION_ACCESS_REPORT, Resource.GLOBAL );
 
         return bundle;
+    }
+    
+    private void addToList( RepositoryProblemReport repoProblemReport )
+    {
+       List<RepositoryProblemReport> problemsList = null;
+       
+       if ( repositoriesMap.containsKey( repoProblemReport.getRepositoryId() ) 
)
+       {
+               problemsList = ( List<RepositoryProblemReport> ) 
repositoriesMap.get( repoProblemReport.getRepositoryId() );
+       }
+       else
+       {
+               problemsList = new ArrayList<RepositoryProblemReport>();
+               repositoriesMap.put( repoProblemReport.getRepositoryId(), 
problemsList );
+       }
+       
+       problemsList.add( repoProblemReport );
     }
 }

Modified: 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/basicReport.jsp
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/basicReport.jsp?rev=641103&r1=641102&r2=641103&view=diff
==============================================================================
--- 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/basicReport.jsp
 (original)
+++ 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/basicReport.jsp
 Tue Mar 25 18:30:01 2008
@@ -32,23 +32,26 @@
 
 <div id="contentArea">
 
-  <ww:set name="reports" value="reports"/>
-  <c:forEach items="${reports}" var="report">
-
-    <p>
-      <archiva:groupIdLink var="${report.groupId}" includeTop="true"/>
-
-      <c:set var="url">
+  <ww:set name="reports" value="reports"/>  
+    
+  <c:forEach var="repository" items="${repositoriesMap}">
+       <strong>Repository: ${repository.key}</strong>
+       <c:forEach var="report" items='${repository.value}'>
+       
+           <p>
+       <archiva:groupIdLink var="${report.groupId}" includeTop="true"/>
+       <c:set var="url">
         <ww:url action="browseArtifact" namespace="/">
           <ww:param name="groupId" value="%{'${report.groupId}'}"/>
           <ww:param name="artifactId" value="%{'${report.artifactId}'}"/>
         </ww:url>
-      </c:set>
-      <a href="${url}">${report.artifactId}</a> /
-      <strong>${report.version}</strong>
-    </p>
-
-    <blockquote>${report.message}</blockquote>
+       </c:set>
+       <a href="${url}">${report.artifactId}</a> /
+       <strong>${report.version}</strong>
+       </p>
+    
+               <blockquote>${report.message}</blockquote>
+       </c:forEach>
   </c:forEach>
 
   <ww:set name="page" value="page"/>


Reply via email to