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() );
+ }
}