Adding local path to repository API
Project: http://git-wip-us.apache.org/repos/asf/archiva/repo Commit: http://git-wip-us.apache.org/repos/asf/archiva/commit/754b2d59 Tree: http://git-wip-us.apache.org/repos/asf/archiva/tree/754b2d59 Diff: http://git-wip-us.apache.org/repos/asf/archiva/diff/754b2d59 Branch: refs/heads/master Commit: 754b2d594076355d6e9d0b7698d309c87a0d672b Parents: 2fe8227 Author: Martin Stockhammer <[email protected]> Authored: Mon Nov 20 08:20:42 2017 +0100 Committer: Martin Stockhammer <[email protected]> Committed: Mon Nov 20 08:20:42 2017 +0100 ---------------------------------------------------------------------- .../java/org/apache/archiva/cli/ArchivaCli.java | 2 +- .../configuration/ArchivaConfiguration.java | 6 + .../DefaultArchivaConfiguration.java | 22 + .../src/main/mdo/configuration.mdo | 7 + .../src/test/java/RepositoryProviderMock.java | 12 +- .../test/java/SimpleArtifactConsumerTest.java | 2 +- .../ArtifactMissingChecksumsConsumerTest.java | 5 +- .../repository/AbstractRepositoryPurgeTest.java | 5 +- .../repository/mock/RepositoryProviderMock.java | 11 +- .../lucene/NexusIndexerConsumerTest.java | 2 +- .../DefaultLegacyRepositoryConverter.java | 2 +- .../indexer/maven/MavenIndexManager.java | 8 +- .../indexer/maven/MavenIndexManagerTest.java | 89 ++++ .../archiva/proxy/AbstractProxyTestCase.java | 2 +- .../archiva/proxy/HttpProxyTransferTest.java | 2 +- .../apache/archiva/proxy/MockConfiguration.java | 21 + .../repository/mock/RepositoryProviderMock.java | 11 +- .../apache/archiva/repository/Repository.java | 19 +- .../repository/AbstractManagedRepository.java | 9 +- .../repository/AbstractRemoteRepository.java | 21 +- .../archiva/repository/AbstractRepository.java | 27 +- .../repository/BasicManagedRepository.java | 9 +- .../repository/BasicRemoteRepository.java | 9 +- .../repository/RepositoryRegistryTest.java | 12 +- .../repository/mock/RepositoryProviderMock.java | 11 +- .../scanner/RepositoryContentConsumersTest.java | 4 +- .../scanner/RepositoryScannerTest.java | 4 +- .../ArchivaIndexingTaskExecutorTest.java | 5 +- .../apache/archiva/webdav/DavResourceTest.java | 5 +- .../maven2/MavenManagedRepository.java | 8 +- .../maven2/MavenRemoteRepository.java | 9 +- .../maven2/MavenRepositoryProvider.java | 402 ++++++++----------- .../configuration/TestConfiguration.java | 20 + .../storage/maven2/conf/MockConfiguration.java | 21 + .../AbstractRepositoryLayerTestCase.java | 9 +- .../content/maven2/RepositoryRequestTest.java | 2 +- .../maven2/MavenRepositoryProviderTest.java | 5 +- .../metadata/Maven2RepositoryStorageTest.java | 9 +- .../DuplicateArtifactsConsumerTest.java | 2 +- .../configuration/StubConfiguration.java | 26 ++ 40 files changed, 534 insertions(+), 323 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-cli/src/main/java/org/apache/archiva/cli/ArchivaCli.java ---------------------------------------------------------------------- diff --git a/archiva-cli/src/main/java/org/apache/archiva/cli/ArchivaCli.java b/archiva-cli/src/main/java/org/apache/archiva/cli/ArchivaCli.java index d274c3d..b2ca378 100644 --- a/archiva-cli/src/main/java/org/apache/archiva/cli/ArchivaCli.java +++ b/archiva-cli/src/main/java/org/apache/archiva/cli/ArchivaCli.java @@ -168,7 +168,7 @@ public class ArchivaCli private void doScan( String path, String[] consumers ) throws ConsumerException, MalformedURLException { - BasicManagedRepository repo = new BasicManagedRepository( Paths.get(path).getFileName().toString(), "Archiva CLI Provided Repo" ); + BasicManagedRepository repo = new BasicManagedRepository( Paths.get(path).getFileName().toString(), "Archiva CLI Provided Repo", Paths.get(path).getParent()); repo.setLocation( Paths.get(path).toUri() ); List<KnownRepositoryContentConsumer> knownConsumerList = new ArrayList<>(); http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/ArchivaConfiguration.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/ArchivaConfiguration.java b/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/ArchivaConfiguration.java index e656b7e..80959dc 100644 --- a/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/ArchivaConfiguration.java +++ b/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/ArchivaConfiguration.java @@ -103,6 +103,12 @@ public interface ArchivaConfiguration public Path getRepositoryBaseDir(); /** + * Returns the base directory for remote repositories + * @return + */ + public Path getRemoteRepositoryBaseDir(); + + /** * Returns the data directory where repositories and metadata reside * @return */ http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java b/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java index b28bed2..71b4c31 100644 --- a/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java +++ b/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java @@ -90,6 +90,8 @@ import java.util.Set; * <p> * If the configuration is outdated, it will be upgraded when it is loaded. This is done by checking the version flag * before reading it from the registry. + * + * FIXME: The synchronization must be improved, the current impl may lead to inconsistent data or multiple getConfiguration() calls ([email protected]) * </p> */ @Service("archivaConfiguration#default") @@ -176,6 +178,7 @@ public class DefaultArchivaConfiguration private volatile Path dataDirectory; private volatile Path repositoryBaseDirectory; + private volatile Path remoteRepositoryBaseDirectory; @PostConstruct private void init() { @@ -261,6 +264,17 @@ public class DefaultArchivaConfiguration dataDirectory.resolve(tmpRepoBaseDir); } } + String remoteRepoBaseDir = config.getArchivaRuntimeConfiguration().getRemoteRepositoryBaseDirectory(); + if (StringUtils.isEmpty(remoteRepoBaseDir)) { + remoteRepositoryBaseDirectory = dataDirectory.resolve("remotes"); + } else { + Path tmpRemoteRepoDir = Paths.get(remoteRepoBaseDir); + if (tmpRemoteRepoDir.isAbsolute()) { + remoteRepositoryBaseDirectory = tmpRemoteRepoDir; + } else { + dataDirectory.resolve(tmpRemoteRepoDir); + } + } config.getRepositoryGroups(); @@ -942,6 +956,14 @@ public class DefaultArchivaConfiguration } @Override + public Path getRemoteRepositoryBaseDir() { + if (remoteRepositoryBaseDirectory==null) { + getConfiguration(); + } + return remoteRepositoryBaseDirectory; + } + + @Override public Path getDataDirectory() { if (dataDirectory==null) { getConfiguration(); http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo b/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo index 91dbb65..d687ba6 100644 --- a/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo +++ b/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo @@ -1547,6 +1547,13 @@ <required>false</required> </field> <field> + <name>remoteRepositoryBaseDirectory</name> + <version>3.0.0+</version> + <description>The base directory for local storage of remote repository data. If not set, it's ${dataDirectory}/remotes.</description> + <type>String</type> + <required>false</required> + </field> + <field> <name>defaultLanguage</name> <type>String</type> <version>3.0.0+</version> http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/RepositoryProviderMock.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/RepositoryProviderMock.java b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/RepositoryProviderMock.java index 55151f3..a140842 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/RepositoryProviderMock.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/RepositoryProviderMock.java @@ -39,7 +39,9 @@ import org.apache.archiva.repository.features.RemoteIndexFeature; import org.apache.archiva.repository.features.StagingRepositoryFeature; import org.springframework.stereotype.Service; + import java.net.URI; +import java.nio.file.Paths; import java.time.Duration; import java.time.Period; import java.util.HashSet; @@ -69,19 +71,19 @@ public class RepositoryProviderMock implements RepositoryProvider @Override public EditableManagedRepository createManagedInstance( String id, String name ) { - return new BasicManagedRepository( id, name ); + return new BasicManagedRepository( id, name, Paths.get("target/repositories") ); } @Override public EditableRemoteRepository createRemoteInstance( String id, String name ) { - return new BasicRemoteRepository( id, name ); + return new BasicRemoteRepository( id, name , Paths.get("target/remotes")); } @Override public ManagedRepository createManagedInstance( ManagedRepositoryConfiguration configuration ) throws RepositoryException { - BasicManagedRepository managedRepository = new BasicManagedRepository( configuration.getId( ), configuration.getName( ) ); + BasicManagedRepository managedRepository = new BasicManagedRepository( configuration.getId( ), configuration.getName( ), Paths.get("target/repositories") ); updateManagedInstance( managedRepository, configuration ); return managedRepository; } @@ -128,7 +130,7 @@ public class RepositoryProviderMock implements RepositoryProvider public ManagedRepository createStagingInstance( ManagedRepositoryConfiguration configuration ) throws RepositoryException { String id = configuration.getId( ) + StagingRepositoryFeature.STAGING_REPO_POSTFIX; - BasicManagedRepository managedRepository = new BasicManagedRepository( id, configuration.getName( ) ); + BasicManagedRepository managedRepository = new BasicManagedRepository( id, configuration.getName( ), Paths.get("target/repositories") ); updateManagedInstance( managedRepository, configuration ); return managedRepository; } @@ -136,7 +138,7 @@ public class RepositoryProviderMock implements RepositoryProvider @Override public RemoteRepository createRemoteInstance( RemoteRepositoryConfiguration configuration ) throws RepositoryException { - BasicRemoteRepository remoteRepository = new BasicRemoteRepository( configuration.getId( ), configuration.getName( ) ); + BasicRemoteRepository remoteRepository = new BasicRemoteRepository( configuration.getId( ), configuration.getName( ), Paths.get("target/remotes") ); updateRemoteInstance( remoteRepository, configuration ); return remoteRepository; } http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/SimpleArtifactConsumerTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/SimpleArtifactConsumerTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/SimpleArtifactConsumerTest.java index 68d03a8..0b134ba 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/SimpleArtifactConsumerTest.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/SimpleArtifactConsumerTest.java @@ -84,7 +84,7 @@ public class SimpleArtifactConsumerTest Files.createDirectories( repoDir ); repoDir.toFile().deleteOnExit(); - testRepository = new BasicManagedRepository("test-consumer-repository","Test-Consumer-Repository" ); + testRepository = new BasicManagedRepository("test-consumer-repository","Test-Consumer-Repository", Paths.get("target/repositories") ); testRepository.setLocation( repoDir.toAbsolutePath().toUri() ); repositoryRegistry.putRepository(testRepository); http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java index 1ad70c3..5851e67 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java @@ -47,9 +47,10 @@ public class ArtifactMissingChecksumsConsumerTest { super.setUp(); - repoConfig = new BasicManagedRepository( "test-repo", "Test Repository"); + Path basePath = Paths.get("target/test-classes"); + repoConfig = new BasicManagedRepository( "test-repo", "Test Repository", basePath); repoConfig.setLayout( "default" ); - repoConfig.setLocation( Paths.get( "target/test-classes/test-repo/" ).toUri() ); + repoConfig.setLocation(basePath.resolve("test-repo/" ).toUri() ); consumer = applicationContext.getBean( "knownRepositoryContentConsumer#create-missing-checksums", KnownRepositoryContentConsumer.class ); http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java index d65d1a4..e9e7353 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java @@ -166,13 +166,14 @@ public abstract class AbstractRepositoryPurgeTest public org.apache.archiva.repository.ManagedRepository getRepoConfiguration( String repoId, String repoName ) throws URISyntaxException { - config = new BasicManagedRepository( repoId, repoName); + Path basePath = Paths.get("target/test-" + getName()).toAbsolutePath(); + config = new BasicManagedRepository( repoId, repoName, basePath); config.addActiveReleaseScheme( ReleaseScheme.RELEASE ); config.addActiveReleaseScheme( ReleaseScheme.SNAPSHOT ); ArtifactCleanupFeature atf = config.getFeature( ArtifactCleanupFeature.class ).get(); atf.setRetentionPeriod( Period.ofDays( TEST_DAYS_OLDER) ); String path = AbstractRepositoryPurgeTest.fixPath( - Paths.get( "target/test-" + getName() + "/" + repoId ).toAbsolutePath().toString() ); + basePath.resolve( repoId ).toAbsolutePath().toString() ); config.setLocation( new URI( path ) ); atf.setDeleteReleasedSnapshots( true ); atf.setRetentionCount( TEST_RETENTION_COUNT ); http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java index ad98c99..286dd38 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java @@ -40,6 +40,7 @@ import org.apache.archiva.repository.features.StagingRepositoryFeature; import org.springframework.stereotype.Service; import java.net.URI; +import java.nio.file.Paths; import java.time.Duration; import java.time.Period; import java.util.HashSet; @@ -69,19 +70,19 @@ public class RepositoryProviderMock implements RepositoryProvider @Override public EditableManagedRepository createManagedInstance( String id, String name ) { - return new BasicManagedRepository( id, name ); + return new BasicManagedRepository( id, name, Paths.get("target/repositories") ); } @Override public EditableRemoteRepository createRemoteInstance( String id, String name ) { - return new BasicRemoteRepository( id, name ); + return new BasicRemoteRepository( id, name, Paths.get("target/remotes") ); } @Override public ManagedRepository createManagedInstance( ManagedRepositoryConfiguration configuration ) throws RepositoryException { - BasicManagedRepository managedRepository = new BasicManagedRepository( configuration.getId( ), configuration.getName( ) ); + BasicManagedRepository managedRepository = new BasicManagedRepository( configuration.getId( ), configuration.getName( ), Paths.get("target/repositories") ); updateManagedInstance( managedRepository, configuration ); return managedRepository; } @@ -128,7 +129,7 @@ public class RepositoryProviderMock implements RepositoryProvider public ManagedRepository createStagingInstance( ManagedRepositoryConfiguration configuration ) throws RepositoryException { String id = configuration.getId( ) + StagingRepositoryFeature.STAGING_REPO_POSTFIX; - BasicManagedRepository managedRepository = new BasicManagedRepository( id, configuration.getName( ) ); + BasicManagedRepository managedRepository = new BasicManagedRepository( id, configuration.getName( ), Paths.get("target/repositories") ); updateManagedInstance( managedRepository, configuration ); return managedRepository; } @@ -136,7 +137,7 @@ public class RepositoryProviderMock implements RepositoryProvider @Override public RemoteRepository createRemoteInstance( RemoteRepositoryConfiguration configuration ) throws RepositoryException { - BasicRemoteRepository remoteRepository = new BasicRemoteRepository( configuration.getId( ), configuration.getName( ) ); + BasicRemoteRepository remoteRepository = new BasicRemoteRepository( configuration.getId( ), configuration.getName( ), Paths.get("target/remotes") ); updateRemoteInstance( remoteRepository, configuration ); return remoteRepository; } http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java index 2a8546a..e34dc7e 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java @@ -132,7 +132,7 @@ public class NexusIndexerConsumerTest // initialize to set the file types to be processed nexusIndexerConsumer.initialize(); - repositoryConfig = new BasicManagedRepository( "test-repo", "Test Repository" ); + repositoryConfig = new BasicManagedRepository( "test-repo", "Test Repository", Paths.get("target/test-classes") ); repositoryConfig.setLocation( new URI("target/test-classes/test-repo") ); repositoryConfig.setLayout( "default" ); repositoryConfig.setScanned( true ); http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java index 3e8e168..cc1af39 100644 --- a/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java +++ b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java @@ -92,7 +92,7 @@ public class DefaultLegacyRepositoryConverter { String defaultRepositoryUrl = PathUtil.toUrl( repositoryDirectory ); - BasicManagedRepository legacyRepository = new BasicManagedRepository( "legacy", "Legacy Repository"); + BasicManagedRepository legacyRepository = new BasicManagedRepository( "legacy", "Legacy Repository", repositoryDirectory.getParent()); legacyRepository.setLocation( legacyRepositoryDirectory.toAbsolutePath().toUri() ); legacyRepository.setLayout( "legacy" ); http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexManager.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexManager.java b/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexManager.java index 7e6d3c5..60c2fdd 100644 --- a/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexManager.java +++ b/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexManager.java @@ -521,13 +521,7 @@ public class MavenIndexManager implements ArchivaIndexManager IndexingContext context; // take care first about repository location as can be relative - Path repositoryDirectory = PathUtil.getPathFromUri( repository.getLocation( ) ); - - if ( !repositoryDirectory.isAbsolute( ) ) - { - repositoryDirectory = - repositoryDirectory.resolve( "repositories" ).resolve( repositoryDirectory ); - } + Path repositoryDirectory = repository.getLocalPath(); if ( !Files.exists( repositoryDirectory ) ) { http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/MavenIndexManagerTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/MavenIndexManagerTest.java b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/MavenIndexManagerTest.java new file mode 100644 index 0000000..a70c584 --- /dev/null +++ b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/MavenIndexManagerTest.java @@ -0,0 +1,89 @@ +package org.apache.archiva.indexer.maven; + +/* +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ + +import org.apache.archiva.indexer.ArchivaIndexingContext; +import org.apache.archiva.repository.ManagedRepository; +import org.apache.archiva.repository.features.IndexCreationFeature; +import org.apache.archiva.repository.maven2.MavenManagedRepository; +import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.ContextConfiguration; + +import javax.inject.Inject; + +import java.net.URI; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import static org.junit.Assert.*; + +@RunWith( ArchivaSpringJUnit4ClassRunner.class ) +@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } ) +public class MavenIndexManagerTest { + + @Inject + MavenIndexManager mavenIndexManager; + + + + @Test + public void pack() throws Exception { + } + + @Test + public void scan() throws Exception { + } + + @Test + public void update() throws Exception { + } + + @Test + public void addArtifactsToIndex() throws Exception { + } + + @Test + public void removeArtifactsFromIndex() throws Exception { + } + + @Test + public void supportsRepository() throws Exception { + } + + @Test + public void createContext() throws Exception { + MavenManagedRepository repository = new MavenManagedRepository("test-repo", "Test Repo", Paths.get("target/repositories")); + repository.setLocation(new URI("test-repo")); + IndexCreationFeature icf = repository.getFeature(IndexCreationFeature.class).get(); + icf.setIndexPath(new URI(".index-test")); + ArchivaIndexingContext ctx = mavenIndexManager.createContext(repository); + assertNotNull(ctx); + assertEquals(repository, ctx.getRepository()); + assertEquals("test-repo", ctx.getId()); + Path indexPath = Paths.get("target/repositories/test-repo/.index-test"); + assertEquals(indexPath.toAbsolutePath(), Paths.get(ctx.getPath()).toAbsolutePath()); + assertTrue(Files.exists(indexPath)); + + } + +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/AbstractProxyTestCase.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/AbstractProxyTestCase.java b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/AbstractProxyTestCase.java index c4bfff3..4dcf747 100644 --- a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/AbstractProxyTestCase.java +++ b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/AbstractProxyTestCase.java @@ -354,7 +354,7 @@ public abstract class AbstractProxyTestCase protected ManagedRepositoryContent createRepository( String id, String name, String path, String layout ) throws Exception { - MavenManagedRepository repo = new MavenManagedRepository(id, name); + MavenManagedRepository repo = new MavenManagedRepository(id, name, Paths.get(path).getParent()); repo.setLocation( new URI(path) ); repo.setLayout( layout ); http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/HttpProxyTransferTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/HttpProxyTransferTest.java b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/HttpProxyTransferTest.java index 3980d87..40fa894 100644 --- a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/HttpProxyTransferTest.java +++ b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/HttpProxyTransferTest.java @@ -123,7 +123,7 @@ public class HttpProxyTransferTest // Make the destination dir. Files.createDirectories(destRepoDir); - MavenManagedRepository repo = new MavenManagedRepository( MANAGED_ID, "Default Managed Repository" ); + MavenManagedRepository repo = new MavenManagedRepository( MANAGED_ID, "Default Managed Repository", Paths.get(repoPath).getParent() ); repo.setLocation( new URI(repoPath) ); repo.setLayout( "default" ); http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/MockConfiguration.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/MockConfiguration.java b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/MockConfiguration.java index 54a0b94..30de663 100644 --- a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/MockConfiguration.java +++ b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/MockConfiguration.java @@ -23,6 +23,7 @@ import org.apache.archiva.configuration.*; import org.apache.archiva.redback.components.registry.Registry; import org.apache.archiva.redback.components.registry.RegistryException; import org.apache.archiva.redback.components.registry.RegistryListener; +import org.apache.commons.lang.StringUtils; import org.easymock.EasyMock; import org.easymock.IMocksControl; import org.springframework.stereotype.Service; @@ -160,4 +161,24 @@ public class MockConfiguration return Paths.get(""); } } + + + @Override + public Path getRepositoryBaseDir() { + return getDataDirectory().resolve("repositories"); + } + + @Override + public Path getRemoteRepositoryBaseDir() { + return getDataDirectory().resolve("remotes"); + } + + @Override + public Path getDataDirectory() { + if (configuration!=null && StringUtils.isNotEmpty(configuration.getArchivaRuntimeConfiguration().getDataDirectory())) { + return Paths.get(configuration.getArchivaRuntimeConfiguration().getDataDirectory()); + } else { + return getAppServerBaseDir().resolve("data"); + } + } } http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java index 834ce5b..c923ba9 100644 --- a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java +++ b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java @@ -40,6 +40,7 @@ import org.apache.archiva.repository.features.StagingRepositoryFeature; import org.springframework.stereotype.Service; import java.net.URI; +import java.nio.file.Paths; import java.time.Duration; import java.time.Period; import java.util.HashSet; @@ -69,19 +70,19 @@ public class RepositoryProviderMock implements RepositoryProvider @Override public EditableManagedRepository createManagedInstance( String id, String name ) { - return new BasicManagedRepository( id, name ); + return new BasicManagedRepository( id, name , Paths.get("target/repositories")); } @Override public EditableRemoteRepository createRemoteInstance( String id, String name ) { - return new BasicRemoteRepository( id, name ); + return new BasicRemoteRepository( id, name, Paths.get("target/remotes") ); } @Override public ManagedRepository createManagedInstance( ManagedRepositoryConfiguration configuration ) throws RepositoryException { - BasicManagedRepository managedRepository = new BasicManagedRepository( configuration.getId( ), configuration.getName( ) ); + BasicManagedRepository managedRepository = new BasicManagedRepository( configuration.getId( ), configuration.getName( ) , Paths.get("target/repositories")); updateManagedInstance( managedRepository, configuration ); return managedRepository; } @@ -128,7 +129,7 @@ public class RepositoryProviderMock implements RepositoryProvider public ManagedRepository createStagingInstance( ManagedRepositoryConfiguration configuration ) throws RepositoryException { String id = configuration.getId( ) + StagingRepositoryFeature.STAGING_REPO_POSTFIX; - BasicManagedRepository managedRepository = new BasicManagedRepository( id, configuration.getName( ) ); + BasicManagedRepository managedRepository = new BasicManagedRepository( id, configuration.getName( ), Paths.get("target/repositories") ); updateManagedInstance( managedRepository, configuration ); return managedRepository; } @@ -136,7 +137,7 @@ public class RepositoryProviderMock implements RepositoryProvider @Override public RemoteRepository createRemoteInstance( RemoteRepositoryConfiguration configuration ) throws RepositoryException { - BasicRemoteRepository remoteRepository = new BasicRemoteRepository( configuration.getId( ), configuration.getName( ) ); + BasicRemoteRepository remoteRepository = new BasicRemoteRepository( configuration.getId( ), configuration.getName( ), Paths.get("target/remotes") ); updateRemoteInstance( remoteRepository, configuration ); return remoteRepository; } http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/Repository.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/Repository.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/Repository.java index 1c101ee..fae5745 100644 --- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/Repository.java +++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/Repository.java @@ -23,6 +23,7 @@ import org.apache.archiva.indexer.ArchivaIndexingContext; import org.apache.archiva.repository.features.RepositoryFeature; import java.net.URI; +import java.nio.file.Path; import java.util.List; import java.util.Locale; import java.util.Set; @@ -86,14 +87,22 @@ public interface Repository { */ URI getLocation(); + /** - * This returns the absolute location uri of this repository. Some repository locations may be relative to - * the base repository directory or uri. This returns the absolute path of the repository. - * If the location is absolute already this method returns the same URI as getLocation(). + * Returns the local path that this repository uses, if it stores data locally. You should keep in + * mind, that repository implementations may not store any data in this directory. E.g. if the + * repository data is handled by a database. So the content of this directory is very implementation + * specific. Users of this directory must know about the repository file layout if they use this + * path. + * + * Repository implementations should always return a valid path, even if there is no locally stored data. * - * @return the absolute uri of the location. + * Some extensions may use the path to store their own repository specific data, e.g. statistics, metadata,... + * + * @return the filesystem path to the repository. */ - URI getAbsoluteLocation(); + Path getLocalPath(); + /** * A repository may allow additional locations that can be used, if the primary location is not available. http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractManagedRepository.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractManagedRepository.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractManagedRepository.java index 3f482ca..06cab6b 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractManagedRepository.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractManagedRepository.java @@ -20,6 +20,7 @@ package org.apache.archiva.repository; */ +import java.nio.file.Path; import java.util.Collections; import java.util.HashSet; import java.util.Locale; @@ -35,14 +36,14 @@ public abstract class AbstractManagedRepository extends AbstractRepository imple private Set<ReleaseScheme> activeReleaseSchemes = new HashSet<>( ); private Set<ReleaseScheme> uActiveReleaseSchemes = Collections.unmodifiableSet( activeReleaseSchemes ); - public AbstractManagedRepository( RepositoryType type, String id, String name ) + public AbstractManagedRepository( RepositoryType type, String id, String name, Path basePath ) { - super( type, id, name ); + super( type, id, name, basePath ); } - public AbstractManagedRepository( Locale primaryLocale, RepositoryType type, String id, String name ) + public AbstractManagedRepository( Locale primaryLocale, RepositoryType type, String id, String name, Path basePath ) { - super( primaryLocale, type, id, name ); + super( primaryLocale, type, id, name, basePath ); } @Override http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractRemoteRepository.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractRemoteRepository.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractRemoteRepository.java index e1e570a..131aad6 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractRemoteRepository.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractRemoteRepository.java @@ -20,6 +20,10 @@ package org.apache.archiva.repository; */ +import org.apache.commons.lang.StringUtils; + +import java.nio.file.Path; +import java.nio.file.Paths; import java.time.Duration; import java.util.Collections; import java.util.HashMap; @@ -43,14 +47,14 @@ public abstract class AbstractRemoteRepository extends AbstractRepository implem private String proxyId; private RemoteRepositoryContent content; - public AbstractRemoteRepository( RepositoryType type, String id, String name ) + public AbstractRemoteRepository( RepositoryType type, String id, String name , Path repositoryBase) { - super( type, id, name ); + super( type, id, name, repositoryBase ); } - public AbstractRemoteRepository( Locale primaryLocale, RepositoryType type, String id, String name ) + public AbstractRemoteRepository( Locale primaryLocale, RepositoryType type, String id, String name, Path repositoryBase ) { - super( primaryLocale, type, id, name ); + super( primaryLocale, type, id, name, repositoryBase ); } @Override @@ -138,4 +142,13 @@ public abstract class AbstractRemoteRepository extends AbstractRepository implem return timeout; } + /** + * Remote repositories resolve always relative to the base directory. + * @return + */ + @Override + public Path getLocalPath() { + return repositoryBase.resolve(getId()); + } + } http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractRepository.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractRepository.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractRepository.java index ab1c3fa..c90c5bf 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractRepository.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractRepository.java @@ -23,10 +23,14 @@ import com.cronutils.model.CronType; import com.cronutils.model.definition.CronDefinition; import com.cronutils.model.definition.CronDefinitionBuilder; import com.cronutils.parser.CronParser; +import org.apache.archiva.common.utils.PathUtil; import org.apache.archiva.indexer.ArchivaIndexingContext; import org.apache.archiva.repository.features.RepositoryFeature; +import org.apache.commons.lang.StringUtils; import java.net.URI; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -59,17 +63,21 @@ public abstract class AbstractRepository implements EditableRepository Map<Class<? extends RepositoryFeature<?>>, RepositoryFeature<?>> featureMap = new HashMap<>( ); - public AbstractRepository(RepositoryType type, String id, String name) { + protected Path repositoryBase; + + public AbstractRepository(RepositoryType type, String id, String name, Path repositoryBase) { this.id = id; this.names.put( primaryLocale, name); this.type = type; + this.repositoryBase=repositoryBase; } - public AbstractRepository(Locale primaryLocale, RepositoryType type, String id, String name) { + public AbstractRepository(Locale primaryLocale, RepositoryType type, String id, String name, Path repositoryBase) { setPrimaryLocale( primaryLocale ); this.id = id; this.names.put( primaryLocale, name); this.type = type; + this.repositoryBase=repositoryBase; } protected void setPrimaryLocale(Locale locale) { @@ -118,8 +126,19 @@ public abstract class AbstractRepository implements EditableRepository return location; } - public URI getAbsoluteLocation() { - return baseUri.resolve( location ); + @Override + public Path getLocalPath() { + Path localPath; + if (getLocation().getScheme()=="file" || StringUtils.isEmpty(getLocation().getScheme())) { + localPath = PathUtil.getPathFromUri(getLocation()); + if (localPath.isAbsolute()) { + return localPath; + } else { + return repositoryBase.resolve(localPath); + } + } else { + return repositoryBase.resolve(getId()); + } } @Override http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/BasicManagedRepository.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/BasicManagedRepository.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/BasicManagedRepository.java index 0ab88f3..6c1a285 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/BasicManagedRepository.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/BasicManagedRepository.java @@ -23,6 +23,7 @@ import org.apache.archiva.repository.features.ArtifactCleanupFeature; import org.apache.archiva.repository.features.IndexCreationFeature; import org.apache.archiva.repository.features.StagingRepositoryFeature; +import java.nio.file.Path; import java.util.Locale; /** @@ -46,15 +47,15 @@ public class BasicManagedRepository extends AbstractManagedRepository StagingRepositoryFeature.class.toString() }, true, true, true, true, true ); - public BasicManagedRepository( String id, String name ) + public BasicManagedRepository( String id, String name, Path basePath ) { - super( RepositoryType.MAVEN, id, name ); + super( RepositoryType.MAVEN, id, name, basePath ); initFeatures(); } - public BasicManagedRepository( Locale primaryLocale, RepositoryType type, String id, String name ) + public BasicManagedRepository( Locale primaryLocale, RepositoryType type, String id, String name, Path basePath ) { - super( primaryLocale, type, id, name ); + super( primaryLocale, type, id, name, basePath ); initFeatures(); } http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/BasicRemoteRepository.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/BasicRemoteRepository.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/BasicRemoteRepository.java index d241854..64b705c 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/BasicRemoteRepository.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/BasicRemoteRepository.java @@ -21,6 +21,7 @@ package org.apache.archiva.repository; import org.apache.archiva.repository.features.RemoteIndexFeature; +import java.nio.file.Path; import java.util.Locale; /** @@ -41,15 +42,15 @@ public class BasicRemoteRepository extends AbstractRemoteRepository RemoteIndexFeature.class.toString() }, true, true, true, true, true ); - public BasicRemoteRepository( String id, String name ) + public BasicRemoteRepository( String id, String name, Path basePath ) { - super( RepositoryType.MAVEN, id, name ); + super( RepositoryType.MAVEN, id, name, basePath); initFeatures(); } - public BasicRemoteRepository( Locale primaryLocale, RepositoryType type, String id, String name ) + public BasicRemoteRepository( Locale primaryLocale, RepositoryType type, String id, String name, Path basePath ) { - super( primaryLocale, type, id, name ); + super( primaryLocale, type, id, name, basePath ); initFeatures(); } http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/RepositoryRegistryTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/RepositoryRegistryTest.java b/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/RepositoryRegistryTest.java index 01dcbd2..b125f81 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/RepositoryRegistryTest.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/RepositoryRegistryTest.java @@ -192,14 +192,14 @@ public class RepositoryRegistryTest @Test public void putManagedRepository( ) throws Exception { - BasicManagedRepository managedRepository = new BasicManagedRepository( "test001", "Test repo" ); + BasicManagedRepository managedRepository = new BasicManagedRepository( "test001", "Test repo", archivaConfiguration.getRepositoryBaseDir() ); managedRepository.setDescription( managedRepository.getPrimaryLocale(), "This is just a test" ); repositoryRegistry.putRepository(managedRepository); assertNotNull(managedRepository.getContent()); assertEquals(6, repositoryRegistry.getRepositories().size()); - managedRepository = new BasicManagedRepository( "central", "Test repo" ); + managedRepository = new BasicManagedRepository( "central", "Test repo", archivaConfiguration.getRepositoryBaseDir() ); managedRepository.setDescription( managedRepository.getPrimaryLocale(), "This is just a test" ); ManagedRepository updatedRepo = null; try { @@ -208,7 +208,7 @@ public class RepositoryRegistryTest } catch (RepositoryException e) { // OK } - managedRepository = new BasicManagedRepository( "internal", "Test repo" ); + managedRepository = new BasicManagedRepository( "internal", "Test repo", archivaConfiguration.getRepositoryBaseDir() ); managedRepository.setDescription( managedRepository.getPrimaryLocale(), "This is just a test" ); updatedRepo = repositoryRegistry.putRepository( managedRepository ); @@ -283,7 +283,7 @@ public class RepositoryRegistryTest @Test public void putRemoteRepository( ) throws Exception { - BasicRemoteRepository remoteRepository = new BasicRemoteRepository( "test001", "Test repo" ); + BasicRemoteRepository remoteRepository = new BasicRemoteRepository( "test001", "Test repo", archivaConfiguration.getRemoteRepositoryBaseDir() ); remoteRepository.setDescription( remoteRepository.getPrimaryLocale(), "This is just a test" ); RemoteRepository newRepo = repositoryRegistry.putRepository(remoteRepository); @@ -291,7 +291,7 @@ public class RepositoryRegistryTest assertNotNull(remoteRepository.getContent()); assertEquals(6, repositoryRegistry.getRepositories().size()); - remoteRepository = new BasicRemoteRepository( "internal", "Test repo" ); + remoteRepository = new BasicRemoteRepository( "internal", "Test repo", archivaConfiguration.getRemoteRepositoryBaseDir() ); remoteRepository.setDescription( remoteRepository.getPrimaryLocale(), "This is just a test" ); RemoteRepository updatedRepo = null; try @@ -302,7 +302,7 @@ public class RepositoryRegistryTest // OK } - remoteRepository = new BasicRemoteRepository( "central", "Test repo" ); + remoteRepository = new BasicRemoteRepository( "central", "Test repo", archivaConfiguration.getRemoteRepositoryBaseDir() ); remoteRepository.setDescription( remoteRepository.getPrimaryLocale(), "This is just a test" ); updatedRepo = repositoryRegistry.putRepository( remoteRepository ); http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java b/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java index 95485cc..d4a78a6 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java @@ -40,6 +40,7 @@ import org.apache.archiva.repository.features.StagingRepositoryFeature; import org.springframework.stereotype.Service; import java.net.URI; +import java.nio.file.Paths; import java.time.Duration; import java.time.Period; import java.util.HashSet; @@ -69,19 +70,19 @@ public class RepositoryProviderMock implements RepositoryProvider @Override public EditableManagedRepository createManagedInstance( String id, String name ) { - return new BasicManagedRepository( id, name ); + return new BasicManagedRepository( id, name, Paths.get("target/repositories") ); } @Override public EditableRemoteRepository createRemoteInstance( String id, String name ) { - return new BasicRemoteRepository( id, name ); + return new BasicRemoteRepository( id, name , Paths.get("target/remotes")); } @Override public ManagedRepository createManagedInstance( ManagedRepositoryConfiguration configuration ) throws RepositoryException { - BasicManagedRepository managedRepository = new BasicManagedRepository( configuration.getId( ), configuration.getName( ) ); + BasicManagedRepository managedRepository = new BasicManagedRepository( configuration.getId( ), configuration.getName( ), Paths.get("target/repositories") ); updateManagedInstance( managedRepository, configuration ); return managedRepository; } @@ -128,7 +129,7 @@ public class RepositoryProviderMock implements RepositoryProvider public ManagedRepository createStagingInstance( ManagedRepositoryConfiguration configuration ) throws RepositoryException { String id = configuration.getId( ) + StagingRepositoryFeature.STAGING_REPO_POSTFIX; - BasicManagedRepository managedRepository = new BasicManagedRepository( id, configuration.getName( ) ); + BasicManagedRepository managedRepository = new BasicManagedRepository( id, configuration.getName( ) , Paths.get("target/repositories")); updateManagedInstance( managedRepository, configuration ); managedRepository.getFeature(StagingRepositoryFeature.class).get().setStageRepoNeeded(false); return managedRepository; @@ -137,7 +138,7 @@ public class RepositoryProviderMock implements RepositoryProvider @Override public RemoteRepository createRemoteInstance( RemoteRepositoryConfiguration configuration ) throws RepositoryException { - BasicRemoteRepository remoteRepository = new BasicRemoteRepository( configuration.getId( ), configuration.getName( ) ); + BasicRemoteRepository remoteRepository = new BasicRemoteRepository( configuration.getId( ), configuration.getName( ), Paths.get("target/remotes") ); updateRemoteInstance( remoteRepository, configuration ); return remoteRepository; } http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryContentConsumersTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryContentConsumersTest.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryContentConsumersTest.java index c24c0c2..6148fe5 100644 --- a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryContentConsumersTest.java +++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryContentConsumersTest.java @@ -76,14 +76,14 @@ public class RepositoryContentConsumersTest protected ManagedRepository createRepository( String id, String name, Path location ) { - BasicManagedRepository repo = new BasicManagedRepository( id, name ); + BasicManagedRepository repo = new BasicManagedRepository( id, name , location.getParent() ); repo.setLocation( location.toAbsolutePath().toUri() ); return repo; } protected RemoteRepository createRemoteRepository( String id, String name, String url ) throws URISyntaxException { - BasicRemoteRepository repo = new BasicRemoteRepository(id, name); + BasicRemoteRepository repo = new BasicRemoteRepository(id, name, Paths.get("remotes")); repo.setLocation( new URI( url ) ); return repo; } http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryScannerTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryScannerTest.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryScannerTest.java index e9a462b..ac86708 100644 --- a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryScannerTest.java +++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryScannerTest.java @@ -64,14 +64,14 @@ public class RepositoryScannerTest protected EditableManagedRepository createRepository( String id, String name, Path location ) { - BasicManagedRepository repo = new BasicManagedRepository(id, name); + BasicManagedRepository repo = new BasicManagedRepository(id, name, location.getParent()); repo.setLocation( location.toAbsolutePath().toUri()); return repo; } protected EditableRemoteRepository createRemoteRepository( String id, String name, String url ) throws URISyntaxException { - BasicRemoteRepository repo = new BasicRemoteRepository(id, name); + BasicRemoteRepository repo = new BasicRemoteRepository(id, name, Paths.get("remotes")); repo.setLocation( new URI( url ) ); return repo; } http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/test/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutorTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/test/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutorTest.java b/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/test/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutorTest.java index 02c0261..d0e6532 100644 --- a/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/test/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutorTest.java +++ b/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/test/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutorTest.java @@ -91,8 +91,9 @@ public class ArchivaIndexingTaskExecutorTest { super.setUp(); - repositoryConfig = new BasicManagedRepository( "test-repo", "Test Repository"); - Path repoLocation = Paths.get( System.getProperty( "basedir" ), "target/test-classes/test-repo" ).toAbsolutePath(); + Path baseDir = Paths.get(System.getProperty("basedir"), "target/test-classes").toAbsolutePath(); + repositoryConfig = new BasicManagedRepository( "test-repo", "Test Repository", baseDir); + Path repoLocation = baseDir.resolve("test-repo" ); repositoryConfig.setLocation(repoLocation.toUri() ); repositoryConfig.setLayout( "default" ); repositoryConfig.setScanned( true ); http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/DavResourceTest.java ---------------------------------------------------------------------- diff --git a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/DavResourceTest.java b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/DavResourceTest.java index 4802776..394e82a 100644 --- a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/DavResourceTest.java +++ b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/DavResourceTest.java @@ -77,8 +77,7 @@ public class DavResourceTest private LockManager lockManager; - private MavenManagedRepository repository = new MavenManagedRepository( "repo001", "repo001"); - + private MavenManagedRepository repository; @Override @Before public void setUp() @@ -88,6 +87,8 @@ public class DavResourceTest session = new ArchivaDavSession(); baseDir = Paths.get( "target/DavResourceTest" ); Files.createDirectories( baseDir ); + repository = new MavenManagedRepository( "repo001", "repo001", baseDir); + myResource = baseDir.resolve( "myresource.jar" ); Files.createFile(myResource); resourceFactory = new RootContextDavResourceFactory(); http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/repository/maven2/MavenManagedRepository.java ---------------------------------------------------------------------- diff --git a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/repository/maven2/MavenManagedRepository.java b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/repository/maven2/MavenManagedRepository.java index aaad382..0e5a37f 100644 --- a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/repository/maven2/MavenManagedRepository.java +++ b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/repository/maven2/MavenManagedRepository.java @@ -70,14 +70,14 @@ public class MavenManagedRepository extends AbstractManagedRepository false ); - public MavenManagedRepository( String id, String name ) + public MavenManagedRepository( String id, String name, Path basePath ) { - super( RepositoryType.MAVEN, id, name ); + super( RepositoryType.MAVEN, id, name, basePath); } - public MavenManagedRepository( Locale primaryLocale, String id, String name ) + public MavenManagedRepository( Locale primaryLocale, String id, String name, Path basePath ) { - super( primaryLocale, RepositoryType.MAVEN, id, name ); + super( primaryLocale, RepositoryType.MAVEN, id, name, basePath ); } @Override http://git-wip-us.apache.org/repos/asf/archiva/blob/754b2d59/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/repository/maven2/MavenRemoteRepository.java ---------------------------------------------------------------------- diff --git a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/repository/maven2/MavenRemoteRepository.java b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/repository/maven2/MavenRemoteRepository.java index 8c7a8cf..c857196 100644 --- a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/repository/maven2/MavenRemoteRepository.java +++ b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/repository/maven2/MavenRemoteRepository.java @@ -11,6 +11,7 @@ import org.apache.archiva.repository.features.IndexCreationFeature; import org.apache.archiva.repository.features.RemoteIndexFeature; import org.apache.archiva.repository.features.RepositoryFeature; +import java.nio.file.Path; import java.util.Locale; /* @@ -53,14 +54,14 @@ public class MavenRemoteRepository extends AbstractRemoteRepository false ); - public MavenRemoteRepository( String id, String name ) + public MavenRemoteRepository( String id, String name, Path basePath ) { - super( RepositoryType.MAVEN, id, name ); + super( RepositoryType.MAVEN, id, name, basePath ); } - public MavenRemoteRepository( Locale primaryLocale, String id, String name ) + public MavenRemoteRepository( Locale primaryLocale, String id, String name, Path basePath ) { - super( primaryLocale, RepositoryType.MAVEN, id, name ); + super( primaryLocale, RepositoryType.MAVEN, id, name, basePath ); } @Override
