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" );
*/
import org.apache.maven.archiva.model.ArchivaAuditLogs;
+import org.apache.maven.archiva.repository.audit.AuditEvent;
public class MostRecentArchivaAuditLogsConstraint
extends AbstractSimpleConstraint
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()
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;
*/
private ArchivaAuditLogsDao auditLogsDao;
+ /**
+ * @plexus.requirement role-hint="jdo"
+ */
+ private ArchivaDAO dao;
+
private String repository;
private List<String> repositories;
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
this.request = request;
}
+ @SuppressWarnings( "unchecked" )
public void prepare()
throws Exception
{
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;
}
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
{
<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>