From: Olivier Lamy Date: Fri, 19 Aug 2011 07:54:42 +0000 (+0000) Subject: add a method to know if a repo is already under scanning X-Git-Tag: archiva-1.4-M1~512 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=566379bb171746a148f6164a9cecabaa0c8b0396;p=archiva.git add a method to know if a repo is already under scanning git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1159533 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java index 9335a0fea..6ac4033a3 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java @@ -26,6 +26,7 @@ import org.codehaus.plexus.redback.authorization.RedbackAuthorization; import javax.ws.rs.GET; import javax.ws.rs.Path; +import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; @@ -56,4 +57,11 @@ public interface RepositoriesService @RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_RUN_INDEXER ) Boolean scanRepository( @QueryParam( "repositoryId" ) String repositoryId, @QueryParam( "fullScan" ) boolean fullScan ); + + + @Path( "alreadyScanning/{repositoryId}" ) + @GET + @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } ) + @RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_RUN_INDEXER ) + Boolean alreadyScanning( @PathParam( "repositoryId" ) String repositoryId ); } diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultRepositoriesService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultRepositoriesService.java index 283bb5a3d..388ff053c 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultRepositoriesService.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultRepositoriesService.java @@ -16,6 +16,7 @@ import org.springframework.stereotype.Service; import javax.inject.Inject; import javax.inject.Named; +import javax.ws.rs.PathParam; import java.util.ArrayList; import java.util.List; @@ -92,4 +93,9 @@ public class DefaultRepositoriesService } return true; } + + public Boolean alreadyScanning( String repositoryId ) + { + return repositoryTaskScheduler.isProcessingRepositoryTask( repositoryId ); + } } diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java index e93d53c68..e5c71db0d 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java @@ -94,6 +94,12 @@ public class RepositoriesServiceTest RepositoriesService service = getRepositoriesService(); WebClient.client( service ).header( "Authorization", authorizationHeader ); WebClient.getConfig( service ).getHttpConduit().getClient().setReceiveTimeout( 300000 ); - assertTrue( service.scanRepository( service.getManagedRepositories().get( 0 ).getId(), true ) ); + String repoId = service.getManagedRepositories().get( 0 ).getId(); + assertTrue( service.scanRepository( repoId, true ) ); + + log.info( "sanRepo call ok " ); + + assertTrue( service.alreadyScanning( repoId ) ); + } } diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/resources/log4j.xml b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/resources/log4j.xml index 9a6061f32..88cce74a8 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/resources/log4j.xml +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/resources/log4j.xml @@ -31,10 +31,11 @@ + --> - --> +