Author: oching
Date: Tue Dec 15 02:26:50 2009
New Revision: 890604

URL: http://svn.apache.org/viewvc?rev=890604&view=rev
Log:
[MRM-1296] Audit Log Reports
o fixed query for recent statistics
o added bits for pagination

Modified:
    
archiva/branches/MRM-1296/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaAuditLogsConstraint.java
    
archiva/branches/MRM-1296/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/MostRecentArchivaAuditLogsConstraint.java
    
archiva/branches/MRM-1296/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/ViewAuditLogReportAction.java
    
archiva/branches/MRM-1296/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/auditLogReport.jsp

Modified: 
archiva/branches/MRM-1296/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaAuditLogsConstraint.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1296/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaAuditLogsConstraint.java?rev=890604&r1=890603&r2=890604&view=diff
==============================================================================
--- 
archiva/branches/MRM-1296/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaAuditLogsConstraint.java
 (original)
+++ 
archiva/branches/MRM-1296/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaAuditLogsConstraint.java
 Tue Dec 15 02:26:50 2009
@@ -30,23 +30,13 @@
     extends RangeConstraint
 {
     private String whereClause;
-
-    /**
-     * Complete custom query!
-     * 
-     * @param desiredArtifact
-     * @param desiredRepositoryId
-     * @param desiredEvent
-     * @param startDate
-     * @param endDate
-     */
+    
     private void createWhereClause( String desiredArtifact, String 
desiredRepositoryId, String desiredEvent,
                                     Date startDate, Date endDate )
     {
-        whereClause = "eventDate >= desiredStartDate && eventDate <= 
desiredEndDate";
-
+        whereClause = "eventDate >= desiredStartDate && eventDate <= 
desiredEndDate";        
         declImports = new String[] { "import java.util.Date" };
-
+                
         List<String> declParamsList = new ArrayList<String>();
         declParamsList.add( "Date desiredStartDate" );
         declParamsList.add( "Date desiredEndDate" );

Modified: 
archiva/branches/MRM-1296/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/MostRecentArchivaAuditLogsConstraint.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1296/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/MostRecentArchivaAuditLogsConstraint.java?rev=890604&r1=890603&r2=890604&view=diff
==============================================================================
--- 
archiva/branches/MRM-1296/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/MostRecentArchivaAuditLogsConstraint.java
 (original)
+++ 
archiva/branches/MRM-1296/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/MostRecentArchivaAuditLogsConstraint.java
 Tue Dec 15 02:26:50 2009
@@ -20,6 +20,7 @@
  */
 
 import org.apache.maven.archiva.model.ArchivaAuditLogs;
+import org.apache.maven.archiva.repository.audit.AuditEvent;
 
 public class MostRecentArchivaAuditLogsConstraint
     extends AbstractSimpleConstraint
@@ -28,7 +29,12 @@
 
     public MostRecentArchivaAuditLogsConstraint()
     {
-        sql = "SELECT FROM " + ArchivaAuditLogs.class.getName() + " ORDER BY 
eventDate DESCENDING RANGE 0,1";
+        sql =
+            "SELECT FROM " + ArchivaAuditLogs.class.getName() +
+                " WHERE event == uploadArtifact PARAMETERS String 
uploadArtifact" +
+                " ORDER BY eventDate DESCENDING RANGE 0,10";
+
+        super.params = new Object[] { AuditEvent.UPLOAD_FILE };
     }
 
     public Class<?> getResultClass()

Modified: 
archiva/branches/MRM-1296/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/ViewAuditLogReportAction.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1296/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/ViewAuditLogReportAction.java?rev=890604&r1=890603&r2=890604&view=diff
==============================================================================
--- 
archiva/branches/MRM-1296/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/ViewAuditLogReportAction.java
 (original)
+++ 
archiva/branches/MRM-1296/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/ViewAuditLogReportAction.java
 Tue Dec 15 02:26:50 2009
@@ -28,9 +28,10 @@
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.maven.archiva.database.ArchivaAuditLogsDao;
+import org.apache.maven.archiva.database.ArchivaDAO;
 import org.apache.maven.archiva.database.ArchivaDatabaseException;
-import org.apache.maven.archiva.database.Constraint;
 import org.apache.maven.archiva.database.ObjectNotFoundException;
+import org.apache.maven.archiva.database.SimpleConstraint;
 import 
org.apache.maven.archiva.database.constraints.ArchivaAuditLogsConstraint;
 import 
org.apache.maven.archiva.database.constraints.MostRecentArchivaAuditLogsConstraint;
 import org.apache.maven.archiva.model.ArchivaAuditLogs;
@@ -66,6 +67,11 @@
      */
     private ArchivaAuditLogsDao auditLogsDao;
     
+    /**
+     * @plexus.requirement role-hint="jdo"
+     */
+    private ArchivaDAO dao;
+    
     private String repository;
 
     private List<String> repositories;
@@ -80,11 +86,13 @@
         
     private int rowCount = 30;
     
-    private int page;
+    private int page = 1;
 
     private List<ArchivaAuditLogs> auditLogs;    
     
     private static final String ALL_REPOSITORIES = "all";
+    
+    protected int[] range = new int[2];
         
     public SecureActionBundle getSecureActionBundle()
         throws SecureActionException
@@ -97,6 +105,7 @@
         this.request = request;
     }
 
+    @SuppressWarnings( "unchecked" )
     public void prepare()
         throws Exception
     {     
@@ -106,34 +115,22 @@
         
         auditLogs = null;
         
-        Constraint constraint = new MostRecentArchivaAuditLogsConstraint();
-        
-        try
-        {
-            this.auditLogs = auditLogsDao.queryAuditLogs( constraint );        
    
-        }
-        catch( ObjectNotFoundException e )
-        {
-            log.warn( "No audit logs found." );
-        }
-        catch ( ArchivaDatabaseException e )
-        {
-            log.warn( "Error occurred while querying audit logs." );
-        }
+        SimpleConstraint constraint = new 
MostRecentArchivaAuditLogsConstraint();        
+        auditLogs = (List<ArchivaAuditLogs>) dao.query( constraint );
     }
     
     public String execute()
         throws Exception
     {     
         auditLogs = null;
-        String artifact = null;
+        String artifact = "";
         
-        if( groupId != null || !"".equals( groupId ) )
+        if( groupId != null || !"".equals( groupId.trim() ) )
         {
             artifact = groupId;
         }
         
-        if( artifactId != null || !"".equals( artifactId ) )
+        if( artifactId != null || !"".equals( artifactId.trim() ) )
         {
             artifact = artifact + ":" + artifactId;
         }
@@ -153,13 +150,13 @@
             endDate = Calendar.getInstance().getTime();
         }
                 
-        int[] range = {1, 30 };        
+        range[0] = ( page - 1 ) * rowCount;
+        range[1] = ( page * rowCount ) + 1; 
 
         ArchivaAuditLogsConstraint constraint = null;
         if( !repository.equals( ALL_REPOSITORIES ) )
         {
-            //constraint = new ArchivaAuditLogsConstraint( range, artifact, 
repository, AuditEvent.UPLOAD_FILE, startDate, endDate );
-            constraint = new ArchivaAuditLogsConstraint( artifact, repository, 
AuditEvent.UPLOAD_FILE, startDate, endDate );
+            constraint = new ArchivaAuditLogsConstraint( range, artifact, 
repository, AuditEvent.UPLOAD_FILE, startDate, endDate );
         }
         else
         {

Modified: 
archiva/branches/MRM-1296/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/auditLogReport.jsp
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1296/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/auditLogReport.jsp?rev=890604&r1=890603&r2=890604&view=diff
==============================================================================
--- 
archiva/branches/MRM-1296/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/auditLogReport.jsp
 (original)
+++ 
archiva/branches/MRM-1296/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/auditLogReport.jsp
 Tue Dec 15 02:26:50 2009
@@ -80,30 +80,34 @@
                <s:textfield label="Row Count" name="rowCount" />
                
            <s:submit value="View Audit Log"/>
-    </div>
-  </s:form> 
+    </div>    
+   
+  </s:form>
   
-  <c:if test="${not empty (auditLogs)}">
+   <c:if test="${not empty (auditLogs)}">
          <table border="1">
-           <tr>
-             <th align="center">Event</th>
-             <th align="center">Repository</th>
-             <th align="center">Artifact</th>
-             <th align="center">Event Date</th>
-             <th align="center">Username</th>
-           </tr>
+        <thead>
+             <tr>
+               <th align="center">Event</th>
+               <th align="center">Repository</th>
+               <th align="center">Artifact</th>
+               <th align="center">Event Date</th>
+               <th align="center">Username</th>
+             </tr>
+           </thead>
            <c:forEach items="${auditLogs}" var="auditLog" varStatus="i">
+           <tbody>
              <tr>
                <td>${auditLog.event}</td>
                <td>${auditLog.repositoryId}</td>
-                 <td>${auditLog.artifact}</td>
-                 <td>${auditLog.eventDate}</td>
-                 <td>${auditLog.username}</td>
-               </tr>
+               <td>${auditLog.artifact}</td>
+               <td>${auditLog.eventDate}</td>
+               <td>${auditLog.username}</td>
+             </tr>
+           </tbody>
            </c:forEach>
          </table>   
-  </c:if>
-
+    </c:if> 
 </div>
 
 </body>


Reply via email to