Author: joakime
Date: Wed Feb 21 14:45:46 2007
New Revision: 510280

URL: http://svn.apache.org/viewvc?view=rev&rev=510280
Log:
Updates for reporting.

Added:
    
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactReports.jspf
Modified:
    maven/archiva/branches/archiva-MRM-239/archiva-core/pom.xml
    maven/archiva/branches/archiva-MRM-239/archiva-reports-standard/   (props 
changed)
    
maven/archiva/branches/archiva-MRM-239/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/database/AbstractJdoDatabase.java
    
maven/archiva/branches/archiva-MRM-239/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/database/ArtifactResultsDatabase.java
    
maven/archiva/branches/archiva-MRM-239/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/database/ArtifactResultsDatabaseTest.java
    
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java
    
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
    
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/resources/xwork.xml
    
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/reports.jsp
    
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/webapp/WEB-INF/jsp/showArtifact.jsp
    maven/archiva/branches/archiva-MRM-239/pom.xml

Modified: maven/archiva/branches/archiva-MRM-239/archiva-core/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-MRM-239/archiva-core/pom.xml?view=diff&rev=510280&r1=510279&r2=510280
==============================================================================
--- maven/archiva/branches/archiva-MRM-239/archiva-core/pom.xml (original)
+++ maven/archiva/branches/archiva-MRM-239/archiva-core/pom.xml Wed Feb 21 
14:45:46 2007
@@ -68,13 +68,13 @@
       <groupId>commons-lang</groupId>
       <artifactId>commons-lang</artifactId>
     </dependency>
-       <dependency>
+    <dependency>
       <groupId>org.codehaus.plexus.registry</groupId>
       <artifactId>plexus-registry-commons</artifactId>
       <version>1.0-SNAPSHOT</version>
       <scope>test</scope>
-    </dependency>    
-       <!-- TEST DEPS -->
+    </dependency>
+    <!-- TEST DEPS -->
     <dependency>
       <groupId>hsqldb</groupId>
       <artifactId>hsqldb</artifactId>

Propchange: maven/archiva/branches/archiva-MRM-239/archiva-reports-standard/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Wed Feb 21 14:45:46 2007
@@ -1,6 +1,15 @@
 target
-*.ser
+*~
+.*.swp
+*.log
+*.patch
+*.diff
+*.ipr
+*.iws
 *.iml
 .classpath
 .project
+.m2eclipse
 .settings
+.wtpmodules
+cobertura.ser

Modified: 
maven/archiva/branches/archiva-MRM-239/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/database/AbstractJdoDatabase.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-MRM-239/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/database/AbstractJdoDatabase.java?view=diff&rev=510280&r1=510279&r2=510280
==============================================================================
--- 
maven/archiva/branches/archiva-MRM-239/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/database/AbstractJdoDatabase.java
 (original)
+++ 
maven/archiva/branches/archiva-MRM-239/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/database/AbstractJdoDatabase.java
 Wed Feb 21 14:45:46 2007
@@ -197,7 +197,7 @@
         }
     }
 
