Author: olamy
Date: Mon Sep 5 13:25:30 2011
New Revision: 1165278
URL: http://svn.apache.org/viewvc?rev=1165278&view=rev
Log:
[MRM-1490] Expose Archiva services trough REST : remote repository management
available tru rest service
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/RemoteRepository.java
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/AbstractRestService.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRemoteRepositoriesService.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/resources/META-INF/spring-context.xml
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ManagedRepositoriesServiceTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RemoteRepositoriesServiceTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/RemoteRepository.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/RemoteRepository.java?rev=1165278&r1=1165277&r2=1165278&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/RemoteRepository.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/RemoteRepository.java
Mon Sep 5 13:25:30 2011
@@ -54,6 +54,14 @@ public class RemoteRepository
this.layout = layout;
}
+ public RemoteRepository( String id, String name, String url, String
layout, String userName, String password,
+ int timeOut )
+ {
+ this( id, name, url, layout );
+ this.userName = userName;
+ this.password = password;
+ this.timeOut = timeOut;
+ }
public String getId()
{
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=1165278&r1=1165277&r2=1165278&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
Mon Sep 5 13:25:30 2011
@@ -19,7 +19,6 @@ package org.apache.archiva.rest.api.serv
* under the License.
*/
-import org.apache.archiva.rest.api.model.RemoteRepository;
import org.apache.archiva.security.common.ArchivaRoleConstants;
import org.codehaus.plexus.redback.authorization.RedbackAuthorization;
@@ -29,7 +28,6 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
-import java.util.List;
/**
* @author Olivier Lamy
@@ -39,13 +37,6 @@ import java.util.List;
public interface RepositoriesService
{
-
- @Path( "getRemoteRepositories" )
- @GET
- @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML,
MediaType.TEXT_PLAIN } )
- @RedbackAuthorization( permission =
ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION )
- List<RemoteRepository> getRemoteRepositories();
-
@Path( "scanRepository" )
@GET
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML,
MediaType.TEXT_PLAIN } )
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/AbstractRestService.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/AbstractRestService.java?rev=1165278&r1=1165277&r2=1165278&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/AbstractRestService.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/AbstractRestService.java
Mon Sep 5 13:25:30 2011
@@ -47,14 +47,4 @@ public abstract class AbstractRestServic
String remoteAddr = redbackRequestInformation == null ? null :
redbackRequestInformation.getRemoteAddr();
return new AuditInformation( user, remoteAddr );
}
-
- public List<AuditListener> getAuditListeners()
- {
- return auditListeners;
- }
-
- public void setAuditListeners( List<AuditListener> auditListeners )
- {
- this.auditListeners = auditListeners;
- }
}
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRemoteRepositoriesService.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/DefaultRemoteRepositoriesService.java?rev=1165278&r1=1165277&r2=1165278&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRemoteRepositoriesService.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRemoteRepositoriesService.java
Mon Sep 5 13:25:30 2011
@@ -26,7 +26,6 @@ import org.apache.commons.lang.StringUti
import org.springframework.stereotype.Service;
import javax.inject.Inject;
-import javax.ws.rs.PathParam;
import java.util.ArrayList;
import java.util.List;
@@ -58,7 +57,7 @@ public class DefaultRemoteRepositoriesSe
return remoteRepositories;
}
- public RemoteRepository getRemoteRepository( @PathParam( "repositoryId" )
String repositoryId )
+ public RemoteRepository getRemoteRepository( String repositoryId )
throws RepositoryAdminException
{
List<RemoteRepository> remoteRepositories = getRemoteRepositories();
@@ -72,7 +71,7 @@ public class DefaultRemoteRepositoriesSe
return null;
}
- public Boolean deleteRemoteRepository( @PathParam( "repositoryId" ) String
repositoryId )
+ public Boolean deleteRemoteRepository( String repositoryId )
throws Exception
{
return remoteRepositoryAdmin.deleteRemoteRepository( repositoryId,
getAuditInformation() );
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=1165278&r1=1165277&r2=1165278&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
Mon Sep 5 13:25:30 2011
@@ -84,24 +84,6 @@ public class DefaultRepositoriesService
@Inject
private ManagedRepositoryAdmin managedRepositoryAdmin;
-
- public List<RemoteRepository> getRemoteRepositories()
- {
- Configuration config = archivaConfiguration.getConfiguration();
- List<RemoteRepositoryConfiguration> remoteRepoConfigs =
config.getRemoteRepositories();
-
- List<RemoteRepository> remoteRepos = new ArrayList<RemoteRepository>(
remoteRepoConfigs.size() );
-
- for ( RemoteRepositoryConfiguration repoConfig : remoteRepoConfigs )
- {
- RemoteRepository repo = new RemoteRepository( repoConfig.getId(),
repoConfig.getName(), repoConfig.getUrl(),
-
repoConfig.getLayout() );
- remoteRepos.add( repo );
- }
-
- return remoteRepos;
- }
-
// FIXME olamy move this to repository admin component !
public Boolean scanRepository( String repositoryId, boolean fullScan )
{
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/resources/META-INF/spring-context.xml
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/resources/META-INF/spring-context.xml?rev=1165278&r1=1165277&r2=1165278&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/resources/META-INF/spring-context.xml
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/resources/META-INF/spring-context.xml
Mon Sep 5 13:25:30 2011
@@ -51,6 +51,7 @@
<ref bean="pingService#rest"/>
<ref bean="repositoriesService#rest"/>
<ref bean="managedRepositoriesService#rest"/>
+ <ref bean="remoteRepositoriesService#rest"/>
</jaxrs:serviceBeans>
<jaxrs:outInterceptors>
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java?rev=1165278&r1=1165277&r2=1165278&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java
Mon Sep 5 13:25:30 2011
@@ -21,6 +21,7 @@ package org.apache.archiva.rest.services
import org.apache.archiva.rest.api.services.ManagedRepositoriesService;
import org.apache.archiva.rest.api.services.PingService;
+import org.apache.archiva.rest.api.services.RemoteRepositoriesService;
import org.apache.archiva.rest.api.services.RepositoriesService;
import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
import org.codehaus.redback.rest.services.AbstractRestServicesTest;
@@ -58,6 +59,13 @@ public abstract class AbstractArchivaRes
{
return JAXRSClientFactory.create( "http://localhost:" + port +
"/services/archivaServices/",
PingService.class );
+ }
+
+ protected RemoteRepositoriesService getRemoteRepositoriesService()
+ {
+ return JAXRSClientFactory.create( "http://localhost:" + port +
"/services/archivaServices/",
+ RemoteRepositoriesService.class );
+
}
}
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ManagedRepositoriesServiceTest.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ManagedRepositoriesServiceTest.java?rev=1165278&r1=1165277&r2=1165278&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ManagedRepositoriesServiceTest.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ManagedRepositoriesServiceTest.java
Mon Sep 5 13:25:30 2011
@@ -50,6 +50,9 @@ public class ManagedRepositoriesServiceT
}
service.addManagedRepository( repo );
assertNotNull( service.getManagedRepository( repo.getId() ) );
+
+ service.deleteManagedRepository( repo.getId(), true );
+ assertNull( service.getManagedRepository( repo.getId() ) );
}
@Test
@@ -78,6 +81,10 @@ public class ManagedRepositoriesServiceT
assertNotNull( repo );
assertEquals( "toto", repo.getName() );
+
+ service.deleteManagedRepository( repo.getId(), true );
+ assertNull( service.getManagedRepository( repo.getId() ) );
+
}
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RemoteRepositoriesServiceTest.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RemoteRepositoriesServiceTest.java?rev=1165278&r1=1165277&r2=1165278&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RemoteRepositoriesServiceTest.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RemoteRepositoriesServiceTest.java
Mon Sep 5 13:25:30 2011
@@ -65,5 +65,87 @@ public class RemoteRepositoriesServiceTe
}
+ @Test
+ public void addAndDeleteRemoteRepository()
+ throws Exception
+ {
+ RemoteRepositoriesService service = getRemoteRepositoriesService();
+
+ WebClient.client( service ).header( "Authorization",
authorizationHeader );
+
+ int initialSize = service.getRemoteRepositories().size();
+
+ service.addRemoteRepository( getRemoteRepository() );
+
+ assertNotNull( service.getRemoteRepository( "id-new" ) );
+
+ assertEquals( getRemoteRepository().getName(),
service.getRemoteRepository( "id-new" ).getName() );
+ assertEquals( getRemoteRepository().getUrl(),
service.getRemoteRepository( "id-new" ).getUrl() );
+ assertEquals( getRemoteRepository().getLayout(),
service.getRemoteRepository( "id-new" ).getLayout() );
+ assertEquals( getRemoteRepository().getUserName(),
service.getRemoteRepository( "id-new" ).getUserName() );
+ assertEquals( getRemoteRepository().getPassword(),
service.getRemoteRepository( "id-new" ).getPassword() );
+ assertEquals( getRemoteRepository().getTimeOut(),
service.getRemoteRepository( "id-new" ).getTimeOut() );
+
+ assertEquals( initialSize + 1, service.getRemoteRepositories().size()
);
+
+ service.deleteRemoteRepository( "id-new" );
+
+ assertNull( service.getRemoteRepository( "id-new" ) );
+
+ assertEquals( initialSize, service.getRemoteRepositories().size() );
+
+ }
+
+ @Test
+ public void addAndUpdateAndDeleteRemoteRepository()
+ throws Exception
+ {
+ RemoteRepositoriesService service = getRemoteRepositoriesService();
+
+ WebClient.client( service ).header( "Authorization",
authorizationHeader );
+
+ int initialSize = service.getRemoteRepositories().size();
+
+ service.addRemoteRepository( getRemoteRepository() );
+
+ assertNotNull( service.getRemoteRepository( "id-new" ) );
+
+ assertEquals( getRemoteRepository().getName(),
service.getRemoteRepository( "id-new" ).getName() );
+ assertEquals( getRemoteRepository().getUrl(),
service.getRemoteRepository( "id-new" ).getUrl() );
+ assertEquals( getRemoteRepository().getLayout(),
service.getRemoteRepository( "id-new" ).getLayout() );
+ assertEquals( getRemoteRepository().getUserName(),
service.getRemoteRepository( "id-new" ).getUserName() );
+ assertEquals( getRemoteRepository().getPassword(),
service.getRemoteRepository( "id-new" ).getPassword() );
+ assertEquals( getRemoteRepository().getTimeOut(),
service.getRemoteRepository( "id-new" ).getTimeOut() );
+
+ assertEquals( initialSize + 1, service.getRemoteRepositories().size()
);
+
+ RemoteRepository repo = getRemoteRepository();
+ repo.setName( "name changed" );
+ repo.setPassword( "new password" );
+ repo.setUserName( "new username" );
+ repo.setUrl( "http://foo.new.org" );
+
+ service.updateRemoteRepository( repo );
+
+ assertEquals( repo.getName(), service.getRemoteRepository( "id-new"
).getName() );
+ assertEquals( repo.getUrl(), service.getRemoteRepository( "id-new"
).getUrl() );
+ assertEquals( repo.getLayout(), service.getRemoteRepository( "id-new"
).getLayout() );
+ assertEquals( repo.getUserName(), service.getRemoteRepository(
"id-new" ).getUserName() );
+ assertEquals( repo.getPassword(), service.getRemoteRepository(
"id-new" ).getPassword() );
+ assertEquals( repo.getTimeOut(), service.getRemoteRepository( "id-new"
).getTimeOut() );
+
+ service.deleteRemoteRepository( "id-new" );
+
+ assertNull( service.getRemoteRepository( "id-new" ) );
+
+ assertEquals( initialSize, service.getRemoteRepositories().size() );
+
+ }
+
+ RemoteRepository getRemoteRepository()
+ {
+ return new RemoteRepository( "id-new", "new one", "http://foo.com",
"default", "foo", "foopassword", 120 );
+ }
+
}
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java?rev=1165278&r1=1165277&r2=1165278&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java
Mon Sep 5 13:25:30 2011
@@ -20,7 +20,6 @@ package org.apache.archiva.rest.services
*/
import org.apache.archiva.rest.api.model.ManagedRepository;
-import org.apache.archiva.rest.api.model.RemoteRepository;
import org.apache.archiva.rest.api.services.ManagedRepositoriesService;
import org.apache.archiva.rest.api.services.RepositoriesService;
import org.apache.cxf.jaxrs.client.ServerWebApplicationException;
@@ -29,7 +28,6 @@ import org.apache.maven.archiva.common.u
import org.junit.Test;
import java.io.File;
-import java.util.List;
/**
* @author Olivier Lamy
@@ -38,37 +36,6 @@ public class RepositoriesServiceTest
extends AbstractArchivaRestTest
{
-
- @Test( expected = ServerWebApplicationException.class )
- public void listRemoteRepositoriesKarmaFailed()
- throws Exception
- {
- RepositoriesService service = getRepositoriesService();
- try
- {
- assertFalse( service.getRemoteRepositories().isEmpty() );
- }
- catch ( ServerWebApplicationException e )
- {
- assertEquals( 403, e.getStatus() );
- throw e;
- }
- }
-
- @Test
- public void listRemoteRepositoriesKarma()
- throws Exception
- {
- RepositoriesService service = getRepositoriesService();
-
- WebClient.client( service ).header( "Authorization",
authorizationHeader );
- WebClient.getConfig( service
).getHttpConduit().getClient().setReceiveTimeout( 300000 );
- List<RemoteRepository> repos = service.getRemoteRepositories();
- assertFalse( repos.isEmpty() );
- log.info( "repos {}", repos );
-
- }
-
@Test( expected = ServerWebApplicationException.class )
public void scanRepoKarmaFailed()
throws Exception