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


Reply via email to