Author: olamy
Date: Mon Sep 26 16:03:16 2011
New Revision: 1175920

URL: http://svn.apache.org/viewvc?rev=1175920&view=rev
Log:
 [MRM-1519] api to configure webappconfiguration : expose it as a rest service

Modified:
    
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/ArchivaAdministrationService.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaAdministrationService.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ArchivaAdministrationServiceTest.java

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/ArchivaAdministrationService.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/ArchivaAdministrationService.java?rev=1175920&r1=1175919&r2=1175920&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/ArchivaAdministrationService.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/ArchivaAdministrationService.java
 Mon Sep 26 16:03:16 2011
@@ -21,6 +21,7 @@ package org.apache.archiva.rest.api.serv
 import org.apache.archiva.admin.model.beans.FileType;
 import org.apache.archiva.admin.model.beans.LegacyArtifactPath;
 import org.apache.archiva.admin.model.beans.OrganisationInformation;
+import org.apache.archiva.admin.model.beans.UiConfiguration;
 import org.apache.archiva.security.common.ArchivaRoleConstants;
 import org.codehaus.plexus.redback.authorization.RedbackAuthorization;
 
@@ -175,5 +176,19 @@ public interface ArchivaAdministrationSe
     @RedbackAuthorization( permission = 
ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION )
     void setOrganisationInformation( OrganisationInformation 
organisationInformation )
         throws ArchivaRestServiceException;
+
+    @Path( "getUiConfiguration" )
+    @GET
+    @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, 
MediaType.TEXT_PLAIN } )
+    @RedbackAuthorization( permission = 
ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION )
+    UiConfiguration getUiConfiguration()
+        throws ArchivaRestServiceException;
+
+    @Path( "setUiConfiguration" )
+    @POST
+    @Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
+    @RedbackAuthorization( permission = 
ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION )
+    void setUiConfiguration( UiConfiguration uiConfiguration )
+        throws ArchivaRestServiceException;
 }
 

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaAdministrationService.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/DefaultArchivaAdministrationService.java?rev=1175920&r1=1175919&r2=1175920&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaAdministrationService.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaAdministrationService.java
 Mon Sep 26 16:03:16 2011
@@ -23,6 +23,7 @@ import org.apache.archiva.admin.model.ad
 import org.apache.archiva.admin.model.beans.FileType;
 import org.apache.archiva.admin.model.beans.LegacyArtifactPath;
 import org.apache.archiva.admin.model.beans.OrganisationInformation;
+import org.apache.archiva.admin.model.beans.UiConfiguration;
 import org.apache.archiva.rest.api.services.ArchivaAdministrationService;
 import org.apache.archiva.rest.api.services.ArchivaRestServiceException;
 import org.springframework.stereotype.Service;
@@ -297,14 +298,34 @@ public class DefaultArchivaAdministratio
     {
         try
         {
-            if ( organisationInformation == null )
-            {
-                archivaAdministration.setOrganisationInformation( null );
-            }
-            else
-            {
-                archivaAdministration.setOrganisationInformation( 
organisationInformation );
-            }
+            archivaAdministration.setOrganisationInformation( 
organisationInformation );
+        }
+        catch ( RepositoryAdminException e )
+        {
+            throw new ArchivaRestServiceException( e.getMessage() );
+        }
+    }
+
+
+    public UiConfiguration getUiConfiguration()
+        throws ArchivaRestServiceException
+    {
+        try
+        {
+            return archivaAdministration.getUiConfiguration();
+        }
+        catch ( RepositoryAdminException e )
+        {
+            throw new ArchivaRestServiceException( e.getMessage() );
+        }
+    }
+
+    public void setUiConfiguration( UiConfiguration uiConfiguration )
+        throws ArchivaRestServiceException
+    {
+        try
+        {
+            archivaAdministration.updateUiConfiguration( uiConfiguration );
         }
         catch ( RepositoryAdminException e )
         {

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ArchivaAdministrationServiceTest.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/ArchivaAdministrationServiceTest.java?rev=1175920&r1=1175919&r2=1175920&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ArchivaAdministrationServiceTest.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ArchivaAdministrationServiceTest.java
 Mon Sep 26 16:03:16 2011
@@ -21,6 +21,7 @@ package org.apache.archiva.rest.services
 import org.apache.archiva.admin.model.beans.FileType;
 import org.apache.archiva.admin.model.beans.LegacyArtifactPath;
 import org.apache.archiva.admin.model.beans.OrganisationInformation;
+import org.apache.archiva.admin.model.beans.UiConfiguration;
 import org.apache.commons.lang.StringUtils;
 import org.junit.Test;
 
@@ -103,4 +104,28 @@ public class ArchivaAdministrationServic
         assertEquals( "foo org", organisationInformation.getName() );
         assertEquals( "http://foo.com";, organisationInformation.getUrl() );
     }
+
+    @Test
+    public void uiConfigurationReadUpdate()
+        throws Exception
+    {
+        UiConfiguration ui = 
getArchivaAdministrationService().getUiConfiguration();
+        assertNotNull( ui );
+        // assert default values
+        assertFalse( ui.isDisableEasterEggs() );
+        assertTrue( ui.isAppletFindEnabled() );
+        assertTrue( ui.isShowFindArtifacts() );
+
+        ui.setAppletFindEnabled( false );
+        ui.setShowFindArtifacts( false );
+        ui.setDisableEasterEggs( true );
+
+        getArchivaAdministrationService().setUiConfiguration( ui );
+
+        ui = getArchivaAdministrationService().getUiConfiguration();
+
+        assertTrue( ui.isDisableEasterEggs() );
+        assertFalse( ui.isAppletFindEnabled() );
+        assertFalse( ui.isShowFindArtifacts() );
+    }
 }


Reply via email to