Adapting the web modules to the new repository api
Project: http://git-wip-us.apache.org/repos/asf/archiva/repo Commit: http://git-wip-us.apache.org/repos/asf/archiva/commit/d6120d6c Tree: http://git-wip-us.apache.org/repos/asf/archiva/tree/d6120d6c Diff: http://git-wip-us.apache.org/repos/asf/archiva/diff/d6120d6c Branch: refs/heads/master Commit: d6120d6c22acd9996531716ae77806795277c9c7 Parents: 32ff2ca Author: Martin Stockhammer <[email protected]> Authored: Wed Nov 1 15:39:07 2017 +0100 Committer: Martin Stockhammer <[email protected]> Committed: Wed Nov 1 15:39:07 2017 +0100 ---------------------------------------------------------------------- .../api/model/RepositoryScannerStatistics.java | 2 + .../archiva-rest/archiva-rest-services/pom.xml | 1 - .../rest/services/AbstractRestService.java | 14 +- .../rest/services/DefaultBrowseService.java | 43 +++-- .../services/DefaultRepositoriesService.java | 48 +++-- .../services/DefaultSystemStatusService.java | 16 +- .../rest/services/AbstractArchivaRestTest.java | 5 +- .../services/RemoteRepositoriesServiceTest.java | 7 +- .../rest/services/RepositoriesServiceTest.java | 3 +- .../resources/META-INF/spring-context-test.xml | 5 +- .../archiva/security/AbstractSecurityTest.java | 5 + .../archiva/security/mock/MockBeanServices.java | 2 +- .../src/test/resources/spring-context.xml | 3 + .../MockInvalidRepositoryContentConsumer.java | 2 +- .../org/apache/archiva/i18n/default.properties | 6 +- .../DownloadArtifactFromQueryTest.java | 3 +- .../DownloadMergedIndexNonDefaultPathTest.java | 7 +- .../remotedownload/DownloadMergedIndexTest.java | 7 +- .../remotedownload/DownloadSnapshotTest.java | 3 +- .../RemoteRepositoryConnectivityCheckTest.java | 3 +- .../spring-context-artifacts-download.xml | 5 + .../spring-context-merge-index-download.xml | 4 + .../resources/spring-context-rss-servlet.xml | 6 +- .../resources/spring-context-test-common.xml | 4 +- .../test/resources/spring-context-with-jcr.xml | 4 + .../admin/repository/maven2/repositories.js | 10 +- .../js/templates/archiva/repositories.html | 14 +- .../archiva/webdav/ArchivaDavResource.java | 30 ++- .../webdav/ArchivaDavResourceFactory.java | 187 +++++++++---------- .../archiva/webdav/RepositoryServlet.java | 2 +- .../AbstractRepositoryServletTestCase.java | 7 + .../webdav/ArchivaDavResourceFactoryTest.java | 37 +++- .../apache/archiva/webdav/DavResourceTest.java | 19 +- .../RepositoryServletRepositoryGroupTest.java | 1 + .../webdav/RepositoryServletSecurityTest.java | 5 + .../src/test/resources/repository-archiva.xml | 2 +- .../spring-context-servlet-security-test.xml | 5 +- .../src/test/resources/spring-context.xml | 5 +- 38 files changed, 328 insertions(+), 204 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/RepositoryScannerStatistics.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/RepositoryScannerStatistics.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/RepositoryScannerStatistics.java index b6143ac..5115f1a 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/RepositoryScannerStatistics.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/RepositoryScannerStatistics.java @@ -18,6 +18,8 @@ package org.apache.archiva.rest.api.model; * under the License. */ + + import org.apache.archiva.admin.model.beans.ManagedRepository; import javax.xml.bind.annotation.XmlRootElement; http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/pom.xml ---------------------------------------------------------------------- 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 fd293fa..c3c8a2f 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 @@ -55,7 +55,6 @@ <dependency> <groupId>org.apache.archiva</groupId> <artifactId>archiva-configuration</artifactId> - <scope>runtime</scope> </dependency> <dependency> <groupId>org.apache.archiva</groupId> http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/AbstractRestService.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/AbstractRestService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/AbstractRestService.java index 3089024..4dacc86 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/AbstractRestService.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/AbstractRestService.java @@ -37,8 +37,11 @@ import org.apache.archiva.redback.configuration.UserConfigurationKeys; import org.apache.archiva.redback.rest.services.RedbackAuthenticationThreadLocal; import org.apache.archiva.redback.rest.services.RedbackRequestInformation; import org.apache.archiva.redback.users.User; +import org.apache.archiva.repository.ManagedRepository; +import org.apache.archiva.repository.ManagedRepositoryContent; import org.apache.archiva.repository.RepositoryContentFactory; import org.apache.archiva.repository.RepositoryException; +import org.apache.archiva.repository.RepositoryRegistry; import org.apache.archiva.repository.events.AuditListener; import org.apache.archiva.rest.api.services.ArchivaRestServiceException; import org.apache.archiva.rest.services.utils.ArtifactBuilder; @@ -99,6 +102,9 @@ public abstract class AbstractRestService protected ManagedRepositoryAdmin managedRepositoryAdmin; @Inject + protected RepositoryRegistry repositoryRegistry; + + @Inject protected RepositoryContentFactory repositoryContentFactory; @Inject @@ -322,10 +328,14 @@ public abstract class AbstractRestService if ( repoId == null ) { throw new IllegalStateException( "Repository Id is null" ); } - + ManagedRepository repo = repositoryRegistry.getManagedRepository( repoId ); + if (repo==null) { + throw new RepositoryException( "Repository not found "+repoId ); + } + ManagedRepositoryContent content = repo.getContent( ); ArtifactBuilder builder = new ArtifactBuilder().forArtifactMetadata( artifact ).withManagedRepositoryContent( - repositoryContentFactory.getManagedRepositoryContent( repoId ) ); + content ); Artifact art = builder.build(); art.setUrl( getArtifactUrl( art, repositoryId ) ); artifacts.add( art ); http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java index aad3f28..2a87462 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java @@ -42,6 +42,7 @@ import org.apache.archiva.repository.ManagedRepositoryContent; import org.apache.archiva.repository.RepositoryContentFactory; import org.apache.archiva.repository.RepositoryException; import org.apache.archiva.repository.RepositoryNotFoundException; +import org.apache.archiva.repository.RepositoryRegistry; import org.apache.archiva.repository.metadata.MetadataTools; import org.apache.archiva.rest.api.model.*; import org.apache.archiva.rest.api.services.ArchivaRestServiceException; @@ -83,9 +84,6 @@ public class DefaultBrowseService private DependencyTreeBuilder dependencyTreeBuilder; @Inject - private RepositoryContentFactory repositoryContentFactory; - - @Inject @Named( value = "repositoryProxyConnectors#default" ) private RepositoryProxyConnectors connectors; @@ -93,6 +91,15 @@ public class DefaultBrowseService @Named( value = "browse#versionMetadata" ) private Cache<String, ProjectVersionMetadata> versionMetadataCache; + private ManagedRepositoryContent getManagedRepositoryContent(String id) throws RepositoryException + { + org.apache.archiva.repository.ManagedRepository repo = repositoryRegistry.getManagedRepository( id ); + if (repo==null) { + throw new RepositoryException( "Could not find repository "+id ); + } + return repo.getContent(); + } + @Override public BrowseResult getRootGroups( String repositoryId ) throws ArchivaRestServiceException @@ -687,7 +694,7 @@ public class DefaultBrowseService { ManagedRepositoryContent managedRepositoryContent = - repositoryContentFactory.getManagedRepositoryContent( repoId ); + getManagedRepositoryContent( repoId ); ArchivaArtifact archivaArtifact = new ArchivaArtifact( groupId, artifactId, version, classifier, StringUtils.isEmpty( type ) ? "jar" : type, repoId ); @@ -763,8 +770,16 @@ public class DefaultBrowseService for ( String repoId : selectedRepos ) { - ManagedRepositoryContent managedRepositoryContent = - repositoryContentFactory.getManagedRepositoryContent( repoId ); + ManagedRepositoryContent managedRepositoryContent = null; + try + { + managedRepositoryContent = getManagedRepositoryContent( repoId ); + } + catch ( RepositoryException e ) + { + log.error("No repository content found for "+repoId); + continue; + } ArchivaArtifact archivaArtifact = new ArchivaArtifact( groupId, artifactId, version, classifier, StringUtils.isEmpty( type ) ? "jar" : type, repoId ); @@ -797,18 +812,6 @@ public class DefaultBrowseService throw new ArchivaRestServiceException( e.getMessage(), Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), e ); } - catch ( RepositoryNotFoundException e ) - { - log.error( e.getMessage(), e ); - throw new ArchivaRestServiceException( e.getMessage(), - Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), e ); - } - catch ( RepositoryException e ) - { - log.error( e.getMessage(), e ); - throw new ArchivaRestServiceException( e.getMessage(), - Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), e ); - } log.debug( "artifact: {}:{}:{}:{}:{} not found", groupId, artifactId, version, classifier, type ); // 404 ? return new ArtifactContent(); @@ -835,8 +838,8 @@ public class DefaultBrowseService { continue; } - ManagedRepositoryContent managedRepositoryContent = - repositoryContentFactory.getManagedRepositoryContent( repoId ); + ManagedRepositoryContent managedRepositoryContent = getManagedRepositoryContent( repoId ); + // FIXME default to jar which can be wrong for war zip etc.... ArchivaArtifact archivaArtifact = new ArchivaArtifact( groupId, artifactId, version, StringUtils.isEmpty( classifier ) http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java ---------------------------------------------------------------------- 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 697cadc..155546d 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 @@ -48,6 +48,7 @@ import org.apache.archiva.redback.users.User; import org.apache.archiva.redback.users.UserManagerException; import org.apache.archiva.redback.users.UserNotFoundException; import org.apache.archiva.repository.*; +import org.apache.archiva.repository.content.maven2.ManagedDefaultRepositoryContent; import org.apache.archiva.repository.events.RepositoryListener; import org.apache.archiva.repository.metadata.MetadataTools; import org.apache.archiva.repository.metadata.RepositoryMetadataException; @@ -102,6 +103,9 @@ public class DefaultRepositoriesService private ArchivaIndexingTaskExecutor archivaIndexingTaskExecutor; @Inject + private RepositoryRegistry repositoryRegistry; + + @Inject private ManagedRepositoryAdmin managedRepositoryAdmin; @Inject @@ -111,9 +115,6 @@ public class DefaultRepositoriesService private SecuritySystem securitySystem; @Inject - private RepositoryContentFactory repositoryFactory; - - @Inject @Named(value = "archivaTaskScheduler#repository") private ArchivaTaskScheduler scheduler; @@ -180,6 +181,15 @@ public class DefaultRepositoriesService } } + private ManagedRepositoryContent getManagedRepositoryContent(String id) throws RepositoryException + { + org.apache.archiva.repository.ManagedRepository repo = repositoryRegistry.getManagedRepository( id ); + if (repo==null) { + throw new RepositoryException( "Repository not found "+id ); + } + return repo.getContent(); + } + @Override public Boolean scanRepositoryNow( String repositoryId, boolean fullScan ) throws ArchivaRestServiceException @@ -187,7 +197,8 @@ public class DefaultRepositoriesService try { - ManagedRepository repository = managedRepositoryAdmin.getManagedRepository( repositoryId ); + + org.apache.archiva.repository.ManagedRepository repository = repositoryRegistry.getManagedRepository( repositoryId ); IndexingContext context = managedRepositoryAdmin.createIndexContext( repository ); @@ -367,7 +378,7 @@ public class DefaultRepositoriesService { ManagedRepositoryContent sourceRepository = - repositoryFactory.getManagedRepositoryContent( artifactTransferRequest.getRepositoryId() ); + getManagedRepositoryContent( artifactTransferRequest.getRepositoryId() ); String artifactSourcePath = sourceRepository.toPath( artifactReference ); @@ -388,7 +399,7 @@ public class DefaultRepositoriesService } ManagedRepositoryContent targetRepository = - repositoryFactory.getManagedRepositoryContent( artifactTransferRequest.getTargetRepositoryId() ); + getManagedRepositoryContent( artifactTransferRequest.getTargetRepositoryId() ); String artifactPath = targetRepository.toPath( artifactReference ); @@ -646,7 +657,7 @@ public class DefaultRepositoriesService try { - ManagedRepositoryContent repository = repositoryFactory.getManagedRepositoryContent( repositoryId ); + ManagedRepositoryContent repository = getManagedRepositoryContent( repositoryId ); VersionedReference ref = new VersionedReference(); ref.setArtifactId( projectId ); @@ -767,7 +778,7 @@ public class DefaultRepositoriesService ref.setGroupId( artifact.getGroupId() ); ref.setVersion( artifact.getVersion() ); - ManagedRepositoryContent repository = repositoryFactory.getManagedRepositoryContent( repositoryId ); + ManagedRepositoryContent repository = getManagedRepositoryContent( repositoryId ); ArtifactReference artifactReference = new ArtifactReference(); artifactReference.setArtifactId( artifact.getArtifactId() ); @@ -977,7 +988,7 @@ public class DefaultRepositoriesService try { - ManagedRepositoryContent repository = repositoryFactory.getManagedRepositoryContent( repositoryId ); + ManagedRepositoryContent repository = getManagedRepositoryContent( repositoryId ); repository.deleteGroupId( groupId ); @@ -1038,7 +1049,7 @@ public class DefaultRepositoriesService try { - ManagedRepositoryContent repository = repositoryFactory.getManagedRepositoryContent( repositoryId ); + ManagedRepositoryContent repository = getManagedRepositoryContent( repositoryId ); repository.deleteProject( groupId, projectId ); } @@ -1100,18 +1111,13 @@ public class DefaultRepositoriesService long sinceWhen = RepositoryScanner.FRESH_SCAN; try { - return repoScanner.scan( getManagedRepositoryAdmin().getManagedRepository( repositoryId ), sinceWhen ); + return repoScanner.scan( repositoryRegistry.getManagedRepository( repositoryId ), sinceWhen ); } catch ( RepositoryScannerException e ) { log.error( e.getMessage(), e ); throw new ArchivaRestServiceException( "RepositoryScannerException exception: " + e.getMessage(), 500, e ); } - catch ( RepositoryAdminException e ) - { - log.error( e.getMessage(), e ); - throw new ArchivaRestServiceException( "RepositoryScannerException exception: " + e.getMessage(), 500, e ); - } } /** @@ -1191,16 +1197,6 @@ public class DefaultRepositoriesService this.managedRepositoryAdmin = managedRepositoryAdmin; } - public RepositoryContentFactory getRepositoryFactory() - { - return repositoryFactory; - } - - public void setRepositoryFactory( RepositoryContentFactory repositoryFactory ) - { - this.repositoryFactory = repositoryFactory; - } - public RepositorySessionFactory getRepositorySessionFactory() { return repositorySessionFactory; http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSystemStatusService.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSystemStatusService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSystemStatusService.java index 89663e1..ab49702 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSystemStatusService.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSystemStatusService.java @@ -18,6 +18,8 @@ package org.apache.archiva.rest.services; * under the License. */ +import org.apache.archiva.admin.model.RepositoryAdminException; +import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin; import org.apache.archiva.redback.components.cache.Cache; import org.apache.archiva.redback.components.cache.CacheStatistics; import org.apache.archiva.redback.components.taskqueue.TaskQueue; @@ -57,6 +59,8 @@ public class DefaultSystemStatusService private RepositoryScanner scanner; + ManagedRepositoryAdmin managedRepositoryAdmin; + // display spring scheduled //@Inject @Named (value="springScheduler"); @@ -69,6 +73,8 @@ public class DefaultSystemStatusService queues = getBeansOfType( applicationContext, TaskQueue.class ); caches = getBeansOfType( applicationContext, Cache.class ); + + managedRepositoryAdmin = applicationContext.getBean( ManagedRepositoryAdmin.class ); } @Override @@ -178,11 +184,19 @@ public class DefaultSystemStatusService List<RepositoryScannerStatistics> repositoryScannerStatisticsList = new ArrayList<RepositoryScannerStatistics>( repositoryScannerInstances.size() ); + for ( RepositoryScannerInstance instance : repositoryScannerInstances ) { RepositoryScannerStatistics repositoryScannerStatistics = new RepositoryScannerStatistics(); repositoryScannerStatisticsList.add( repositoryScannerStatistics ); - repositoryScannerStatistics.setManagedRepository( instance.getRepository() ); + try + { + repositoryScannerStatistics.setManagedRepository( managedRepositoryAdmin.getManagedRepository( instance.getRepository().getId()) ); + } + catch ( RepositoryAdminException e ) + { + log.error("Could not retrieve repository '{}'", instance.getRepository().getId()); + } repositoryScannerStatistics.setNewFileCount( instance.getStats().getNewFileCount() ); repositoryScannerStatistics.setTotalFileCount( instance.getStats().getTotalFileCount() ); repositoryScannerStatistics.setConsumerScanningStatistics( mapConsumerScanningStatistics( instance ) ); http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java index 22e599b..c055aee 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java @@ -43,6 +43,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Collections; import java.util.Date; +import java.util.Locale; /** * @author Olivier Lamy @@ -320,7 +321,7 @@ public abstract class AbstractArchivaRestTest protected ManagedRepository getTestManagedRepository() { String location = Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/test-repo" ).toAbsolutePath().toString(); - return new ManagedRepository( "TEST", "test", location, "default", true, true, false, "2 * * * * ?", null, + return new ManagedRepository( Locale.getDefault(), "TEST", "test", location, "default", true, true, false, "2 * * * * ?", null, false, 2, 3, true, false, "my nice repo", false ); } @@ -429,7 +430,7 @@ public abstract class AbstractArchivaRestTest getManagedRepositoriesService( authorizationHeader ).deleteManagedRepository( testRepoId, false ); } - ManagedRepository managedRepository = new ManagedRepository(); + ManagedRepository managedRepository = new ManagedRepository(Locale.getDefault()); managedRepository.setId( testRepoId ); managedRepository.setName( "test repo" ); http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RemoteRepositoriesServiceTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RemoteRepositoriesServiceTest.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RemoteRepositoriesServiceTest.java index d3d6672..77605ed 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RemoteRepositoriesServiceTest.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RemoteRepositoriesServiceTest.java @@ -26,6 +26,7 @@ import org.junit.Test; import javax.ws.rs.ForbiddenException; import java.util.List; +import java.util.Locale; /** * @author Olivier Lamy @@ -201,21 +202,21 @@ public class RemoteRepositoriesServiceTest RemoteRepository getRemoteRepository() { - return new RemoteRepository( "id-new", "new one", "http://foo.com", "default", "foo", "foopassword", 120, + return new RemoteRepository( Locale.getDefault( ), "id-new", "new one", "http://foo.com", "default", "foo", "foopassword", 120, "cool repo" ); } RemoteRepository getRemoteMavenRepository() { - return new RemoteRepository( "id-maven1", "Maven1", "http://repo.maven.apache.org/maven2", "default", "foo", "foopassword", 120, + return new RemoteRepository( Locale.getDefault( ),"id-maven1", "Maven1", "http://repo.maven.apache.org/maven2", "default", "foo", "foopassword", 120, "cool repo3" ); } RemoteRepository getRemoteOracleRepository() { - return new RemoteRepository( "id-oracle", "Oracle", "http://download.oracle.com/maven", "default", "foo", "foopassword", 120, + return new RemoteRepository( Locale.getDefault( ),"id-oracle", "Oracle", "http://download.oracle.com/maven", "default", "foo", "foopassword", 120, "cool repo4" ); } http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java index 934bfc6..de7df45 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java @@ -37,6 +37,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; +import java.util.Locale; import static org.assertj.core.api.Assertions.assertThat; @@ -544,7 +545,7 @@ public class RepositoriesServiceTest protected ManagedRepository getTestManagedRepository( String id, String path ) { String location = Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/" + path ).toAbsolutePath().toString(); - return new ManagedRepository( id, id, location, "default", true, true, true, "2 * * * * ?", null, false, 80, 80, + return new ManagedRepository( Locale.getDefault(), id, id, location, "default", true, true, true, "2 * * * * ?", null, false, 80, 80, true, false ); } http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/resources/META-INF/spring-context-test.xml ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/resources/META-INF/spring-context-test.xml b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/resources/META-INF/spring-context-test.xml index 8e0df07..d77b845 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/resources/META-INF/spring-context-test.xml +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/resources/META-INF/spring-context-test.xml @@ -32,7 +32,10 @@ <context:annotation-config/> <context:component-scan - base-package="org.apache.archiva.redback.keys,org.apache.archiva.rest.services.utils"/> + base-package="org.apache.archiva.redback.keys,org.apache.archiva.rest.services.utils,org.apache.archiva.repository.content.maven2"/> + + <alias name="managedRepositoryContent#maven" alias="managedRepositoryContent#default" /> + <alias name="remoteRepositoryContent#maven" alias="remoteRepositoryContent#default" /> <bean name="scheduler" class="org.apache.archiva.redback.components.scheduler.DefaultScheduler"> <property name="properties"> http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/archiva/security/AbstractSecurityTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/archiva/security/AbstractSecurityTest.java b/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/archiva/security/AbstractSecurityTest.java index 0d61740..25b0ed6 100644 --- a/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/archiva/security/AbstractSecurityTest.java +++ b/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/archiva/security/AbstractSecurityTest.java @@ -32,6 +32,7 @@ import org.apache.archiva.redback.system.SecuritySystem; import org.apache.archiva.redback.users.User; import org.apache.archiva.redback.users.UserManager; import org.apache.archiva.redback.users.UserManagerException; +import org.apache.archiva.repository.RepositoryRegistry; import org.apache.archiva.security.common.ArchivaRoleConstants; import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; import org.apache.commons.io.FileUtils; @@ -80,6 +81,9 @@ public abstract class AbstractSecurityTest private ArchivaConfiguration archivaConfiguration; @Inject + private RepositoryRegistry repositoryRegistry; + + @Inject protected UserRepositories userRepos; protected void setupRepository( String repoId ) @@ -94,6 +98,7 @@ public abstract class AbstractSecurityTest { archivaConfiguration.getConfiguration().addManagedRepository( repoConfig ); } + repositoryRegistry.reload(); // Add repo roles to security. userRepos.createMissingRepositoryRoles( repoId ); http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/archiva/security/mock/MockBeanServices.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/archiva/security/mock/MockBeanServices.java b/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/archiva/security/mock/MockBeanServices.java index d513a35..9480019 100644 --- a/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/archiva/security/mock/MockBeanServices.java +++ b/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/archiva/security/mock/MockBeanServices.java @@ -156,7 +156,7 @@ public class MockBeanServices } @Override - public String getFilePath( String requestPath, ManagedRepository managedRepository ) + public String getFilePath( String requestPath, org.apache.archiva.repository.ManagedRepository managedRepository ) { return null; } http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-security/src/test/resources/spring-context.xml ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-security/src/test/resources/spring-context.xml b/archiva-modules/archiva-web/archiva-security/src/test/resources/spring-context.xml index 6965148..fcc22ae 100644 --- a/archiva-modules/archiva-web/archiva-security/src/test/resources/spring-context.xml +++ b/archiva-modules/archiva-web/archiva-security/src/test/resources/spring-context.xml @@ -27,6 +27,9 @@ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd" default-lazy-init="true"> + <alias name="managedRepositoryContent#maven" alias="managedRepositoryContent#default" /> + <alias name="remoteRepositoryContent#maven" alias="remoteRepositoryContent#default" /> + <bean name="securitySystem#testable" class="org.apache.archiva.redback.system.DefaultSecuritySystem"> <property name="userManager" ref="userManager#memory"/> <property name="keyManager" ref="keyManager#memory"/> http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-test-mocks/src/main/java/org/apache/archiva/web/mocks/MockInvalidRepositoryContentConsumer.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-test-mocks/src/main/java/org/apache/archiva/web/mocks/MockInvalidRepositoryContentConsumer.java b/archiva-modules/archiva-web/archiva-test-mocks/src/main/java/org/apache/archiva/web/mocks/MockInvalidRepositoryContentConsumer.java index e3981bc..f517957 100644 --- a/archiva-modules/archiva-web/archiva-test-mocks/src/main/java/org/apache/archiva/web/mocks/MockInvalidRepositoryContentConsumer.java +++ b/archiva-modules/archiva-web/archiva-test-mocks/src/main/java/org/apache/archiva/web/mocks/MockInvalidRepositoryContentConsumer.java @@ -18,10 +18,10 @@ package org.apache.archiva.web.mocks; * under the License. */ -import org.apache.archiva.admin.model.beans.ManagedRepository; import org.apache.archiva.consumers.ConsumerException; import org.apache.archiva.consumers.ConsumerMonitor; import org.apache.archiva.consumers.InvalidRepositoryContentConsumer; +import org.apache.archiva.repository.ManagedRepository; import org.springframework.stereotype.Service; import java.util.Date; http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties b/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties index 666d997..bbaf02d 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties +++ b/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties @@ -84,7 +84,7 @@ index.directory=Index Directory retentionCount=Retention Count snapshots=Snapshots blockRedeployments=Block Redeployments -retentionTime=Days Older +retentionPeriod=Days Older cronExpression=Cron Expression cronExpression.help.title=Cron Expression Format cronExpression.help.content= Quartz cron is used. Documentation is: <a target="_blank" href="http://quartz-scheduler.org/documentation/quartz-2.1.x/cookbook/">here</a> @@ -129,8 +129,8 @@ managedRepository.location.help.title=Location managedRepository.location.help.content=Location on File System (can be relative to Archiva base directory or absolute path) managedRepository.indexDirectory.help.title=Index Directory managedRepository.indexDirectory.help.content=Path to the Maven Index directory -managedRepository.retentionTime.help.title=Days Older -managedRepository.retentionTime.help.content=For snapshots repositories, maximum file days age you want to keep +managedRepository.retentionPeriod.help.title=Days Older +managedRepository.retentionPeriod.help.content=For snapshots repositories, maximum file days age you want to keep managedRepository.retentionCount.help.title=Retention Count managedRepository.retentionCount.help.content=For snapshots repositories, maximum of files you want to keep. managedRepository.description.help.content=A free description for your repository http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadArtifactFromQueryTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadArtifactFromQueryTest.java b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadArtifactFromQueryTest.java index 94a048f..beedae5 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadArtifactFromQueryTest.java +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadArtifactFromQueryTest.java @@ -34,6 +34,7 @@ import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.Locale; /** * @author Olivier Lamy @@ -88,7 +89,7 @@ public class DownloadArtifactFromQueryTest FileUtils.deleteDirectory( tmpIndexDir.toFile() ); } String id = Long.toString( System.currentTimeMillis() ); - ManagedRepository managedRepository = new ManagedRepository(); + ManagedRepository managedRepository = new ManagedRepository( Locale.getDefault()); managedRepository.setId( id ); managedRepository.setName( "name of " + id ); managedRepository.setLocation( System.getProperty( "basedir" ) + "/src/test/repositories/test-repo" ); http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadMergedIndexNonDefaultPathTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadMergedIndexNonDefaultPathTest.java b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadMergedIndexNonDefaultPathTest.java index 0d0bbab..95f56ab 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadMergedIndexNonDefaultPathTest.java +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadMergedIndexNonDefaultPathTest.java @@ -39,6 +39,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Arrays; import java.util.List; +import java.util.Locale; import static org.assertj.core.api.Assertions.assertThat; @@ -92,7 +93,7 @@ public class DownloadMergedIndexNonDefaultPathTest org.apache.archiva.common.utils.FileUtils.deleteDirectory( tmpIndexDir ); } String id = Long.toString( System.currentTimeMillis() ); - ManagedRepository managedRepository = new ManagedRepository(); + ManagedRepository managedRepository = new ManagedRepository( Locale.getDefault()); managedRepository.setId( id ); managedRepository.setName( "name of " + id ); managedRepository.setLocation( System.getProperty( "basedir" ) + "/src/test/repositories/test-repo" ); @@ -138,7 +139,7 @@ public class DownloadMergedIndexNonDefaultPathTest // create a repo with a remote on the one with index id = Long.toString( System.currentTimeMillis() ); - managedRepository = new ManagedRepository(); + managedRepository = new ManagedRepository(Locale.getDefault()); managedRepository.setId( id ); managedRepository.setName( "name of " + id ); managedRepository.setLocation( System.getProperty( "basedir" ) + "/src/test/repositories/test-repo" ); @@ -153,7 +154,7 @@ public class DownloadMergedIndexNonDefaultPathTest String remoteId = Long.toString( System.currentTimeMillis() ); - RemoteRepository remoteRepository = new RemoteRepository(); + RemoteRepository remoteRepository = new RemoteRepository(Locale.getDefault()); remoteRepository.setId( remoteId ); remoteRepository.setName( remoteId ); remoteRepository.setDownloadRemoteIndex( true ); http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadMergedIndexTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadMergedIndexTest.java b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadMergedIndexTest.java index c5cf891..f870d42 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadMergedIndexTest.java +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadMergedIndexTest.java @@ -41,6 +41,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Arrays; import java.util.List; +import java.util.Locale; import static org.assertj.core.api.Assertions.assertThat; @@ -98,7 +99,7 @@ public class DownloadMergedIndexTest FileUtils.deleteDirectory( tmpIndexDir.toFile() ); } String id = Long.toString( System.currentTimeMillis() ); - ManagedRepository managedRepository = new ManagedRepository(); + ManagedRepository managedRepository = new ManagedRepository( Locale.getDefault()); managedRepository.setId( id ); managedRepository.setName( "name of " + id ); managedRepository.setLocation( System.getProperty( "basedir" ) + "/src/test/repositories/test-repo" ); @@ -142,7 +143,7 @@ public class DownloadMergedIndexTest // create a repo with a remote on the one with index id = Long.toString( System.currentTimeMillis() ); - managedRepository = new ManagedRepository(); + managedRepository = new ManagedRepository(Locale.getDefault()); managedRepository.setId( id ); managedRepository.setName( "name of " + id ); managedRepository.setLocation( System.getProperty( "basedir" ) + "/src/test/repositories/test-repo" ); @@ -155,7 +156,7 @@ public class DownloadMergedIndexTest getManagedRepositoriesService().addManagedRepository( managedRepository ); - RemoteRepository remoteRepository = new RemoteRepository(); + RemoteRepository remoteRepository = new RemoteRepository(Locale.getDefault()); remoteRepository.setId( "all-merged" ); remoteRepository.setName( "all-merged" ); remoteRepository.setDownloadRemoteIndex( true ); http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadSnapshotTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadSnapshotTest.java b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadSnapshotTest.java index f5913b7..024e1b8 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadSnapshotTest.java +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/DownloadSnapshotTest.java @@ -38,6 +38,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; +import java.util.Locale; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; @@ -82,7 +83,7 @@ public class DownloadSnapshotTest org.apache.archiva.common.utils.FileUtils.deleteDirectory( tmpIndexDir ); } String id = Long.toString( System.currentTimeMillis() ); - ManagedRepository managedRepository = new ManagedRepository(); + ManagedRepository managedRepository = new ManagedRepository( Locale.getDefault()); managedRepository.setId( id ); managedRepository.setName( "name of " + id ); managedRepository.setLocation( System.getProperty( "basedir" ) + "/src/test/repositories/snapshot-repo" ); http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/RemoteRepositoryConnectivityCheckTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/RemoteRepositoryConnectivityCheckTest.java b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/RemoteRepositoryConnectivityCheckTest.java index 256a9be..e9d156c 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/RemoteRepositoryConnectivityCheckTest.java +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/RemoteRepositoryConnectivityCheckTest.java @@ -36,6 +36,7 @@ import org.junit.Test; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.Locale; import static org.assertj.core.api.Assertions.assertThat; @@ -184,7 +185,7 @@ public class RemoteRepositoryConnectivityCheckTest RemoteRepository getRemoteRepository() { - return new RemoteRepository( "id-new", "new one", "http://foo.com", "default", "foo", "foopassword", 120, + return new RemoteRepository( Locale.getDefault( ), "id-new", "new one", "http://foo.com", "default", "foo", "foopassword", 120, "cool repo" ); } http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-artifacts-download.xml ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-artifacts-download.xml b/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-artifacts-download.xml index 570eeb5..cdec7b4 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-artifacts-download.xml +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-artifacts-download.xml @@ -30,6 +30,11 @@ <context:property-placeholder system-properties-mode="OVERRIDE"/> + <context:component-scan base-package="org.apache.archiva.repository.content.maven2" /> + + <alias name="managedRepositoryContent#maven" alias="managedRepositoryContent#default" /> + <alias name="remoteRepositoryContent#maven" alias="remoteRepositoryContent#default" /> + <bean name="commons-configuration" class="org.apache.archiva.redback.components.registry.commons.CommonsConfigurationRegistry"> <property name="properties"> <value> http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-merge-index-download.xml ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-merge-index-download.xml b/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-merge-index-download.xml index 7a06a88..7388de1 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-merge-index-download.xml +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-merge-index-download.xml @@ -29,6 +29,10 @@ default-lazy-init="true"> <context:property-placeholder system-properties-mode="OVERRIDE"/> + <context:component-scan base-package="org.apache.archiva.repository.content.maven2" /> + + <alias name="managedRepositoryContent#maven" alias="managedRepositoryContent#default" /> + <alias name="remoteRepositoryContent#maven" alias="remoteRepositoryContent#default" /> <bean name="commons-configuration" class="org.apache.archiva.redback.components.registry.commons.CommonsConfigurationRegistry"> http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-rss-servlet.xml ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-rss-servlet.xml b/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-rss-servlet.xml index 5f9f771..e35f0ac 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-rss-servlet.xml +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-rss-servlet.xml @@ -30,7 +30,11 @@ <context:property-placeholder system-properties-mode="OVERRIDE"/> <context:annotation-config/> - <context:component-scan base-package="org.apache.archiva.webtest.memory"/> + <context:component-scan base-package="org.apache.archiva.webtest.memory,org.apache.archiva.repository.content.maven2"/> + + <alias name="managedRepositoryContent#maven" alias="managedRepositoryContent#default" /> + <alias name="remoteRepositoryContent#maven" alias="remoteRepositoryContent#default" /> + <alias name="repositorySessionFactory#test" alias="repositorySessionFactory"/> http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-test-common.xml ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-test-common.xml b/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-test-common.xml index d62446b..d7083d2 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-test-common.xml +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-test-common.xml @@ -29,7 +29,9 @@ <context:annotation-config/> <context:component-scan - base-package="org.apache.archiva.redback.keys,org.apache.archiva.rest.services.utils"/> + base-package="org.apache.archiva.redback.keys,org.apache.archiva.rest.services.utils,org.apache.archiva.repository.content.maven2"/> + <alias name="managedRepositoryContent#maven" alias="managedRepositoryContent#default" /> + <alias name="remoteRepositoryContent#maven" alias="remoteRepositoryContent#default" /> <bean name="scheduler" class="org.apache.archiva.redback.components.scheduler.DefaultScheduler"> <property name="properties"> http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-with-jcr.xml ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-with-jcr.xml b/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-with-jcr.xml index f29dbcb..7eb9645 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-with-jcr.xml +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/resources/spring-context-with-jcr.xml @@ -37,6 +37,10 @@ </bean> --> + <alias name="managedRepositoryContent#maven" alias="managedRepositoryContent#default" /> + <alias name="remoteRepositoryContent#maven" alias="remoteRepositoryContent#default" /> + + <alias name="repositorySessionFactory#jcr" alias="repositorySessionFactory"/> <bean name="TestRepositorySessionFactoryBean" class="org.apache.archiva.TestRepositorySessionFactoryBean"> http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/repository/maven2/repositories.js ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/repository/maven2/repositories.js b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/repository/maven2/repositories.js index 0e70372..b169712 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/repository/maven2/repositories.js +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/repository/maven2/repositories.js @@ -32,7 +32,7 @@ function(jquery,i18n,jqueryTmpl,bootstrap,jqueryValidate,ko) { ]; ManagedRepository=function(id,name,layout,indexDirectory,location,snapshots,releases,blockRedeployments,cronExpression, - scanned,retentionTime,retentionCount,deleteReleasedSnapshots,stageRepoNeeded,description, + scanned,retentionPeriod,retentionCount,deleteReleasedSnapshots,stageRepoNeeded,description, skipPackedIndexCreation,feedsUrl,url){ var self=this; @@ -63,9 +63,9 @@ function(jquery,i18n,jqueryTmpl,bootstrap,jqueryValidate,ko) { //private ManagedRepository stagingRepository; - //private int retentionTime = 100; - this.retentionTime=ko.observable(retentionTime); - this.retentionTime.subscribe(function(newValue){self.modified(true)}); + //private int retentionPeriod = 100; + this.retentionPeriod=ko.observable(retentionPeriod); + this.retentionPeriod.subscribe(function(newValue){self.modified(true)}); //private int retentionCount = 2; this.retentionCount=ko.observable(retentionCount); @@ -167,7 +167,7 @@ function(jquery,i18n,jqueryTmpl,bootstrap,jqueryValidate,ko) { return new ManagedRepository(data.id,data.name,data.layout,data.indexDirectory,data.location,data.snapshots ,data.releases, data.blockRedeployments,data.cronExpression, - data.scanned,data.retentionTime,data.retentionCount,data.deleteReleasedSnapshots, + data.scanned,data.retentionPeriod,data.retentionCount,data.deleteReleasedSnapshots, data.stageRepoNeeded,data.description,data.skipPackedIndexCreation); } http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/repositories.html ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/repositories.html b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/repositories.html index 5629b55..17735c6 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/repositories.html +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/repositories.html @@ -282,14 +282,14 @@ </div> </div> <div class="control-group"> - <label class="control-label" for="retentionTime">${$.i18n.prop('retentionTime')}</label> + <label class="control-label" for="retentionPeriod">${$.i18n.prop('retentionPeriod')}</label> <div class="controls"> - <input type="text" id="retentionTime" class="digits" name="retentionTime" size="5" - data-bind="value: managedRepository.retentionTime"/> - <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-retentionTime-info-button" - data-original-title="${$.i18n.prop('managedRepository.retentionTime.help.title')}" - data-content="${$.i18n.prop('managedRepository.retentionTime.help.content')}"> + <input type="text" id="retentionPeriod" class="digits" name="retentionPeriod" size="5" + data-bind="value: managedRepository.retentionPeriod"/> + <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-retentionPeriod-info-button" + data-original-title="${$.i18n.prop('managedRepository.retentionPeriod.help.title')}" + data-content="${$.i18n.prop('managedRepository.retentionPeriod.help.content')}"> <i class="icon-question-sign icon-white"></i> </a> </div> @@ -604,7 +604,7 @@ <label class="control-label" for="timeout">${$.i18n.prop('timeout')}</label> <div class="controls"> - <input type="text" id="timeout" class="digits" name="retentionTime" size="5" + <input type="text" id="timeout" class="digits" name="retentionPeriod" size="5" data-bind="value: remoteRepository.timeout"/> <a class="btn btn-warning btn-mini popover-doc" id="remoteRepository-timeout-info-button" data-original-title="${$.i18n.prop('remoteRepository.timeout.help.title')}" http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResource.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResource.java b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResource.java index b152e89..c13f039 100644 --- a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResource.java +++ b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResource.java @@ -19,7 +19,6 @@ package org.apache.archiva.webdav; * under the License. */ -import org.apache.archiva.admin.model.beans.ManagedRepository; import org.apache.archiva.common.filelock.FileLockException; import org.apache.archiva.common.filelock.FileLockManager; import org.apache.archiva.common.filelock.FileLockTimeoutException; @@ -35,11 +34,28 @@ import org.apache.archiva.webdav.util.MimeTypes; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.jackrabbit.util.Text; -import org.apache.jackrabbit.webdav.*; +import org.apache.jackrabbit.webdav.DavException; +import org.apache.jackrabbit.webdav.DavResource; +import org.apache.jackrabbit.webdav.DavResourceFactory; +import org.apache.jackrabbit.webdav.DavResourceIterator; +import org.apache.jackrabbit.webdav.DavResourceIteratorImpl; +import org.apache.jackrabbit.webdav.DavResourceLocator; +import org.apache.jackrabbit.webdav.DavServletResponse; +import org.apache.jackrabbit.webdav.DavSession; +import org.apache.jackrabbit.webdav.MultiStatusResponse; import org.apache.jackrabbit.webdav.io.InputContext; import org.apache.jackrabbit.webdav.io.OutputContext; -import org.apache.jackrabbit.webdav.lock.*; -import org.apache.jackrabbit.webdav.property.*; +import org.apache.jackrabbit.webdav.lock.ActiveLock; +import org.apache.jackrabbit.webdav.lock.LockInfo; +import org.apache.jackrabbit.webdav.lock.LockManager; +import org.apache.jackrabbit.webdav.lock.Scope; +import org.apache.jackrabbit.webdav.lock.Type; +import org.apache.jackrabbit.webdav.property.DavProperty; +import org.apache.jackrabbit.webdav.property.DavPropertyName; +import org.apache.jackrabbit.webdav.property.DavPropertyNameSet; +import org.apache.jackrabbit.webdav.property.DavPropertySet; +import org.apache.jackrabbit.webdav.property.DefaultDavProperty; +import org.apache.jackrabbit.webdav.property.ResourceType; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormatter; import org.joda.time.format.ISODateTimeFormat; @@ -80,7 +96,7 @@ public class ArchivaDavResource private String remoteAddr; - private final ManagedRepository repository; + private final org.apache.archiva.repository.ManagedRepository repository; private final MimeTypes mimeTypes; @@ -96,7 +112,7 @@ public class ArchivaDavResource private Logger log = LoggerFactory.getLogger( ArchivaDavResource.class ); - public ArchivaDavResource( String localResource, String logicalResource, ManagedRepository repository, + public ArchivaDavResource( String localResource, String logicalResource, org.apache.archiva.repository.ManagedRepository repository, DavSession session, ArchivaDavResourceLocator locator, DavResourceFactory factory, MimeTypes mimeTypes, List<AuditListener> auditListeners, RepositoryArchivaTaskScheduler scheduler, FileLockManager fileLockManager ) @@ -117,7 +133,7 @@ public class ArchivaDavResource this.fileLockManager = fileLockManager; } - public ArchivaDavResource( String localResource, String logicalResource, ManagedRepository repository, + public ArchivaDavResource( String localResource, String logicalResource, org.apache.archiva.repository.ManagedRepository repository, String remoteAddr, String principal, DavSession session, ArchivaDavResourceLocator locator, DavResourceFactory factory, MimeTypes mimeTypes, List<AuditListener> auditListeners, RepositoryArchivaTaskScheduler scheduler, http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java index 1f5e0be..6774e85 100644 --- a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java +++ b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java @@ -20,7 +20,6 @@ package org.apache.archiva.webdav; */ import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ManagedRepository; import org.apache.archiva.admin.model.beans.RemoteRepository; import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin; import org.apache.archiva.admin.model.remote.RemoteRepositoryAdmin; @@ -32,7 +31,12 @@ import org.apache.archiva.common.utils.PathUtil; import org.apache.archiva.common.utils.VersionUtil; import org.apache.archiva.configuration.ArchivaConfiguration; import org.apache.archiva.configuration.RepositoryGroupConfiguration; -import org.apache.archiva.indexer.merger.*; +import org.apache.archiva.indexer.merger.IndexMerger; +import org.apache.archiva.indexer.merger.IndexMergerException; +import org.apache.archiva.indexer.merger.IndexMergerRequest; +import org.apache.archiva.indexer.merger.MergedRemoteIndexesTask; +import org.apache.archiva.indexer.merger.MergedRemoteIndexesTaskRequest; +import org.apache.archiva.indexer.merger.TemporaryGroupIndex; import org.apache.archiva.indexer.search.RepositorySearch; import org.apache.archiva.maven2.metadata.MavenMetadataReader; import org.apache.archiva.metadata.model.facets.AuditEvent; @@ -52,12 +56,16 @@ import org.apache.archiva.redback.policy.MustChangePasswordException; import org.apache.archiva.redback.system.SecuritySession; import org.apache.archiva.redback.users.User; import org.apache.archiva.redback.users.UserManager; +import org.apache.archiva.repository.ManagedRepository; import org.apache.archiva.repository.ManagedRepositoryContent; +import org.apache.archiva.repository.ReleaseScheme; import org.apache.archiva.repository.RepositoryContentFactory; import org.apache.archiva.repository.RepositoryException; import org.apache.archiva.repository.RepositoryNotFoundException; +import org.apache.archiva.repository.RepositoryRegistry; import org.apache.archiva.repository.content.maven2.RepositoryRequest; import org.apache.archiva.repository.events.AuditListener; +import org.apache.archiva.repository.features.IndexCreationFeature; import org.apache.archiva.repository.layout.LayoutException; import org.apache.archiva.repository.metadata.MetadataTools; import org.apache.archiva.repository.metadata.RepositoryMetadataException; @@ -72,7 +80,13 @@ import org.apache.archiva.xml.XMLException; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.SystemUtils; -import org.apache.jackrabbit.webdav.*; +import org.apache.jackrabbit.webdav.DavException; +import org.apache.jackrabbit.webdav.DavResource; +import org.apache.jackrabbit.webdav.DavResourceFactory; +import org.apache.jackrabbit.webdav.DavResourceLocator; +import org.apache.jackrabbit.webdav.DavServletRequest; +import org.apache.jackrabbit.webdav.DavServletResponse; +import org.apache.jackrabbit.webdav.DavSession; import org.apache.jackrabbit.webdav.lock.LockManager; import org.apache.jackrabbit.webdav.lock.SimpleLockManager; import org.apache.maven.index.context.IndexingContext; @@ -94,7 +108,13 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; /** * @@ -143,6 +163,9 @@ public class ArchivaDavResourceFactory private ManagedRepositoryAdmin managedRepositoryAdmin; @Inject + private RepositoryRegistry repositoryRegistry; + + @Inject private IndexMerger indexMerger; @Inject @@ -283,40 +306,28 @@ public class ArchivaDavResourceFactory archivaLocator.getRepositoryId(), e.getMessage() ); } - ManagedRepositoryContent managedRepositoryContent = null; - try - { - managedRepositoryContent = - repositoryFactory.getManagedRepositoryContent( archivaLocator.getRepositoryId() ); - } - catch ( RepositoryNotFoundException e ) - { + ManagedRepository repo = repositoryRegistry.getManagedRepository( archivaLocator.getRepositoryId() ); + if (repo==null) { throw new DavException( HttpServletResponse.SC_NOT_FOUND, - "Invalid repository: " + archivaLocator.getRepositoryId() ); + "Invalid repository: " + archivaLocator.getRepositoryId() ); } - catch ( RepositoryException e ) - { - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e ); + ManagedRepositoryContent managedRepositoryContent = repo.getContent( ); + if (managedRepositoryContent==null) { + log.error("Inconsistency detected. Repository content not found for '{}'", archivaLocator.getRepositoryId()); + throw new DavException( HttpServletResponse.SC_NOT_FOUND, + "Invalid repository: " + archivaLocator.getRepositoryId() ); } log.debug( "Managed repository '{}' accessed by '{}'", managedRepositoryContent.getId(), activePrincipal ); - try - { - resource = processRepository( request, archivaLocator, activePrincipal, managedRepositoryContent, - managedRepositoryAdmin.getManagedRepository( - archivaLocator.getRepositoryId() ) ); + resource = processRepository( request, archivaLocator, activePrincipal, managedRepositoryContent, + repo); - String logicalResource = getLogicalResource( archivaLocator, null, false ); - resourcesInAbsolutePath.add( - Paths.get( managedRepositoryContent.getRepoRoot(), logicalResource ).toAbsolutePath().toString() ); + String logicalResource = getLogicalResource( archivaLocator, null, false ); + resourcesInAbsolutePath.add( + Paths.get( managedRepositoryContent.getRepoRoot(), logicalResource ).toAbsolutePath().toString() ); - } - catch ( RepositoryAdminException e ) - { - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e ); - } } String requestedResource = request.getRequestURI(); @@ -457,22 +468,17 @@ public class ArchivaDavResourceFactory for ( String repositoryId : repositories ) { ManagedRepositoryContent managedRepositoryContent; - try - { - managedRepositoryContent = repositoryFactory.getManagedRepositoryContent( repositoryId ); + ManagedRepository managedRepository = repositoryRegistry.getManagedRepository( repositoryId ); + if (managedRepository==null) { + throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Could not find repository with id "+repositoryId ); } - catch ( RepositoryNotFoundException e ) - { - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e ); - } - catch ( RepositoryException e ) - { - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e ); + managedRepositoryContent = managedRepository.getContent(); + if (managedRepositoryContent==null) { + log.error("Inconsistency detected. Repository content not found for '{}'",repositoryId); + throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Could not find repository content with id "+repositoryId ); } - try { - ManagedRepository managedRepository = managedRepositoryAdmin.getManagedRepository( repositoryId ); DavResource updatedResource = processRepository( request, archivaLocator, activePrincipal, managedRepositoryContent, managedRepository ); @@ -493,10 +499,6 @@ public class ArchivaDavResourceFactory { storedExceptions.add( e ); } - catch ( RepositoryAdminException e ) - { - storedExceptions.add( new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e ) ); - } } } if ( resource == null ) @@ -522,12 +524,12 @@ public class ArchivaDavResourceFactory return resource; } - private String getLogicalResource( ArchivaDavResourceLocator archivaLocator, ManagedRepository managedRepository, + private String getLogicalResource( ArchivaDavResourceLocator archivaLocator, org.apache.archiva.repository.ManagedRepository managedRepository, boolean useOrigResourcePath ) { // FIXME remove this hack // but currently managedRepository can be null in case of group - String layout = managedRepository == null ? new ManagedRepository().getLayout() : managedRepository.getLayout(); + String layout = managedRepository == null ? "default" : managedRepository.getLayout(); RepositoryStorage repositoryStorage = this.applicationContext.getBean( "repositoryStorage#" + layout, RepositoryStorage.class ); String path = repositoryStorage.getFilePath( @@ -545,7 +547,7 @@ public class ArchivaDavResourceFactory throws DavException { String layout = managedRepositoryContent.getRepository() == null - ? new ManagedRepository().getLayout() + ? "default" : managedRepositoryContent.getRepository().getLayout(); RepositoryStorage repositoryStorage = this.applicationContext.getBean( "repositoryStorage#" + layout, RepositoryStorage.class ); @@ -570,7 +572,7 @@ public class ArchivaDavResourceFactory private DavResource processRepository( final DavServletRequest request, ArchivaDavResourceLocator archivaLocator, String activePrincipal, ManagedRepositoryContent managedRepositoryContent, - ManagedRepository managedRepository ) + org.apache.archiva.repository.ManagedRepository managedRepository ) throws DavException { DavResource resource = null; @@ -659,7 +661,7 @@ public class ArchivaDavResourceFactory // check if target repo is enabled for releases // we suppose that release-artifacts can be deployed only to repos enabled for releases - if ( managedRepositoryContent.getRepository().isReleases() && !repositoryRequest.isMetadata( + if ( managedRepositoryContent.getRepository().getActiveReleaseSchemes().contains( ReleaseScheme.RELEASE ) && !repositoryRequest.isMetadata( resourcePath ) && !repositoryRequest.isSupportFile( resourcePath ) ) { ArtifactReference artifact = null; @@ -671,7 +673,7 @@ public class ArchivaDavResourceFactory { // check if artifact already exists and if artifact re-deployment to the repository is allowed if ( managedRepositoryContent.hasContent( artifact ) - && managedRepositoryContent.getRepository().isBlockRedeployments() ) + && managedRepositoryContent.getRepository().blocksRedeployments()) { log.warn( "Overwriting released artifacts in repository '{}' is not allowed.", managedRepositoryContent.getId() ); @@ -727,41 +729,30 @@ public class ArchivaDavResourceFactory ArchivaDavResourceLocator archivaLocator = checkLocatorIsInstanceOfRepositoryLocator( locator ); ManagedRepositoryContent managedRepositoryContent; - try - { - managedRepositoryContent = - repositoryFactory.getManagedRepositoryContent( archivaLocator.getRepositoryId() ); - } - catch ( RepositoryNotFoundException e ) - { + ManagedRepository repo = repositoryRegistry.getManagedRepository( archivaLocator.getRepositoryId( ) ); + if (repo==null) { throw new DavException( HttpServletResponse.SC_NOT_FOUND, - "Invalid repository: " + archivaLocator.getRepositoryId() ); + "Invalid repository: " + archivaLocator.getRepositoryId() ); } - catch ( RepositoryException e ) - { - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e ); + managedRepositoryContent = repo.getContent(); + if (managedRepositoryContent==null) { + log.error("Inconsistency detected. Repository content not found for '{}'", archivaLocator.getRepositoryId()); + throw new DavException( HttpServletResponse.SC_NOT_FOUND, + "Invalid repository: " + archivaLocator.getRepositoryId() ); } DavResource resource = null; - try - { - String logicalResource = getLogicalResource( archivaLocator, managedRepositoryAdmin.getManagedRepository( - archivaLocator.getRepositoryId() ), false ); - if ( logicalResource.startsWith( "/" ) ) - { - logicalResource = logicalResource.substring( 1 ); - } - Path resourceFile = Paths.get( managedRepositoryContent.getRepoRoot(), logicalResource ); - resource = new ArchivaDavResource( resourceFile.toAbsolutePath().toString(), logicalResource, - managedRepositoryContent.getRepository(), davSession, archivaLocator, - this, mimeTypes, auditListeners, scheduler, fileLockManager ); - - resource.addLockManager( lockManager ); - } - catch ( RepositoryAdminException e ) + String logicalResource = getLogicalResource( archivaLocator, repo, false ); + if ( logicalResource.startsWith( "/" ) ) { - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e ); + logicalResource = logicalResource.substring( 1 ); } + Path resourceFile = Paths.get( managedRepositoryContent.getRepoRoot(), logicalResource ); + resource = new ArchivaDavResource( resourceFile.toAbsolutePath().toString(), logicalResource, + repo, davSession, archivaLocator, + this, mimeTypes, auditListeners, scheduler, fileLockManager ); + + resource.addLockManager( lockManager ); return resource; } @@ -1027,7 +1018,7 @@ public class ArchivaDavResourceFactory // FIXME add a method with group in the repository storage String firstRepoId = repositoryGroupConfiguration.getRepositories().get( 0 ); - String path = getLogicalResource( locator, managedRepositoryAdmin.getManagedRepository( firstRepoId ), false ); + String path = getLogicalResource( locator, repositoryRegistry.getManagedRepository( firstRepoId ), false ); if ( path.startsWith( "/" ) ) { path = path.substring( 1 ); @@ -1084,32 +1075,28 @@ public class ArchivaDavResourceFactory for ( String repository : repositories ) { ManagedRepositoryContent managedRepository = null; - - try - { - managedRepository = repositoryFactory.getManagedRepositoryContent( repository ); - } - catch ( RepositoryNotFoundException e ) - { + ManagedRepository repo = repositoryRegistry.getManagedRepository( repository ); + if (repo == null) { throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - "Invalid managed repository <" + repository + ">: " + e.getMessage() ); + "Invalid managed repository <" + repository + ">"); } - catch ( RepositoryException e ) - { + managedRepository = repo.getContent(); + if (managedRepository==null) { + log.error("Inconsistency detected. Repository content not found for '{}'",repository); throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - "Invalid managed repository <" + repository + ">: " + e.getMessage() ); + "Invalid managed repository <" + repository + ">"); } - Path resourceFile = Paths.get( managedRepository.getRepoRoot(), logicalResource.getPath() ); if ( Files.exists(resourceFile) ) { // in case of group displaying index directory doesn't have sense !! - String repoIndexDirectory = managedRepository.getRepository().getIndexDirectory(); + IndexCreationFeature idf = managedRepository.getRepository().getFeature(IndexCreationFeature.class).get(); + String repoIndexDirectory = idf.getIndexPath().toString(); if ( StringUtils.isNotEmpty( repoIndexDirectory ) ) { if ( !Paths.get( repoIndexDirectory ).isAbsolute() ) { - repoIndexDirectory = Paths.get( managedRepository.getRepository().getLocation(), + repoIndexDirectory = Paths.get( managedRepository.getRepository().getLocation() ).resolve( StringUtils.isEmpty( repoIndexDirectory ) ? ".indexer" : repoIndexDirectory ).toAbsolutePath().toString(); @@ -1117,7 +1104,7 @@ public class ArchivaDavResourceFactory } if ( StringUtils.isEmpty( repoIndexDirectory ) ) { - repoIndexDirectory = Paths.get( managedRepository.getRepository().getLocation(), + repoIndexDirectory = Paths.get( managedRepository.getRepository().getLocation() ).resolve( ".indexer" ).toAbsolutePath().toString(); } @@ -1460,4 +1447,14 @@ public class ArchivaDavResourceFactory { this.managedRepositoryAdmin = managedRepositoryAdmin; } + + public RepositoryRegistry getRepositoryRegistry( ) + { + return repositoryRegistry; + } + + public void setRepositoryRegistry( RepositoryRegistry repositoryRegistry ) + { + this.repositoryRegistry = repositoryRegistry; + } } http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/RepositoryServlet.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/RepositoryServlet.java b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/RepositoryServlet.java index 27a9036..24f2db3 100644 --- a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/RepositoryServlet.java +++ b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/RepositoryServlet.java @@ -204,7 +204,7 @@ public class RepositoryServlet long end = System.currentTimeMillis(); - log.info( "initServers done in {}Â ms", (end - start) ); + log.debug( "initServers done in {}Â ms", (end - start) ); } @Override http://git-wip-us.apache.org/repos/asf/archiva/blob/d6120d6c/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletTestCase.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletTestCase.java b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletTestCase.java index 1fbe417..ce2d851 100644 --- a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletTestCase.java +++ b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletTestCase.java @@ -28,6 +28,7 @@ import org.apache.archiva.configuration.ArchivaConfiguration; import org.apache.archiva.configuration.Configuration; import org.apache.archiva.configuration.ManagedRepositoryConfiguration; import org.apache.archiva.configuration.RemoteRepositoryConfiguration; +import org.apache.archiva.repository.RepositoryRegistry; import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; import org.apache.archiva.webdav.httpunit.MkColMethodWebRequest; import org.apache.archiva.webdav.util.MavenIndexerCleaner; @@ -99,6 +100,9 @@ public abstract class AbstractRepositoryServletTestCase @Inject protected ManagedRepositoryAdmin managedRepositoryAdmin; + @Inject + RepositoryRegistry repositoryRegistry; + protected Logger log = LoggerFactory.getLogger( getClass() ); @@ -106,6 +110,7 @@ public abstract class AbstractRepositoryServletTestCase throws Exception { saveConfiguration( archivaConfiguration ); + repositoryRegistry.reload(); } @Before @@ -135,6 +140,7 @@ public abstract class AbstractRepositoryServletTestCase config.addManagedRepository( createManagedRepository( REPOID_INTERNAL, "Internal Test Repo", repoRootInternal, true ) ); + repositoryRegistry.reload(); managedRepositoryAdmin.createIndexContext( managedRepositoryAdmin.getManagedRepository( REPOID_INTERNAL ) ); @@ -776,6 +782,7 @@ public abstract class AbstractRepositoryServletTestCase protected void saveConfiguration( ArchivaConfiguration archivaConfiguration ) throws Exception { + repositoryRegistry.reload(); archivaConfiguration.save( archivaConfiguration.getConfiguration() ); }
