You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by oc...@apache.org on 2008/03/26 02:30:03 UTC

svn commit: r641103 - in /maven/archiva/trunk: archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ archiva-web/archiva-webapp/src/main/java/org/apache/ma...

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"/>