Author: olamy
Date: Tue Sep 27 07:18:30 2011
New Revision: 1176245

URL: http://svn.apache.org/viewvc?rev=1176245&view=rev
Log:
add a rest service to schedule a download remote index

Modified:
    
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.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/RepositoriesService.java?rev=1176245&r1=1176244&r2=1176245&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java
 Tue Sep 27 07:18:30 2011
@@ -83,4 +83,13 @@ public interface RepositoriesService
     Boolean copyArtifact( ArtifactTransferRequest artifactTransferRequest )
         throws ArchivaRestServiceException;
 
+    @Path( "scheduleDownloadRemoteIndex" )
+    @GET
+    @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, 
MediaType.TEXT_PLAIN } )
+    @RedbackAuthorization( permission = 
ArchivaRoleConstants.OPERATION_RUN_INDEXER )
+    Boolean scheduleDownloadRemoteIndex( @QueryParam( "repositoryId" ) String 
repositoryId,
+                                         @QueryParam( "now" ) boolean now,
+                                         @QueryParam( "fullDownload" ) boolean 
fullDownload )
+        throws ArchivaRestServiceException;
+
 }

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.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/DefaultRepositoriesService.java?rev=1176245&r1=1176244&r2=1176245&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
 Tue Sep 27 07:18:30 2011
@@ -44,6 +44,8 @@ import org.apache.archiva.rest.api.servi
 import org.apache.archiva.scheduler.ArchivaTaskScheduler;
 import org.apache.archiva.scheduler.indexing.ArchivaIndexingTaskExecutor;
 import org.apache.archiva.scheduler.indexing.ArtifactIndexingTask;
+import org.apache.archiva.scheduler.indexing.DownloadRemoteIndexException;
+import org.apache.archiva.scheduler.indexing.DownloadRemoteIndexScheduler;
 import org.apache.archiva.scheduler.repository.RepositoryArchivaTaskScheduler;
 import org.apache.archiva.scheduler.repository.RepositoryTask;
 import org.apache.archiva.security.common.ArchivaRoleConstants;
@@ -67,7 +69,6 @@ import org.springframework.stereotype.Se
 
 import javax.inject.Inject;
 import javax.inject.Named;
-import javax.ws.rs.PathParam;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
@@ -119,6 +120,9 @@ public class DefaultRepositoriesService
     @Named( value = "archivaTaskScheduler#repository" )
     private ArchivaTaskScheduler scheduler;
 
+    @Inject
+    private DownloadRemoteIndexScheduler downloadRemoteIndexScheduler;
+
     private ChecksumAlgorithm[] algorithms = new ChecksumAlgorithm[]{ 
ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5 };
 
     public Boolean scanRepository( String repositoryId, boolean fullScan )
@@ -191,6 +195,21 @@ public class DefaultRepositoriesService
         }
     }
 
+    public Boolean scheduleDownloadRemoteIndex( String repositoryId, boolean 
now, boolean fullDownload )
+        throws ArchivaRestServiceException
+    {
+        try
+        {
+            downloadRemoteIndexScheduler.scheduleDownloadRemote( repositoryId, 
now, fullDownload );
+        }
+        catch ( DownloadRemoteIndexException e )
+        {
+            log.error( e.getMessage(), e );
+            throw new ArchivaRestServiceException( e.getMessage() );
+        }
+        return Boolean.TRUE;
+    }
+
     public Boolean copyArtifact( ArtifactTransferRequest 
artifactTransferRequest )
         throws ArchivaRestServiceException
     {


Reply via email to