-    private PersistenceManager getPersistenceManager()
+    protected PersistenceManager getPersistenceManager()
     {
         PersistenceManager pm = pmf.getPersistenceManager();
 

Modified: 
maven/archiva/branches/archiva-MRM-239/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/database/ArtifactResultsDatabase.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-MRM-239/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/database/ArtifactResultsDatabase.java?view=diff&rev=510280&r1=510279&r2=510280
==============================================================================
--- 
maven/archiva/branches/archiva-MRM-239/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/database/ArtifactResultsDatabase.java
 (original)
+++ 
maven/archiva/branches/archiva-MRM-239/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/database/ArtifactResultsDatabase.java
 Wed Feb 21 14:45:46 2007
@@ -30,6 +30,9 @@
 import java.util.List;
 
 import javax.jdo.JDOObjectNotFoundException;
+import javax.jdo.PersistenceManager;
+import javax.jdo.Query;
+import javax.jdo.Transaction;
 
 /**
  * ArtifactResultsDatabase - Database of ArtifactResults. 
@@ -110,6 +113,35 @@
         }
 
         return allartifacts.iterator();
+    }
+
+    public List findArtifactResults( String groupId, String artifactId, String 
version )
+    {
+        PersistenceManager pm = getPersistenceManager();
+        Transaction tx = pm.currentTransaction();
+
+        try
+        {
+            tx.begin();
+
+            Query query = pm.newQuery( "javax.jdo.query.JDOQL", "SELECT FROM " 
+ ArtifactResults.class.getName()
+                + " WHERE groupId == findGroupId && " + " artifactId == 
findArtifactId && "
+                + " version == findVersionId" );
+            query.declareParameters( "String findGroupId, String 
findArtifactId, String findVersionId" );
+            query.setOrdering( "findArtifactId ascending" );
+
+            List result = (List) query.execute( groupId, artifactId, version );
+
+            result = (List) pm.detachCopyAll( result );
+
+            tx.commit();
+
+            return result;
+        }
+        finally
+        {
+            rollbackIfActive( tx );
+        }
     }
 
     public void remove( ArtifactResults results )

Modified: 
maven/archiva/branches/archiva-MRM-239/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/database/ArtifactResultsDatabaseTest.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-MRM-239/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/database/ArtifactResultsDatabaseTest.java?view=diff&rev=510280&r1=510279&r2=510280
==============================================================================
--- 
maven/archiva/branches/archiva-MRM-239/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/database/ArtifactResultsDatabaseTest.java
 (original)
+++ 
maven/archiva/branches/archiva-MRM-239/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/database/ArtifactResultsDatabaseTest.java
 Wed Feb 21 14:45:46 2007
@@ -25,6 +25,8 @@
 import org.apache.maven.artifact.DefaultArtifact;
 import org.apache.maven.artifact.versioning.VersionRange;
 
+import java.util.List;
+
 /**
  * ArtifactResultsDatabaseTest 
  *
@@ -35,6 +37,7 @@
     extends AbstractRepositoryReportsTestCase
 {
     private Artifact artifact;
+
     private String processor, problem, reason;
 
     private ArtifactResultsDatabase database;
@@ -45,7 +48,7 @@
         super.setUp();
 
         database = (ArtifactResultsDatabase) lookup( 
ArtifactResultsDatabase.ROLE );
-        
+
         artifact = new DefaultArtifact( "group", "artifact", 
VersionRange.createFromVersion( "1.0" ), "scope", "type",
                                         "classifier", null );
         processor = "processor";
@@ -60,7 +63,7 @@
 
         super.tearDown();
     }
-    
+
     public void testAddNoticeArtifactStringStringString()
     {
         database.addNotice( artifact, processor, problem, reason );
@@ -104,5 +107,65 @@
 
         assertEquals( 1, database.getNumFailures() );
         assertEquals( 1, artifactResults.getFailures().size() );
+    }
+
+    public void testFindArtifactResults()
+    {
+        String groupId = "org.test.group";
+
+        Artifact bar = createArtifact( "org.bar", "bar", "2.0" );
+        Artifact foo = createArtifact( groupId, "foo", "1.0" );
+        Artifact fooSources = createArtifactWithClassifier( groupId, "foo", 
"1.0", "jar", "sources" );
+        Artifact fooJavadoc = createArtifactWithClassifier( groupId, "foo", 
"1.0", "jar", "javadoc" );
+
+        database.addFailure( bar, processor, problem, "A reason that should 
not be found." );
+
+        String testprocessor = "test-processor";
+        String testproblem = "test-problem";
+
+        database.addFailure( foo, testprocessor, testproblem, "Test Reason on 
main jar." );
+        database.addFailure( foo, testprocessor, testproblem, "Someone mistook 
this for an actual reason." );
+        database.addWarning( foo, testprocessor, testproblem, "Congrats you 
have a test reason." );
+
+        database.addFailure( fooSources, testprocessor, testproblem, "Sources 
do not seem to match classes." );
+        database.addWarning( fooJavadoc, testprocessor, testproblem, "Javadoc 
content makes no sense." );
+
+        ArtifactResults artifactResults = database.getArtifactResults( foo );
+
+        assertEquals( 4, database.getNumFailures() );
+        assertEquals( 2, artifactResults.getFailures().size() );
+
+        List hits = database.findArtifactResults( groupId, "foo", "1.0" );
+        assertNotNull( hits );
+
+//        for ( Iterator it = hits.iterator(); it.hasNext(); )
+//        {
+//            ArtifactResults result = (ArtifactResults) it.next();
+//            System.out.println( " result: " + result.getGroupId() + ":" + 
result.getArtifactId() + ":"
+//                + result.getVersion() + ":" + result.getClassifier() + ":" + 
result.getType() );
+//
+//            for ( Iterator itmsgs = result.getFailures().iterator(); 
itmsgs.hasNext(); )
+//            {
+//                Result res = (Result) itmsgs.next();
+//                String msg = (String) res.getReason();
+//                System.out.println( "    failure: " + msg );
+//            }
+//
+//            for ( Iterator itmsgs = result.getWarnings().iterator(); 
itmsgs.hasNext(); )
+//            {
+//                Result res = (Result) itmsgs.next();
+//                String msg = (String) res.getReason();
+//                System.out.println( "    warning: " + msg );
+//            }
+//
+//            for ( Iterator itmsgs = result.getNotices().iterator(); 
itmsgs.hasNext(); )
+//            {
+//                Result res = (Result) itmsgs.next();
+//                String msg = (String) res.getReason();
+//                System.out.println( "    notice: " + msg );
+//            }
+//        }
+
+        assertEquals( "Should find 3 artifacts", 3, hits.size() ); // 3 
artifacts
     }
 }

Modified: 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java?view=diff&rev=510280&r1=510279&r2=510280
==============================================================================
--- 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java
 (original)
+++ 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java
 Wed Feb 21 14:45:46 2007
@@ -19,11 +19,7 @@
  * under the License.
  */
 
-import com.opensymphony.xwork.Preparable;
-
-import org.apache.maven.archiva.configuration.ArchivaConfiguration;
-import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.ConfiguredRepositoryFactory;
+import org.apache.maven.archiva.reporting.database.ReportingDatabase;
 import org.apache.maven.archiva.security.ArchivaRoleConstants;
 import org.codehaus.plexus.security.rbac.Resource;
 import org.codehaus.plexus.security.ui.web.interceptor.SecureAction;
@@ -31,6 +27,8 @@
 import org.codehaus.plexus.security.ui.web.interceptor.SecureActionException;
 import org.codehaus.plexus.xwork.action.PlexusActionSupport;
 
+import java.util.List;
+
 /**
  * Repository reporting.
  *
@@ -39,46 +37,23 @@
  */
 public class ReportsAction
     extends PlexusActionSupport
-    implements Preparable, SecureAction
+    implements SecureAction
 {
     /**
      * @plexus.requirement
      */
-    private ArchivaConfiguration archivaConfiguration;
-
-    /**
-     * @plexus.requirement
-     */
-    private ConfiguredRepositoryFactory factory;
+    private ReportingDatabase database;
 
-    private Configuration configuration;
+    private List reports;
 
     public String execute()
         throws Exception
     {
+        reports = database.getArtifactDatabase().getAllArtifactResults();
         
         return SUCCESS;
     }
 
-    public String runReport()
-        throws Exception
-    {
-        
-
-        return SUCCESS;
-    }
-
-    public void prepare()
-        throws Exception
-    {
-        configuration = archivaConfiguration.getConfiguration();
-    }
-
-    public Configuration getConfiguration()
-    {
-        return configuration;
-    }
-
     public SecureActionBundle getSecureActionBundle()
         throws SecureActionException
     {
@@ -88,5 +63,10 @@
         bundle.addRequiredAuthorization( 
ArchivaRoleConstants.OPERATION_ACCESS_REPORT, Resource.GLOBAL );
 
         return bundle;
+    }
+
+    public List getReports()
+    {
+        return reports;
     }
 }

Modified: 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java?view=diff&rev=510280&r1=510279&r2=510280
==============================================================================
--- 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
 (original)
+++ 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
 Wed Feb 21 14:45:46 2007
@@ -32,6 +32,7 @@
 import org.apache.maven.archiva.indexer.lucene.LuceneQuery;
 import org.apache.maven.archiva.indexer.record.StandardArtifactIndexRecord;
 import org.apache.maven.archiva.proxy.ProxyException;
+import org.apache.maven.archiva.reporting.database.ArtifactResultsDatabase;
 import org.apache.maven.archiva.web.util.VersionMerger;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
@@ -111,6 +112,11 @@
      * @plexus.requirement
      */
     private DependencyTreeBuilder dependencyTreeBuilder;
+    
+    /**
+     * @plexus.requirement
+     */
+    ArtifactResultsDatabase artifactsDatabase;
 
     private String groupId;
 
@@ -131,6 +137,8 @@
     private String artifactPath;
 
     private List mailingLists;
+    
+    private List reports;
 
     public String artifact()
         throws IOException, XmlPullParserException, ProjectBuildingException, 
ResourceDoesNotExistException,
@@ -182,6 +190,21 @@
 
         return SUCCESS;
     }
