]> source.dussan.org Git - archiva.git/commitdiff
add a method to know if a repo is already under scanning
authorOlivier Lamy <olamy@apache.org>
Fri, 19 Aug 2011 07:54:42 +0000 (07:54 +0000)
committerOlivier Lamy <olamy@apache.org>
Fri, 19 Aug 2011 07:54:42 +0000 (07:54 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1159533 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultRepositoriesService.java
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/resources/log4j.xml

index 9335a0feaf96f80adf69427299391271a7e08d0b..6ac4033a3c4bbf58643dc129069b0bcd00295173 100644 (file)
@@ -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 );
 }
index 283bb5a3da789b97e25163b702564596f28356c1..388ff053cfd3e47dfd46f2d6161f1cb5080f6c29 100644 (file)
@@ -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 );
+    }
 }
index e93d53c6803fa4cc3fbc40a1a7621682b21b5f6f..e5c71db0df66322414f98cde871ea0c9df2a065d 100644 (file)
@@ -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 ) );
+
     }
 }
index 9a6061f32d126e6e8a67e0ff5d25bbe4162df36b..88cce74a8eecb176f80f817227c6fbbb9e58ceab 100644 (file)
   <logger name="org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor">
     <level value="trace"/>
   </logger>
+  -->
   <logger name="org.apache.cxf.jaxrs.utils.JAXRSUtils">
     <level value="trace"/>
   </logger>
-  -->
+
   <logger name="org.codehaus.redback.rest.services" >
     <level value="debug"/>
   </logger>