Author: brett
Date: Mon Dec 6 14:09:28 2010
New Revision: 1042652
URL: http://svn.apache.org/viewvc?rev=1042652&view=rev
Log:
[MRM-1441] add repository scanning details to system status page
Merged from: r1042633
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScanner.java
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerInstance.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SystemStatusAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/systemStatus.jsp
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java?rev=1042652&r1=1042651&r2=1042652&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java
Mon Dec 6 14:09:28 2010
@@ -21,7 +21,9 @@ package org.apache.archiva.repository.sc
import java.io.File;
import java.util.ArrayList;
+import java.util.LinkedHashSet;
import java.util.List;
+import java.util.Set;
import org.apache.commons.collections.CollectionUtils;
import org.apache.maven.archiva.configuration.FileTypes;
@@ -31,6 +33,8 @@ import org.apache.maven.archiva.consumer
import org.apache.maven.archiva.consumers.RepositoryContentConsumer;
import org.codehaus.plexus.util.DirectoryWalker;
+import javax.swing.*;
+
/**
* DefaultRepositoryScanner
*
@@ -49,7 +53,9 @@ public class DefaultRepositoryScanner
* @plexus.requirement
*/
private RepositoryContentConsumers consumerUtil;
-
+
+ private Set<RepositoryScannerInstance> inProgressScans = new
LinkedHashSet<RepositoryScannerInstance>();
+
public RepositoryScanStatistics scan( ManagedRepositoryConfiguration
repository, long changesSince )
throws RepositoryScannerException
{
@@ -110,6 +116,8 @@ public class DefaultRepositoryScanner
RepositoryScannerInstance scannerInstance = new
RepositoryScannerInstance( repository, knownContentConsumers,
invalidContentConsumers, changesSince );
+ inProgressScans.add( scannerInstance );
+
dirWalker.addDirectoryWalkListener( scannerInstance );
// Execute scan.
@@ -119,7 +127,9 @@ public class DefaultRepositoryScanner
stats.setKnownConsumers( gatherIds( knownContentConsumers ) );
stats.setInvalidConsumers( gatherIds( invalidContentConsumers ) );
-
+
+ inProgressScans.remove( scannerInstance );
+
return stats;
}
@@ -131,5 +141,10 @@ public class DefaultRepositoryScanner
ids.add( consumer.getId() );
}
return ids;
- }
+ }
+
+ public Set<RepositoryScannerInstance> getInProgressScans()
+ {
+ return inProgressScans;
+ }
}
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScanner.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScanner.java?rev=1042652&r1=1042651&r2=1042652&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScanner.java
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScanner.java
Mon Dec 6 14:09:28 2010
@@ -19,7 +19,9 @@ package org.apache.archiva.repository.sc
* under the License.
*/
+import java.util.Collection;
import java.util.List;
+import java.util.Set;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer;
@@ -106,4 +108,5 @@ public interface RepositoryScanner
List<String>
ignoredContentPatterns, long changesSince )
throws RepositoryScannerException;
+ Set<RepositoryScannerInstance> getInProgressScans();
}
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerInstance.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerInstance.java?rev=1042652&r1=1042651&r2=1042652&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerInstance.java
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerInstance.java
Mon Dec 6 14:09:28 2010
@@ -162,4 +162,18 @@ public class RepositoryScannerInstance
log.debug( "Repository Scanner: " + message );
}
+ public ManagedRepositoryConfiguration getRepository()
+ {
+ return repository;
+ }
+
+ public RepositoryScanStatistics getStats()
+ {
+ return stats;
+ }
+
+ public long getChangesSince()
+ {
+ return changesSince;
+ }
}
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SystemStatusAction.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SystemStatusAction.java?rev=1042652&r1=1042651&r2=1042652&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SystemStatusAction.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SystemStatusAction.java
Mon Dec 6 14:09:28 2010
@@ -19,20 +19,9 @@ package org.apache.maven.archiva.web.act
* under the License.
*/
-import com.opensymphony.xwork2.Preparable;
-import org.apache.maven.archiva.configuration.ArchivaConfiguration;
-import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
-import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration;
-import
org.apache.maven.archiva.configuration.functors.RepositoryConfigurationComparator;
-import org.apache.maven.archiva.database.ArchivaDAO;
-import
org.apache.maven.archiva.database.constraints.MostRecentRepositoryScanStatistics;
-import org.apache.maven.archiva.model.RepositoryContentStatistics;
import org.apache.maven.archiva.repository.scanner.RepositoryScanner;
import org.apache.maven.archiva.security.ArchivaRoleConstants;
import org.apache.maven.archiva.web.action.PlexusActionSupport;
-import org.apache.maven.archiva.web.util.ContextUtils;
-import org.apache.struts2.interceptor.ServletRequestAware;
import org.codehaus.plexus.cache.Cache;
import org.codehaus.plexus.redback.rbac.Resource;
import org.codehaus.plexus.taskqueue.TaskQueue;
@@ -40,12 +29,7 @@ import org.codehaus.redback.integration.
import org.codehaus.redback.integration.interceptor.SecureActionBundle;
import org.codehaus.redback.integration.interceptor.SecureActionException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
-import javax.servlet.http.HttpServletRequest;
/**
* Shows system status information for the administrator.
@@ -67,6 +51,11 @@ public class SystemStatusAction
*/
private Map<String,Cache> caches;
+ /**
+ * @plexus.requirement
+ */
+ private RepositoryScanner scanner;
+
private String memoryStatus;
public SecureActionBundle getSecureActionBundle()
@@ -102,6 +91,11 @@ public class SystemStatusAction
return memoryStatus;
}
+ public RepositoryScanner getScanner()
+ {
+ return scanner;
+ }
+
public Map<String, Cache> getCaches()
{
return caches;
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/systemStatus.jsp
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/systemStatus.jsp?rev=1042652&r1=1042651&r2=1042652&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/systemStatus.jsp
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/systemStatus.jsp
Mon Dec 6 14:09:28 2010
@@ -54,6 +54,30 @@
</c:forEach>
</table>
+ <h2>Repository Scans</h2>
+
+ <c:choose>
+ <c:when test="${!empty scanner.inProgressScans}">
+ <table>
+ <tr>
+ <th>Repository</th>
+ <th>Files processed</th>
+ <th>New files</th>
+ </tr>
+ <c:forEach var="scan" items="${scanner.inProgressScans}">
+ <tr>
+ <td>${scan.repository.name} (${scan.repository.id})</td>
+ <td>${scan.stats.totalFileCount}</td>
+ <td>${scan.stats.newFileCount}</td>
+ </tr>
+ </c:forEach>
+ </table>
+ </c:when>
+ <c:otherwise>
+ <p>No scans in progress.</p>
+ </c:otherwise>
+ </c:choose>
+
<h2>Caches</h2>
<table>