+    
+    public String reports()
+        throws IOException, XmlPullParserException, ProjectBuildingException
+    {
+        if ( !checkParameters() )
+        {
+            return ERROR;
+        }
+
+        System.out.println("#### In reports.");
+        this.reports = artifactsDatabase.findArtifactResults( groupId, 
artifactId, version );
+        System.out.println("#### Found " + reports.size() + " reports.");
+
+        return SUCCESS;
+    }
 
     public String dependees()
         throws IOException, XmlPullParserException, ProjectBuildingException, 
RepositoryIndexException,
@@ -517,5 +540,10 @@
     public String getRepositoryUrlName()
     {
         return repositoryUrlName;
+    }
+
+    public List getReports()
+    {
+        return reports;
     }
 }

Modified: 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/resources/xwork.xml
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/resources/xwork.xml?view=diff&rev=510280&r1=510279&r2=510280
==============================================================================
--- 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/resources/xwork.xml
 (original)
+++ 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/resources/xwork.xml
 Wed Feb 21 14:45:46 2007
@@ -181,6 +181,10 @@
       <result>/WEB-INF/jsp/showArtifact.jsp</result>
     </action>
 
+    <action name="showArtifactReports" class="showArtifactAction" 
method="reports">
+      <result>/WEB-INF/jsp/showArtifact.jsp</result>
+    </action>
+    
     <action name="showArtifactDependencies" class="showArtifactAction" 
