You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2012/03/12 14:03:39 UTC
svn commit: r1299659 - in /archiva/trunk/archiva-modules/archiva-web:
archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/
archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/
archiva-rest/archiva-...
Author: olamy
Date: Mon Mar 12 13:03:38 2012
New Revision: 1299659
URL: http://svn.apache.org/viewvc?rev=1299659&view=rev
Log:
[MRM-1580] system status page display queues.
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/AdminRepositoryConsumer.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/ArchivaRepositoryStatistics.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/BrowseResult.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/BrowseResultEntry.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/PolicyInformation.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/StringList.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/VersionsList.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SystemStatusService.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSystemStatusService.java
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/general-admin.js
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/general-admin.html
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/AdminRepositoryConsumer.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/AdminRepositoryConsumer.java?rev=1299659&r1=1299658&r2=1299659&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/AdminRepositoryConsumer.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/AdminRepositoryConsumer.java Mon Mar 12 13:03:38 2012
@@ -20,6 +20,7 @@ package org.apache.archiva.rest.api.mode
*/
import javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
/**
* AdminRepositoryConsumer
@@ -28,6 +29,7 @@ import javax.xml.bind.annotation.XmlRoot
*/
@XmlRootElement( name = "adminRepositoryConsumer" )
public class AdminRepositoryConsumer
+ implements Serializable
{
private boolean enabled = false;
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/ArchivaRepositoryStatistics.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/ArchivaRepositoryStatistics.java?rev=1299659&r1=1299658&r2=1299659&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/ArchivaRepositoryStatistics.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/ArchivaRepositoryStatistics.java Mon Mar 12 13:03:38 2012
@@ -19,6 +19,7 @@ package org.apache.archiva.rest.api.mode
*/
import javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
import java.util.Date;
/**
@@ -27,6 +28,7 @@ import java.util.Date;
*/
@XmlRootElement( name = "archivaRepositoryStatistics" )
public class ArchivaRepositoryStatistics
+ implements Serializable
{
private Date scanEndTime;
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/BrowseResult.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/BrowseResult.java?rev=1299659&r1=1299658&r2=1299659&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/BrowseResult.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/BrowseResult.java Mon Mar 12 13:03:38 2012
@@ -19,6 +19,7 @@ package org.apache.archiva.rest.api.mode
*/
import javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
import java.util.Collections;
import java.util.List;
@@ -28,6 +29,7 @@ import java.util.List;
*/
@XmlRootElement( name = "browseResult" )
public class BrowseResult
+ implements Serializable
{
private List<BrowseResultEntry> browseResultEntries;
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/BrowseResultEntry.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/BrowseResultEntry.java?rev=1299659&r1=1299658&r2=1299659&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/BrowseResultEntry.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/BrowseResultEntry.java Mon Mar 12 13:03:38 2012
@@ -19,6 +19,7 @@ package org.apache.archiva.rest.api.mode
*/
import javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
/**
* @author Olivier Lamy
@@ -26,7 +27,7 @@ import javax.xml.bind.annotation.XmlRoot
*/
@XmlRootElement( name = "browseResultEntry" )
public class BrowseResultEntry
- implements Comparable<BrowseResultEntry>
+ implements Comparable<BrowseResultEntry>, Serializable
{
private String name;
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/PolicyInformation.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/PolicyInformation.java?rev=1299659&r1=1299658&r2=1299659&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/PolicyInformation.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/PolicyInformation.java Mon Mar 12 13:03:38 2012
@@ -19,6 +19,7 @@ package org.apache.archiva.rest.api.mode
*/
import javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
import java.util.List;
/**
@@ -27,6 +28,7 @@ import java.util.List;
*/
@XmlRootElement( name = "policyInformation" )
public class PolicyInformation
+ implements Serializable
{
private List<String> options;
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java?rev=1299659&r1=1299658&r2=1299659&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java Mon Mar 12 13:03:38 2012
@@ -1,6 +1,7 @@
package org.apache.archiva.rest.api.model;
import javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@@ -24,6 +25,7 @@ import java.util.List;
*/
@XmlRootElement( name = "searchRequest" )
public class SearchRequest
+ implements Serializable
{
/**
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/StringList.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/StringList.java?rev=1299659&r1=1299658&r2=1299659&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/StringList.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/StringList.java Mon Mar 12 13:03:38 2012
@@ -19,6 +19,7 @@ package org.apache.archiva.rest.api.mode
*/
import javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@@ -30,6 +31,7 @@ import java.util.List;
*/
@XmlRootElement( name = "stringList" )
public class StringList
+ implements Serializable
{
private List<String> strings;
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/VersionsList.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/VersionsList.java?rev=1299659&r1=1299658&r2=1299659&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/VersionsList.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/VersionsList.java Mon Mar 12 13:03:38 2012
@@ -19,6 +19,7 @@ package org.apache.archiva.rest.api.mode
*/
import javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
import java.util.List;
/**
@@ -26,6 +27,7 @@ import java.util.List;
*/
@XmlRootElement( name = "versionsList" )
public class VersionsList
+ implements Serializable
{
private List<String> versions;
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SystemStatusService.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SystemStatusService.java?rev=1299659&r1=1299658&r2=1299659&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SystemStatusService.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SystemStatusService.java Mon Mar 12 13:03:38 2012
@@ -18,6 +18,7 @@ package org.apache.archiva.rest.api.serv
* under the License.
*/
+import org.apache.archiva.rest.api.model.QueueEntry;
import org.apache.archiva.security.common.ArchivaRoleConstants;
import org.codehaus.plexus.redback.authorization.RedbackAuthorization;
@@ -26,6 +27,7 @@ import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
+import java.util.List;
/**
* @author Olivier Lamy
@@ -48,4 +50,11 @@ public interface SystemStatusService
String getCurrentServerTime( @PathParam( "locale" ) String locale )
throws ArchivaRestServiceException;
+ @Path( "queueEntries" )
+ @GET
+ @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
+ @RedbackAuthorization( permissions = ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION )
+ List<QueueEntry> getQueueEntries()
+ throws ArchivaRestServiceException;
+
}
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSystemStatusService.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSystemStatusService.java?rev=1299659&r1=1299658&r2=1299659&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSystemStatusService.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSystemStatusService.java Mon Mar 12 13:03:38 2012
@@ -18,13 +18,22 @@ package org.apache.archiva.rest.services
* under the License.
*/
+import org.apache.archiva.rest.api.model.QueueEntry;
import org.apache.archiva.rest.api.services.ArchivaRestServiceException;
import org.apache.archiva.rest.api.services.SystemStatusService;
+import org.codehaus.plexus.taskqueue.TaskQueue;
+import org.codehaus.plexus.taskqueue.TaskQueueException;
+import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
+import javax.inject.Inject;
+import javax.ws.rs.core.Response;
import java.text.SimpleDateFormat;
+import java.util.ArrayList;
import java.util.Date;
+import java.util.List;
import java.util.Locale;
+import java.util.Map;
/**
* @author Olivier Lamy
@@ -32,8 +41,21 @@ import java.util.Locale;
*/
@Service( "systemStatusService#rest" )
public class DefaultSystemStatusService
+ extends AbstractRestService
implements SystemStatusService
{
+
+ private ApplicationContext applicationContext;
+
+ Map<String, TaskQueue> queues = null;
+
+ @Inject
+ public DefaultSystemStatusService( ApplicationContext applicationContext )
+ {
+ this.applicationContext = applicationContext;
+ queues = getBeansOfType( applicationContext, TaskQueue.class );
+ }
+
public String getMemoryStatus()
throws ArchivaRestServiceException
{
@@ -56,4 +78,25 @@ public class DefaultSystemStatusService
SimpleDateFormat sdf = new SimpleDateFormat( "EEE, d MMM yyyy HH:mm:ss Z", new Locale( locale ) );
return sdf.format( new Date() );
}
+
+ public List<QueueEntry> getQueueEntries()
+ throws ArchivaRestServiceException
+ {
+ try
+ {
+ List<QueueEntry> queueEntries = new ArrayList<QueueEntry>( queues.size() );
+ for ( Map.Entry<String, TaskQueue> entry : queues.entrySet() )
+ {
+ queueEntries.add( new QueueEntry( entry.getKey(), entry.getValue().getQueueSnapshot().size() ) );
+ }
+
+ return queueEntries;
+ }
+ catch ( TaskQueueException e )
+ {
+ log.error( e.getMessage(), e );
+ throw new ArchivaRestServiceException( e.getMessage(),
+ Response.Status.INTERNAL_SERVER_ERROR.getStatusCode() );
+ }
+ }
}
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties?rev=1299659&r1=1299658&r2=1299659&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties Mon Mar 12 13:03:38 2012
@@ -295,6 +295,8 @@ system-status.header.version.info=Versio
system-status.header.version.timestampStr=Build Timestamp
system-status.header.scanning=Repository Scans Currently in Progress
system-status.header.scanning.inprogress.none=No scans in progress.
+system-status.queues.grid.header.key=Queue
+system-status.queues.grid.header.number=Size
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/general-admin.js
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/general-admin.js?rev=1299659&r1=1299658&r2=1299659&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/general-admin.js (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/general-admin.js Mon Mar 12 13:03:38 2012
@@ -561,11 +561,31 @@ $(function() {
// system status part
//---------------------------
+ QueueEntry=function(key,entriesNumber){
+ this.key=key;
+ this.entriesNumber=entriesNumber;
+ }
+
+
+ mapQueueEntries=function(data){
+ if (data!=null){
+ return $.map(data,function(item){
+ return new QueueEntry(item.key,item.entriesNumber);
+ })
+ }
+ return null;
+ }
+
displaySystemStatus=function(){
screenChange();
var mainContent=$("#main-content");
mainContent.html($("#system-status-main").tmpl());
+
+ var versionInfo=$.i18n.prop('system-status.header.version.buildNumber')+": "+window.archivaRuntimeInfo.buildNumber
+ +" - "+$.i18n.prop('system-status.header.version.timestampStr')+": "+window.archivaRuntimeInfo.timestampStr;
+ mainContent.find("#status_version_info").html(versionInfo);
+
$.ajax("restServices/archivaServices/systemStatusService/memoryStatus", {
type: "GET",
dataType: "text",
@@ -585,9 +605,13 @@ $(function() {
}
});
- var versionInfo=$.i18n.prop('system-status.header.version.buildNumber')+": "+window.archivaRuntimeInfo.buildNumber
- +" - "+$.i18n.prop('system-status.header.version.timestampStr')+": "+window.archivaRuntimeInfo.timestampStr;
- mainContent.find("#status_version_info").html(versionInfo);
+ $.ajax("restServices/archivaServices/systemStatusService/queueEntries", {
+ type: "GET",
+ success: function(data){
+ var queueEntries=mapQueueEntries(data);
+ mainContent.find("#status_queues").html($("#status_queues_tmpl" ).tmpl({queueEntries: queueEntries}));
+ }
+ });
}
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/general-admin.html
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/general-admin.html?rev=1299659&r1=1299658&r2=1299659&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/general-admin.html (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/general-admin.html Mon Mar 12 13:03:38 2012
@@ -354,6 +354,25 @@
</script>
+<script id="status_queues_tmpl" type="text/html">
+ <table class="table table-condensed">
+ <thead>
+ <tr>
+ <th>${$.i18n.prop('system-status.queues.grid.header.key')}</th>
+ <th>${$.i18n.prop('system-status.queues.grid.header.number')}</th>
+ </tr>
+ </thead>
+ <tbody>
+ {{each(i,queueEntry) queueEntries}}
+ <tr>
+ <td>${queueEntry.key}</td>
+ <td>${queueEntry.entriesNumber}</td>
+ </tr>
+ {{/each}}
+ </tbody>
+ </table>
+</script>
+