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
{