method="dependencies">
       <result>/WEB-INF/jsp/showArtifact.jsp</result>
     </action>

Added: 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactReports.jspf
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactReports.jspf?view=auto&rev=510280
==============================================================================
--- 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactReports.jspf
 (added)
+++ 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactReports.jspf
 Wed Feb 21 14:45:46 2007
@@ -0,0 +1,38 @@
+<%--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  --%>
+
+<%@ taglib prefix="ww" uri="/webwork" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"; %>
+<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %>
+
+<c:forEach items="${reports}" var="report">
+  <h3>
+      ${report.groupId} : ${report.artifactId} : ${report.version} : 
${report.classifier} : ${report.type}
+  </h3>
+  <ul>
+    <c:forEach items="${repor.results}" var="result">
+      <li>
+        <b>${result.reason}</b>
+      </li>
+    </c:forEach>
+  </ul>
+</c:forEach>
+<c:if test="${empty(reports)}">
+  <strong>No reports for this artifact.</strong>
+</c:if>

Modified: 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/reports.jsp
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/reports.jsp?view=diff&rev=510280&r1=510279&r2=510280
==============================================================================
--- 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/reports.jsp
 (original)
+++ 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/reports.jsp
 Wed Feb 21 14:45:46 2007
@@ -26,9 +26,7 @@
 
 <html>
 <head>
-  <ww:set name="reports" value="reports"/>
-  <ww:set name="reportGroup" value="reportGroup"/>
-  <title>Report: ${reports[reportGroup].name}</title>
+  <title>Reports</title>
   <ww:head/>
 </head>
 
@@ -38,135 +36,22 @@
 
 <div id="contentArea">
 
