From b31467ae8de9ccf3f435459c834167b307cf2093 Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Fri, 9 Sep 2011 14:41:04 +0000 Subject: [PATCH] [MRM-1512] api to configure RepositoryScanningConfiguration : refactor to remove full access to bean with a large tree of nesteed beans. use simple methods to update fields of RepositoryScanningConfiguration. git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1167224 13f79535-47bb-0310-9956-ffa450edef68 --- .../admin/ArchivaAdministration.java | 14 +-- .../admin/DefaultArchivaAdministration.java | 55 ++++++----- .../admin/ArchivaAdministrationTest.java | 44 ++++----- .../ArchivaAdministrationService.java | 44 +++++---- .../archiva-rest-services/pom.xml | 5 + .../DefaultArchivaAdministrationService.java | 98 ++++++++++--------- .../services/DefaultRepositoriesService.java | 29 ------ .../ArchivaAdministrationServiceTest.java | 17 ++-- .../scanning/RepositoryScanningAction.java | 12 +-- 9 files changed, 158 insertions(+), 160 deletions(-) diff --git a/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/admin/ArchivaAdministration.java b/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/admin/ArchivaAdministration.java index a6b37308f..3dbe0c287 100644 --- a/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/admin/ArchivaAdministration.java +++ b/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/admin/ArchivaAdministration.java @@ -39,18 +39,15 @@ public interface ArchivaAdministration void deleteLegacyArtifactPath( String path, AuditInformation auditInformation ) throws RepositoryAdminException; - RepositoryScanning getRepositoryScanning() - throws RepositoryAdminException; - - void updateRepositoryScanning( RepositoryScanning repositoryScanning, AuditInformation auditInformation ) - throws RepositoryAdminException; - void addFileTypePattern( String fileTypeId, String pattern, AuditInformation auditInformation ) throws RepositoryAdminException; void removeFileTypePattern( String fileTypeId, String pattern, AuditInformation auditInformation ) throws RepositoryAdminException; + List getFileTypes() + throws RepositoryAdminException; + FileType getFileType( String fileTypeId ) throws RepositoryAdminException; @@ -66,6 +63,8 @@ public interface ArchivaAdministration void setKnownContentConsumers( List knownContentConsumers, AuditInformation auditInformation ) throws RepositoryAdminException; + List getKnownContentConsumers() + throws RepositoryAdminException; void removeKnownContentConsumer( String knownContentConsumer, AuditInformation auditInformation ) throws RepositoryAdminException; @@ -76,6 +75,9 @@ public interface ArchivaAdministration void setInvalidContentConsumers( List invalidContentConsumers, AuditInformation auditInformation ) throws RepositoryAdminException; + List getInvalidContentConsumers() + throws RepositoryAdminException; + void removeInvalidContentConsumer( String invalidContentConsumer, AuditInformation auditInformation ) throws RepositoryAdminException; diff --git a/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/admin/DefaultArchivaAdministration.java b/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/admin/DefaultArchivaAdministration.java index f4aba4cfb..4c60ffda7 100644 --- a/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/admin/DefaultArchivaAdministration.java +++ b/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/admin/DefaultArchivaAdministration.java @@ -25,10 +25,10 @@ import org.apache.archiva.admin.repository.RepositoryAdminException; import org.apache.archiva.audit.AuditEvent; import org.apache.commons.lang.StringUtils; import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.RepositoryScanningConfiguration; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -78,27 +78,6 @@ public class DefaultArchivaAdministration triggerAuditEvent( "", "", AuditEvent.REMOVE_LEGACY_PATH, auditInformation ); } - public void updateRepositoryScanning( RepositoryScanning repositoryScanning, AuditInformation auditInformation ) - throws RepositoryAdminException - { - Configuration configuration = getArchivaConfiguration().getConfiguration(); - - configuration.setRepositoryScanning( - new BeanReplicator().replicateBean( repositoryScanning, RepositoryScanningConfiguration.class ) ); - - saveConfiguration( configuration ); - } - - public RepositoryScanning getRepositoryScanning() - throws RepositoryAdminException - { - - RepositoryScanning repositoryScanning = - new BeanReplicator().replicateBean( getArchivaConfiguration().getConfiguration().getRepositoryScanning(), - RepositoryScanning.class ) - - return repositoryScanning; - } public void addFileTypePattern( String fileTypeId, String pattern, AuditInformation auditInformation ) throws RepositoryAdminException @@ -242,6 +221,37 @@ public class DefaultArchivaAdministration } } + public List getFileTypes() + throws RepositoryAdminException + { + List configFileTypes = + getArchivaConfiguration().getConfiguration().getRepositoryScanning().getFileTypes(); + if ( configFileTypes == null || configFileTypes.isEmpty() ) + { + return Collections.emptyList(); + } + List fileTypes = new ArrayList(); + for ( org.apache.maven.archiva.configuration.FileType fileType : configFileTypes ) + { + fileTypes.add( new BeanReplicator().replicateBean( fileType, FileType.class ) ); + } + return fileTypes; + } + + public List getKnownContentConsumers() + throws RepositoryAdminException + { + return new ArrayList( + getArchivaConfiguration().getConfiguration().getRepositoryScanning().getKnownContentConsumers() ); + } + + public List getInvalidContentConsumers() + throws RepositoryAdminException + { + return new ArrayList( + getArchivaConfiguration().getConfiguration().getRepositoryScanning().getInvalidContentConsumers() ); + } + //------------------------- // //------------------------- @@ -257,4 +267,5 @@ public class DefaultArchivaAdministration } return null; } + } diff --git a/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/admin/ArchivaAdministrationTest.java b/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/admin/ArchivaAdministrationTest.java index 85e381d17..d9d1d03ba 100644 --- a/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/admin/ArchivaAdministrationTest.java +++ b/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/admin/ArchivaAdministrationTest.java @@ -69,7 +69,7 @@ public class ArchivaAdministrationTest public void addAndUpdateAndDeleteFileType() throws RepositoryAdminException { - int initialSize = archivaAdministration.getRepositoryScanning().getFileTypes().size(); + int initialSize = archivaAdministration.getFileTypes().size(); FileType fileType = new FileType(); fileType.setId( "foo" ); @@ -77,11 +77,11 @@ public class ArchivaAdministrationTest archivaAdministration.addFileType( fileType, getFakeAuditInformation() ); - assertEquals( initialSize + 1, archivaAdministration.getRepositoryScanning().getFileTypes().size() ); + assertEquals( initialSize + 1, archivaAdministration.getFileTypes().size() ); archivaAdministration.addFileTypePattern( "foo", "zorro", getFakeAuditInformation() ); - assertEquals( initialSize + 1, archivaAdministration.getRepositoryScanning().getFileTypes().size() ); + assertEquals( initialSize + 1, archivaAdministration.getFileTypes().size() ); assertEquals( 3, archivaAdministration.getFileType( "foo" ).getPatterns().size() ); @@ -91,7 +91,7 @@ public class ArchivaAdministrationTest archivaAdministration.removeFileTypePattern( "foo", "zorro", getFakeAuditInformation() ); - assertEquals( initialSize + 1, archivaAdministration.getRepositoryScanning().getFileTypes().size() ); + assertEquals( initialSize + 1, archivaAdministration.getFileTypes().size() ); assertEquals( 2, archivaAdministration.getFileType( "foo" ).getPatterns().size() ); @@ -101,7 +101,7 @@ public class ArchivaAdministrationTest archivaAdministration.removeFileType( "foo", getFakeAuditInformation() ); - assertEquals( initialSize, archivaAdministration.getRepositoryScanning().getFileTypes().size() ); + assertEquals( initialSize, archivaAdministration.getFileTypes().size() ); assertNull( archivaAdministration.getFileType( "foo" ) ); mockAuditListener.clearEvents(); } @@ -110,27 +110,23 @@ public class ArchivaAdministrationTest public void knownContentConsumersTest() throws Exception { - int initialSize = archivaAdministration.getRepositoryScanning().getKnownContentConsumers().size(); + int initialSize = archivaAdministration.getKnownContentConsumers().size(); archivaAdministration.addKnownContentConsumer( "foo", getFakeAuditInformation() ); - assertEquals( initialSize + 1, - archivaAdministration.getRepositoryScanning().getKnownContentConsumers().size() ); - assertTrue( archivaAdministration.getRepositoryScanning().getKnownContentConsumers().contains( "foo" ) ); + assertEquals( initialSize + 1, archivaAdministration.getKnownContentConsumers().size() ); + assertTrue( archivaAdministration.getKnownContentConsumers().contains( "foo" ) ); // ensure we don't add it twice as it's an ArrayList as storage archivaAdministration.addKnownContentConsumer( "foo", getFakeAuditInformation() ); - assertEquals( initialSize + 1, - archivaAdministration.getRepositoryScanning().getKnownContentConsumers().size() ); - assertTrue( archivaAdministration.getRepositoryScanning().getKnownContentConsumers().contains( "foo" ) ); + assertEquals( initialSize + 1, archivaAdministration.getKnownContentConsumers().size() ); + assertTrue( archivaAdministration.getKnownContentConsumers().contains( "foo" ) ); archivaAdministration.removeKnownContentConsumer( "foo", getFakeAuditInformation() ); - - assertEquals( initialSize , - archivaAdministration.getRepositoryScanning().getKnownContentConsumers().size() ); - assertFalse( archivaAdministration.getRepositoryScanning().getKnownContentConsumers().contains( "foo" ) ); + assertEquals( initialSize, archivaAdministration.getKnownContentConsumers().size() ); + assertFalse( archivaAdministration.getKnownContentConsumers().contains( "foo" ) ); assertEquals( 2, mockAuditListener.getAuditEvents().size() ); assertEquals( AuditEvent.ENABLE_REPO_CONSUMER, mockAuditListener.getAuditEvents().get( 0 ).getAction() ); @@ -144,25 +140,23 @@ public class ArchivaAdministrationTest public void invalidContentConsumersTest() throws Exception { - int initialSize = archivaAdministration.getRepositoryScanning().getInvalidContentConsumers().size(); + int initialSize = archivaAdministration.getInvalidContentConsumers().size(); archivaAdministration.addInvalidContentConsumer( "foo", getFakeAuditInformation() ); - assertEquals( initialSize + 1, - archivaAdministration.getRepositoryScanning().getInvalidContentConsumers().size() ); - assertTrue( archivaAdministration.getRepositoryScanning().getInvalidContentConsumers().contains( "foo" ) ); + assertEquals( initialSize + 1, archivaAdministration.getInvalidContentConsumers().size() ); + assertTrue( archivaAdministration.getInvalidContentConsumers().contains( "foo" ) ); // ensure we don't add it twice as it's an ArrayList as storage archivaAdministration.addInvalidContentConsumer( "foo", getFakeAuditInformation() ); - assertEquals( initialSize + 1, - archivaAdministration.getRepositoryScanning().getInvalidContentConsumers().size() ); - assertTrue( archivaAdministration.getRepositoryScanning().getInvalidContentConsumers().contains( "foo" ) ); + assertEquals( initialSize + 1, archivaAdministration.getInvalidContentConsumers().size() ); + assertTrue( archivaAdministration.getInvalidContentConsumers().contains( "foo" ) ); archivaAdministration.removeInvalidContentConsumer( "foo", getFakeAuditInformation() ); - assertEquals( initialSize, archivaAdministration.getRepositoryScanning().getInvalidContentConsumers().size() ); - assertFalse( archivaAdministration.getRepositoryScanning().getInvalidContentConsumers().contains( "foo" ) ); + assertEquals( initialSize, archivaAdministration.getInvalidContentConsumers().size() ); + assertFalse( archivaAdministration.getInvalidContentConsumers().contains( "foo" ) ); assertEquals( 2, mockAuditListener.getAuditEvents().size() ); assertEquals( AuditEvent.ENABLE_REPO_CONSUMER, mockAuditListener.getAuditEvents().get( 0 ).getAction() ); diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/ArchivaAdministrationService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/ArchivaAdministrationService.java index 6f24e382d..81912a8a7 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/ArchivaAdministrationService.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/ArchivaAdministrationService.java @@ -20,7 +20,6 @@ package org.apache.archiva.rest.api.services; import org.apache.archiva.rest.api.model.FileType; import org.apache.archiva.rest.api.model.LegacyArtifactPath; -import org.apache.archiva.rest.api.model.RepositoryScanning; import org.apache.archiva.security.common.ArchivaRoleConstants; import org.codehaus.plexus.redback.authorization.RedbackAuthorization; @@ -62,20 +61,6 @@ public interface ArchivaAdministrationService Boolean deleteLegacyArtifactPath( @QueryParam( "path" ) String path ) throws ArchivaRestServiceException; - @Path( "getRepositoryScanning" ) - @GET - @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } ) - @RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION ) - RepositoryScanning getRepositoryScanning() - throws ArchivaRestServiceException; - - @Path( "updateRepositoryScanning" ) - @POST - @Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } ) - @RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION ) - void updateRepositoryScanning( RepositoryScanning repositoryScanning ) - throws ArchivaRestServiceException; - @Path( "addFileTypePattern" ) @GET @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } ) @@ -95,7 +80,7 @@ public interface ArchivaAdministrationService @GET @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } ) @RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION ) - FileType getFileType( String fileTypeId ) + FileType getFileType( @QueryParam( "fileTypeId" ) String fileTypeId ) throws ArchivaRestServiceException; @Path( "addFileType" ) @@ -131,14 +116,14 @@ public interface ArchivaAdministrationService @GET @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } ) @RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION ) - Boolean removeKnownContentConsumer( @QueryParam( "knownContentConsumer" ) String knownContentConsumer ) + Boolean removeKnownContentConsumer( @QueryParam( "knownContentConsumer" ) String knownContentConsumer ) throws ArchivaRestServiceException; @Path( "addInvalidContentConsumer" ) @GET @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } ) @RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION ) - Boolean addInvalidContentConsumer(@QueryParam( "invalidContentConsumer" ) String invalidContentConsumer ) + Boolean addInvalidContentConsumer( @QueryParam( "invalidContentConsumer" ) String invalidContentConsumer ) throws ArchivaRestServiceException; @Path( "setInvalidContentConsumers" ) @@ -152,6 +137,27 @@ public interface ArchivaAdministrationService @GET @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } ) @RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION ) - Boolean removeInvalidContentConsumer(@QueryParam( "invalidContentConsumer" ) String invalidContentConsumer ) + Boolean removeInvalidContentConsumer( @QueryParam( "invalidContentConsumer" ) String invalidContentConsumer ) + throws ArchivaRestServiceException; + + @Path( "getFileTypes" ) + @GET + @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } ) + @RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION ) + List getFileTypes() + throws ArchivaRestServiceException; + + @Path( "getKnownContentConsumers" ) + @GET + @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } ) + @RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION ) + List getKnownContentConsumers() + throws ArchivaRestServiceException; + + @Path( "getInvalidContentConsumers" ) + @GET + @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } ) + @RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION ) + List getInvalidContentConsumers() throws ArchivaRestServiceException; } diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/pom.xml b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/pom.xml index ed2191792..0f19a4681 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/pom.xml +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/pom.xml @@ -41,6 +41,11 @@ org.apache.archiva archiva-repository-admin + + org.apache.archiva + archiva-configuration + runtime + org.apache.archiva audit diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaAdministrationService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaAdministrationService.java index 6aa60ea19..89ffb59b0 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaAdministrationService.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaAdministrationService.java @@ -18,19 +18,18 @@ package org.apache.archiva.rest.services; * under the License. */ -import net.sf.beanlib.provider.BeanTransformer; import net.sf.beanlib.provider.replicator.BeanReplicator; import org.apache.archiva.admin.repository.RepositoryAdminException; import org.apache.archiva.admin.repository.admin.ArchivaAdministration; import org.apache.archiva.rest.api.model.FileType; import org.apache.archiva.rest.api.model.LegacyArtifactPath; -import org.apache.archiva.rest.api.model.RepositoryScanning; import org.apache.archiva.rest.api.services.ArchivaAdministrationService; import org.apache.archiva.rest.api.services.ArchivaRestServiceException; import org.springframework.stereotype.Service; import javax.inject.Inject; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -93,51 +92,6 @@ public class DefaultArchivaAdministrationService } } - public RepositoryScanning getRepositoryScanning() - throws ArchivaRestServiceException - { - try - { - BeanTransformer beanTransformer = new BeanTransformer() - { - @Override - protected T createToInstance( Object from, Class toClass ) - throws InstantiationException, IllegalAccessException, SecurityException, NoSuchMethodException - { - if ( from.getClass().equals( org.apache.maven.archiva.configuration.FileType.class ) ) - { - return (T) new FileType(); - } - return super.createToInstance( from, toClass ); - } - }; - BeanReplicator beanReplicator = new BeanReplicator( beanTransformer ); - - RepositoryScanning repositoryScanning = - beanReplicator.replicateBean( archivaAdministration.getRepositoryScanning(), RepositoryScanning.class ); - - return repositoryScanning; - } - catch ( RepositoryAdminException e ) - { - throw new ArchivaRestServiceException( e.getMessage() ); - } - } - - public void updateRepositoryScanning( RepositoryScanning repositoryScanning ) - throws ArchivaRestServiceException - { - try - { - archivaAdministration.updateRepositoryScanning( new BeanReplicator().replicateBean( getRepositoryScanning(), - org.apache.archiva.admin.repository.admin.RepositoryScanning.class ), - getAuditInformation() ); - } - catch ( RepositoryAdminException e ) - { - throw new ArchivaRestServiceException( e.getMessage() ); - } - } public Boolean addFileTypePattern( String fileTypeId, String pattern ) throws ArchivaRestServiceException @@ -296,4 +250,54 @@ public class DefaultArchivaAdministrationService throw new ArchivaRestServiceException( e.getMessage() ); } } + + public List getFileTypes() + throws ArchivaRestServiceException + { + try + { + List modelfileTypes = + archivaAdministration.getFileTypes(); + if ( modelfileTypes == null || modelfileTypes.isEmpty() ) + { + return Collections.emptyList(); + } + List fileTypes = new ArrayList( modelfileTypes.size() ); + for ( org.apache.archiva.admin.repository.admin.FileType fileType : modelfileTypes ) + { + fileTypes.add( new BeanReplicator().replicateBean( fileType, FileType.class ) ); + } + return fileTypes; + } + catch ( RepositoryAdminException e ) + { + throw new ArchivaRestServiceException( e.getMessage() ); + } + } + + public List getKnownContentConsumers() + throws ArchivaRestServiceException + { + try + { + return new ArrayList( archivaAdministration.getKnownContentConsumers() ); + } + catch ( RepositoryAdminException e ) + { + throw new ArchivaRestServiceException( e.getMessage() ); + } + } + + public List getInvalidContentConsumers() + throws ArchivaRestServiceException + { + try + { + return new ArrayList( archivaAdministration.getInvalidContentConsumers() ); + } + catch ( RepositoryAdminException e ) + { + throw new ArchivaRestServiceException( e.getMessage() ); + } + } } diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java index 5bfec4d46..26048fcff 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java @@ -22,13 +22,9 @@ package org.apache.archiva.rest.services; import org.apache.archiva.admin.repository.managed.ManagedRepositoryAdmin; import org.apache.archiva.metadata.repository.RepositorySessionFactory; import org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager; -import org.apache.archiva.rest.api.model.RemoteRepository; import org.apache.archiva.rest.api.services.RepositoriesService; import org.apache.archiva.scheduler.repository.RepositoryArchivaTaskScheduler; import org.apache.archiva.scheduler.repository.RepositoryTask; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; import org.codehaus.plexus.redback.role.RoleManager; import org.codehaus.plexus.registry.Registry; import org.codehaus.plexus.taskqueue.TaskQueueException; @@ -39,8 +35,6 @@ import org.springframework.stereotype.Service; import javax.inject.Inject; import javax.inject.Named; import javax.ws.rs.PathParam; -import java.util.ArrayList; -import java.util.List; /** * @author Olivier Lamy @@ -53,36 +47,13 @@ public class DefaultRepositoriesService { private Logger log = LoggerFactory.getLogger( getClass() ); - // FIXME duplicate from xmlrpc - // olamy move this to a common remote services api - private static final String REPOSITORY_ID_VALID_EXPRESSION = "^[a-zA-Z0-9._-]+$"; - - private static final String REPOSITORY_NAME_VALID_EXPRESSION = "^([a-zA-Z0-9.)/_(-]|\\s)+$"; - - private static final String REPOSITORY_LOCATION_VALID_EXPRESSION = "^[-a-zA-Z0-9._/~:?!&=\\\\]+$"; - @Inject protected RoleManager roleManager; - @Inject - protected ArchivaConfiguration archivaConfiguration; - @Inject @Named( value = "archivaTaskScheduler#repository" ) private RepositoryArchivaTaskScheduler repositoryTaskScheduler; - @Inject - @Named( value = "commons-configuration" ) - private Registry registry; - - @Inject - private RepositoryStatisticsManager repositoryStatisticsManager; - - @Inject - private RepositorySessionFactory repositorySessionFactory; - - @Inject - private ManagedRepositoryAdmin managedRepositoryAdmin; // FIXME olamy move this to repository admin component ! public Boolean scanRepository( String repositoryId, boolean fullScan ) diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ArchivaAdministrationServiceTest.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ArchivaAdministrationServiceTest.java index 183f9fbf8..32bc95e01 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ArchivaAdministrationServiceTest.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ArchivaAdministrationServiceTest.java @@ -57,16 +57,21 @@ public class ArchivaAdministrationServiceTest public void addAndDeleteFileType() throws Exception { - int initialSize = getArchivaAdministrationService().getRepositoryScanning().getFileTypes().size(); + int initialSize = getArchivaAdministrationService().getFileTypes().size(); FileType fileType = new FileType(); - fileType.setId( "foo" ); + fileType.setId( "footwo" ); fileType.setPatterns( Arrays.asList( "foo", "bar" ) ); getArchivaAdministrationService().addFileType( fileType ); - assertEquals( initialSize + 1, - getArchivaAdministrationService().getRepositoryScanning().getFileTypes().size() ); + assertEquals( initialSize + 1, getArchivaAdministrationService().getFileTypes().size() ); - assertNotNull( getArchivaAdministrationService().getFileType( "foo" ) ); + assertNotNull( getArchivaAdministrationService().getFileType( "footwo" ) ); assertEquals( Arrays.asList( "foo", "bar" ), - getArchivaAdministrationService().getFileType( "foo" ).getPatterns() ); + getArchivaAdministrationService().getFileType( "footwo" ).getPatterns() ); + + getArchivaAdministrationService().removeFileType( "footwo" ); + + assertEquals( initialSize , getArchivaAdministrationService().getFileTypes().size() ); + + assertNull( getArchivaAdministrationService().getFileType( "footwo" ) ); } } diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java index 759f66930..29f122b04 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java @@ -191,20 +191,20 @@ public class RepositoryScanningAction public void prepare() throws Exception { - RepositoryScanning reposcanning = archivaAdministration.getRepositoryScanning(); + FiletypeToMapClosure filetypeToMapClosure = new FiletypeToMapClosure(); - CollectionUtils.forAllDo( reposcanning.getFileTypes(), filetypeToMapClosure ); + CollectionUtils.forAllDo( archivaAdministration.getFileTypes(), filetypeToMapClosure ); fileTypeMap = filetypeToMapClosure.getMap(); AddAdminRepoConsumerClosure addAdminRepoConsumer = - new AddAdminRepoConsumerClosure( reposcanning.getKnownContentConsumers() ); + new AddAdminRepoConsumerClosure( archivaAdministration.getKnownContentConsumers() ); CollectionUtils.forAllDo( repoconsumerUtil.getAvailableKnownConsumers(), addAdminRepoConsumer ); this.knownContentConsumers = addAdminRepoConsumer.getList(); Collections.sort( knownContentConsumers, AdminRepositoryConsumerComparator.getInstance() ); - addAdminRepoConsumer = new AddAdminRepoConsumerClosure( reposcanning.getInvalidContentConsumers() ); + addAdminRepoConsumer = new AddAdminRepoConsumerClosure( archivaAdministration.getInvalidContentConsumers() ); CollectionUtils.forAllDo( repoconsumerUtil.getAvailableInvalidConsumers(), addAdminRepoConsumer ); this.invalidContentConsumers = addAdminRepoConsumer.getList(); Collections.sort( invalidContentConsumers, AdminRepositoryConsumerComparator.getInstance() ); @@ -229,7 +229,7 @@ public class RepositoryScanningAction try { - List oldConsumers = getArchivaAdministration().getRepositoryScanning().getInvalidContentConsumers(); + List oldConsumers = getArchivaAdministration().getInvalidContentConsumers(); if ( enabledInvalidContentConsumers != null ) { @@ -270,7 +270,7 @@ public class RepositoryScanningAction try { - List oldConsumers = getArchivaAdministration().getRepositoryScanning().getKnownContentConsumers(); + List oldConsumers = getArchivaAdministration().getKnownContentConsumers(); if ( enabledKnownContentConsumers != null ) { -- 2.39.5