You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by br...@apache.org on 2010/12/06 14:27:54 UTC

svn commit: r1042633 - in /archiva/branches/archiva-1.3.x/archiva-modules: archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/ archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/adm...

Author: brett
Date: Mon Dec  6 13:27:53 2010
New Revision: 1042633

URL: http://svn.apache.org/viewvc?rev=1042633&view=rev
Log:
[MRM-1441] add repository scanning details to system status page

Modified:
    archiva/branches/archiva-1.3.x/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/DefaultRepositoryScanner.java
    archiva/branches/archiva-1.3.x/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanner.java
    archiva/branches/archiva-1.3.x/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java
    archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SystemStatusAction.java
    archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/systemStatus.jsp

Modified: archiva/branches/archiva-1.3.x/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/DefaultRepositoryScanner.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-1.3.x/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/DefaultRepositoryScanner.java?rev=1042633&r1=1042632&r2=1042633&view=diff
==============================================================================
--- archiva/branches/archiva-1.3.x/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/DefaultRepositoryScanner.java (original)
+++ archiva/branches/archiva-1.3.x/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/DefaultRepositoryScanner.java Mon Dec  6 13:27:53 2010
@@ -21,7 +21,9 @@ package org.apache.maven.archiva.reposit
 
 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;
@@ -32,6 +34,8 @@ import org.apache.maven.archiva.consumer
 import org.apache.maven.archiva.repository.RepositoryException;
 import org.codehaus.plexus.util.DirectoryWalker;
 
+import javax.swing.*;
+
 /**
  * DefaultRepositoryScanner
  *
@@ -50,7 +54,9 @@ public class DefaultRepositoryScanner
      * @plexus.requirement
      */
     private RepositoryContentConsumers consumerUtil;
-    
+
+    private Set<RepositoryScannerInstance> inProgressScans = new LinkedHashSet<RepositoryScannerInstance>();
+
     public RepositoryScanStatistics scan( ManagedRepositoryConfiguration repository, long changesSince )
         throws RepositoryException
     {
@@ -73,7 +79,7 @@ public class DefaultRepositoryScanner
         }
 
         File repositoryBase = new File( repository.getLocation() );
-        
+
         if ( !repositoryBase.exists() )
         {
             throw new UnsupportedOperationException( "Unable to scan a repository, directory "
@@ -111,6 +117,8 @@ public class DefaultRepositoryScanner
         RepositoryScannerInstance scannerInstance = new RepositoryScannerInstance( repository, knownContentConsumers,
                                                                                    invalidContentConsumers, changesSince );
 
+        inProgressScans.add( scannerInstance );
+
         dirWalker.addDirectoryWalkListener( scannerInstance );
 
         // Execute scan.
@@ -120,7 +128,9 @@ public class DefaultRepositoryScanner
 
         stats.setKnownConsumers( gatherIds( knownContentConsumers ) );
         stats.setInvalidConsumers( gatherIds( invalidContentConsumers ) );
-        
+
+        inProgressScans.remove( scannerInstance );
+
         return stats;
     }
 
@@ -132,5 +142,10 @@ public class DefaultRepositoryScanner
             ids.add( consumer.getId() );
         }
         return ids;
-    }   
+    }
+
+    public Set<RepositoryScannerInstance> getInProgressScans()
+    {
+        return inProgressScans;
+    }
 }

Modified: archiva/branches/archiva-1.3.x/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanner.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-1.3.x/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanner.java?rev=1042633&r1=1042632&r2=1042633&view=diff
==============================================================================
--- archiva/branches/archiva-1.3.x/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanner.java (original)
+++ archiva/branches/archiva-1.3.x/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanner.java Mon Dec  6 13:27:53 2010
@@ -24,7 +24,9 @@ import org.apache.maven.archiva.consumer
 import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
 import org.apache.maven.archiva.repository.RepositoryException;
 
+import java.util.Collection;
 import java.util.List;
+import java.util.Set;
 
 /**
  * RepositoryScanner 
@@ -107,4 +109,5 @@ public interface RepositoryScanner
                                              List<String> ignoredContentPatterns, long changesSince )
         throws RepositoryException;
 
+    Set<RepositoryScannerInstance> getInProgressScans();
 }

Modified: archiva/branches/archiva-1.3.x/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-1.3.x/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java?rev=1042633&r1=1042632&r2=1042633&view=diff
==============================================================================
--- archiva/branches/archiva-1.3.x/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java (original)
+++ archiva/branches/archiva-1.3.x/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java Mon Dec  6 13:27:53 2010
@@ -163,4 +163,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/branches/archiva-1.3.x/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/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SystemStatusAction.java?rev=1042633&r1=1042632&r2=1042633&view=diff
==============================================================================
--- archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SystemStatusAction.java (original)
+++ archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SystemStatusAction.java Mon Dec  6 13:27:53 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/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/systemStatus.jsp
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/systemStatus.jsp?rev=1042633&r1=1042632&r2=1042633&view=diff
==============================================================================
--- archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/systemStatus.jsp (original)
+++ archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/systemStatus.jsp Mon Dec  6 13:27:53 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>