-<pss:ifAnyAuthorized permissions="archiva-access-reports">
-  <ww:form action="reports" namespace="/admin">
-    <ww:select list="reports" label="Report" name="reportGroup" 
onchange="document.reports.submit();"/>
-    <ww:select list="configuration.repositories" listKey="id" listValue="name" 
label="Repository" headerKey="-"
-               headerValue="(All repositories)" name="repositoryId" 
onchange="document.reports.submit();"/>
-    <ww:select list="reports[reportGroup].reports" label="Filter" 
headerKey="-" headerValue="(All Problems)"
-               name="filter" onchange="document.reports.submit();"/>
-    <ww:submit value="Get Report"/>
-  </ww:form>
-</pss:ifAnyAuthorized>
-
-<ww:set name="databases" value="databases"/>
-<c:forEach items="${databases}" var="database">
-<div>
-<div style="float: right">
-    <%-- TODO!
-  <a href="#">Repair all</a>
-  |
-    --%>
-  <c:choose>
-    <c:when test="${!database.inProgress}">
-      <pss:ifAuthorized permission="archiva-access-reports">
-        <ww:url id="regenerateReportUrl" action="runReport" namespace="/admin">
-          <ww:param name="repositoryId">${database.repository.id}</ww:param>
-          <ww:param name="reportGroup" value="reportGroup"/>
-        </ww:url>
-        <ww:a href="%{regenerateReportUrl}">Regenerate Report</ww:a>
-      </pss:ifAuthorized>
-    </c:when>
-    <c:otherwise>
-      <!-- TODO: would be good to have a generic task/job mechanism that 
tracked progress and ability to run
-      concurrently -->
-      <span style="color: gray;">Report in progress</span>
-    </c:otherwise>
-  </c:choose>
-</div>
-<h2>Repository: ${database.repository.name}</h2>
-
-<p>
-  <c:choose>
-    <c:when test="${!empty(database.reporting.lastModified)}">
-      Status:
-      <img src="<c:url value="/images/icon_error_sml.gif"/>" width="15" 
height="15" alt=""/>
-      ${database.numFailures}
-      <img src="<c:url value="/images/icon_warning_sml.gif"/>" width="15" 
height="15" alt=""/>
-      ${database.numWarnings}
-      <img src="<c:url value="/images/icon_info_sml.gif"/>" width="15" 
height="15" alt=""/>
-      ${database.numNotices}
-
-      <span style="font-size: x-small">
-        <jsp:useBean id="date" class="java.util.Date"/>
-        <c:set target="${date}" property="time" 
value="${database.reporting.lastModified}"/>
-        Last updated: <fmt:formatDate type="both" value="${date}"/>,
-        execution time: <fmt:formatNumber maxFractionDigits="0" 
value="${database.reporting.executionTime / 60000}"/> minutes
-        <fmt:formatNumber maxFractionDigits="0" 
value="${(database.reporting.executionTime / 1000) % 60}"/> seconds
-      </span>
-    </c:when>
-    <c:otherwise>
-      <b>
-        This report has not yet been generated. <a href="${url}">Generate 
Report</a>
-      </b>
-    </c:otherwise>
-  </c:choose>
-</p>
-
-  <%-- TODO need to protect iterations against concurrent modification 
exceptions by cloning the lists synchronously --%>
-  <%-- TODO! paginate (displaytag?) --%>
-<c:if test="${!empty(database.reporting.artifacts)}">
-  <h3>Artifacts</h3>
-  <c:forEach items="${database.reporting.artifacts}" var="artifact" begin="0" 
end="2">
-    <ul>
-      <c:forEach items="${artifact.failures}" var="result">
-        <li class="errorBullet">${result.reason}</li>
-      </c:forEach>
-      <c:forEach items="${artifact.warnings}" var="result">
-        <li class="warningBullet">${result.reason}</li>
-      </c:forEach>
-      <c:forEach items="${artifact.notices}" var="result">
-        <li class="infoBullet">${result.reason}</li>
-      </c:forEach>
-    </ul>
-    <p style="text-indent: 3em;">
-      <my:showArtifactLink groupId="${artifact.groupId}" 
artifactId="${artifact.artifactId}"
-                           version="${artifact.version}" 
classifier="${artifact.classifier}"/>
-    </p>
-    <%-- TODO!
-              <td>
-                <a href="#">Repair</a>
-              </td>
-    --%>
-  </c:forEach>
-  <c:if test="${fn:length(database.reporting.artifacts) gt 3}">
-    <p>
-      <b>... more ...</b>
-    </p>
-  </c:if>
-</c:if>
-<c:if test="${!empty(database.metadataWithProblems)}">
-  <h3>Metadata</h3>
-  <c:forEach items="${database.metadataWithProblems}" var="metadata" begin="0" 
end="2">
-    <ul>
-      <c:forEach items="${metadata.failures}" var="result">
-        <li class="errorBullet">${result.reason}</li>
-      </c:forEach>
-      <c:forEach items="${metadata.warnings}" var="result">
-        <li class="warningBullet">${result.reason}</li>
-      </c:forEach>
-      <c:forEach items="${metadata.notices}" var="result">
-        <li class="infoBullet">${result.reason}</li>
-      </c:forEach>
-    </ul>
-    <p style="text-indent: 3em;">
-      <my:showArtifactLink groupId="${metadata.groupId}" 
artifactId="${metadata.artifactId}"
-                           version="${metadata.version}"/>
-    </p>
-    <%-- TODO!
-              <td>
-                <a href="#">Repair</a>
-              </td>
-    --%>
-  </c:forEach>
-  <c:if test="${fn:length(database.metadataWithProblems) gt 3}">
-    <p>
-      <b>... more ...</b>
-    </p>
-  </c:if>
-</c:if>
-</div>
+<c:forEach items="${reports}" var="report">
+  <h3>
+      ${report.groupId} : ${report.artifactId} : ${report.version} : 
${report.classifier} : ${report.type}
+  </h3>
+  <ul>
+    <c:forEach items="${repor.results}" var="result">
+      <li>
+        <b>${result.reason}</b>
+      </li>
+    </c:forEach>
+  </ul>
 </c:forEach>
