From ec197361aca110a6e754700647851eb98a2eaba7 Mon Sep 17 00:00:00 2001 From: "Maria Odea B. Ching" Date: Wed, 26 Mar 2008 01:30:01 +0000 Subject: [PATCH] [MRM-591] -group defective artifacts by repository in the report git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@641103 13f79535-47bb-0310-9956-ffa450edef68 --- .../model/RepositoryProblemReport.java | 1 + .../database/constraints/RangeConstraint.java | 14 ++++++- .../RepositoryProblemByGroupIdConstraint.java | 4 +- .../action/reports/GenerateReportAction.java | 39 ++++++++++++++++++- .../WEB-INF/jsp/reports/basicReport.jsp | 29 +++++++------- 5 files changed, 68 insertions(+), 19 deletions(-) diff --git a/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryProblemReport.java b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryProblemReport.java index 15519d1b1..e34665e38 100644 --- a/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryProblemReport.java +++ b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryProblemReport.java @@ -45,6 +45,7 @@ public RepositoryProblemReport( RepositoryProblem repositoryProblem ) setOrigin( repositoryProblem.getOrigin() ); setPath( repositoryProblem.getPath() ); setType( repositoryProblem.getType() ); + setRepositoryId( repositoryProblem.getRepositoryId() ); } public void setGroupURL( String groupURL ) diff --git a/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RangeConstraint.java b/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RangeConstraint.java index 3eead3323..268e3191c 100644 --- a/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RangeConstraint.java +++ b/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RangeConstraint.java @@ -28,19 +28,29 @@ public class RangeConstraint 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() diff --git a/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByGroupIdConstraint.java b/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByGroupIdConstraint.java index 6186b0e3c..dd07add4f 100644 --- a/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByGroupIdConstraint.java +++ b/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByGroupIdConstraint.java @@ -51,11 +51,11 @@ public RepositoryProblemByGroupIdConstraint( int[] range, String desiredGroupId public String getSortColumn() { - return "artifactId"; + return "repositoryId"; } public String getWhereCondition() { return whereClause; - } + } } diff --git a/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java b/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java index 289bbb566..747ec9802 100644 --- a/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java +++ b/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java @@ -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 @@ public class GenerateReportAction private Collection repositoryIds; public static final String ALL_REPOSITORIES = "All Repositories"; + + protected Map> repositoriesMap = + new TreeMap>(); public void prepare() { @@ -118,9 +123,12 @@ public String execute() 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 if ( repositoryId != null && ( !repositoryId.equals( "" ) && !repositoryId. } else { - constraint = new RangeConstraint( range ); + constraint = new RangeConstraint( range, "repositoryId" ); } return constraint; @@ -265,6 +273,16 @@ public boolean getIsLastPage() return isLastPage; } + public void setRepositoriesMap( Map> repositoriesMap ) + { + this.repositoriesMap = repositoriesMap; + } + + public Map> getRepositoriesMap() + { + return repositoriesMap; + } + public SecureActionBundle getSecureActionBundle() throws SecureActionException { @@ -275,4 +293,21 @@ public SecureActionBundle getSecureActionBundle() return bundle; } + + private void addToList( RepositoryProblemReport repoProblemReport ) + { + List problemsList = null; + + if ( repositoriesMap.containsKey( repoProblemReport.getRepositoryId() ) ) + { + problemsList = ( List ) repositoriesMap.get( repoProblemReport.getRepositoryId() ); + } + else + { + problemsList = new ArrayList(); + repositoriesMap.put( repoProblemReport.getRepositoryId(), problemsList ); + } + + problemsList.add( repoProblemReport ); + } } diff --git a/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/basicReport.jsp b/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/basicReport.jsp index 902c4e906..a84e10ae8 100644 --- a/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/basicReport.jsp +++ b/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/basicReport.jsp @@ -32,23 +32,26 @@
- - - -

- - - + + + + Repository: ${repository.key} + + +

+ + - - ${report.artifactId} / - ${report.version} -

- -
${report.message}
+ + ${report.artifactId} / + ${report.version} +

+ +
${report.message}
+