+<c:if test="${empty(reports)}">
+  <strong>No reports for any artifact.</strong>
+</c:if>
+
 </div>
 
 </body>

Modified: 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/webapp/WEB-INF/jsp/showArtifact.jsp
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/webapp/WEB-INF/jsp/showArtifact.jsp?view=diff&rev=510280&r1=510279&r2=510280
==============================================================================
--- 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/webapp/WEB-INF/jsp/showArtifact.jsp
 (original)
+++ 
maven/archiva/branches/archiva-MRM-239/archiva-webapp/src/main/webapp/WEB-INF/jsp/showArtifact.jsp
 Wed Feb 21 14:45:46 2007
@@ -21,6 +21,7 @@
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"; %>
 <%@ taglib prefix="my" tagdir="/WEB-INF/tags" %>
 <%@ taglib prefix="archiva" uri="http://maven.apache.org/archiva"; %>
+<%@ taglib prefix="pss" uri="/plexusSecuritySystem" %>
 
 <html>
 <head>
@@ -115,6 +116,17 @@
         </ww:url>
       </c:set>
       <my:currentWWUrl url="${url}">Mailing Lists</my:currentWWUrl>
+      <pss:ifAnyAuthorized permissions="archiva-access-reports">
+        <c:set var="url">
+             <ww:url action="showArtifactReports">
+               <ww:param name="groupId" value="%{groupId}"/>
+               <ww:param name="artifactId" value="%{artifactId}"/>
+               <ww:param name="version" value="%{version}"/>
+             </ww:url>
+           </c:set>
+           <my:currentWWUrl url="${url}">Reports</my:currentWWUrl>
+      </pss:ifAnyAuthorized>
+      
     </span>
   </div>
 
@@ -134,6 +146,9 @@
       </c:when>
       <c:when test="${mailingLists != null}">
         <%@ include file="/WEB-INF/jsp/include/mailingLists.jspf" %>
+      </c:when>
+      <c:when test="${reports != null}">
+        <%@ include file="/WEB-INF/jsp/include/artifactReports.jspf" %>
       </c:when>
       <c:otherwise>
         <%@ include file="/WEB-INF/jsp/include/artifactInfo.jspf" %>

Modified: maven/archiva/branches/archiva-MRM-239/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-MRM-239/pom.xml?view=diff&rev=510280&r1=510279&r2=510280
==============================================================================
--- maven/archiva/branches/archiva-MRM-239/pom.xml (original)
+++ maven/archiva/branches/archiva-MRM-239/pom.xml Wed Feb 21 14:45:46 2007
@@ -552,6 +552,6 @@
   <properties>
     <maven.version>2.0.5</maven.version>
     <wagon.version>1.0-beta-2</wagon.version>
-    <plexus-security.version>1.0-alpha-10.1-SNAPSHOT</plexus-security.version>
+    <plexus-security.version>1.0-alpha-11-SNAPSHOT</plexus-security.version>
   </properties>
 </project>


Reply via email to