You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ma...@apache.org on 2018/03/24 16:46:30 UTC
[4/4] archiva git commit: Switching repository admin and dependent
classes to RepositoryRegistry
Switching repository admin and dependent classes to RepositoryRegistry
RepositoryRegistry is used for indexing context now. There is still more work to do
to move the maven dependent parts into its own projects and update the dependencies.
Project: http://git-wip-us.apache.org/repos/asf/archiva/repo
Commit: http://git-wip-us.apache.org/repos/asf/archiva/commit/c544376a
Tree: http://git-wip-us.apache.org/repos/asf/archiva/tree/c544376a
Diff: http://git-wip-us.apache.org/repos/asf/archiva/diff/c544376a
Branch: refs/heads/master
Commit: c544376afbec84689eae8ca5cc1a8f6a0ddb768d
Parents: e2eb9fe
Author: Martin Stockhammer <ma...@ars.de>
Authored: Sat Mar 24 17:41:50 2018 +0100
Committer: Martin Stockhammer <ma...@ars.de>
Committed: Sat Mar 24 17:44:13 2018 +0100
----------------------------------------------------------------------
.../DefaultArchivaConfiguration.java | 1 +
.../src/test/java/RepositoryProviderMock.java | 4 +
.../resourcesstatic/archetype-resources/pom.xml | 6 +
.../archiva-core-consumers/pom.xml | 5 +
.../repository/AbstractRepositoryPurgeTest.java | 2 -
...nupReleasedSnapshotsRepositoryPurgeTest.java | 6 +-
.../repository/mock/RepositoryProviderMock.java | 17 +-
...pring-context-cleanup-released-snapshots.xml | 2 +-
.../archiva-lucene-consumers/pom.xml | 5 +
.../consumers/lucene/NexusIndexerConsumer.java | 43 +-
.../lucene/NexusIndexerConsumerTest.java | 16 +-
.../src/test/resources/spring-context.xml | 2 +-
.../archiva-base/archiva-maven2-indexer/pom.xml | 24 +
.../indexer/maven/MavenIndexContext.java | 13 +-
.../indexer/maven/MavenIndexManager.java | 152 ++--
.../maven/search/MavenRepositorySearch.java | 106 +--
.../indexer/maven/MavenIndexManagerTest.java | 6 +
.../search/AbstractMavenRepositorySearch.java | 89 ++-
.../search/MavenRepositorySearchOSGITest.java | 13 +
.../MavenRepositorySearchPaginateTest.java | 20 +-
.../maven/search/MavenRepositorySearchTest.java | 50 +-
.../src/test/resources/log4j2-test.xml | 45 ++
.../src/test/resources/spring-context.xml | 2 +-
.../archiva-base/archiva-proxy/pom.xml | 5 +
.../MockRepositoryArchivaTaskScheduler.java | 2 +-
.../archiva/proxy/AbstractProxyTestCase.java | 6 +-
.../repository/mock/RepositoryProviderMock.java | 19 +-
.../src/test/resources/spring-context.xml | 1 +
.../model/managed/ManagedRepositoryAdmin.java | 12 +-
.../managed/DefaultManagedRepositoryAdmin.java | 293 ++-----
.../DefaultProxyConnectorAdmin.java | 10 +-
.../remote/DefaultRemoteRepositoryAdmin.java | 13 +-
.../admin/mock/ArchivaIndexManagerMock.java | 777 ++++++++++++++++++
.../admin/mock/MavenIndexContextMock.java | 136 ++++
.../group/RepositoryGroupAdminTest.java | 26 +-
.../src/test/resources/default-archiva.xml | 1 +
.../archiva/indexer/ArchivaIndexManager.java | 20 +
.../archiva/indexer/GenericIndexManager.java | 12 +
.../archiva/repository/EditableRepository.java | 8 +
.../apache/archiva/repository/Repository.java | 9 +-
.../archiva/repository/RepositoryEvent.java | 69 ++
.../repository/RepositoryEventHandler.java | 32 +
.../repository/RepositoryEventListener.java | 28 +
.../archiva/repository/RepositoryProvider.java | 2 +-
.../archiva/repository/AbstractRepository.java | 70 +-
.../repository/BasicManagedRepository.java | 7 +-
.../repository/BasicRemoteRepository.java | 12 +-
.../archiva/repository/RepositoryRegistry.java | 163 +++-
.../repository/features/AbstractFeature.java | 66 ++
.../repository/features/IndexCreationEvent.java | 35 +
.../features/IndexCreationFeature.java | 19 +-
.../mock/ArchivaIndexManagerMock.java | 85 ++
.../repository/mock/RepositoryProviderMock.java | 17 +-
.../archiva-scheduler-indexing/pom.xml | 6 +
.../indexing/ArchivaIndexingTaskExecutor.java | 18 +-
.../indexing/ArtifactIndexingTask.java | 12 +-
.../DefaultDownloadRemoteIndexScheduler.java | 21 +-
.../ArchivaIndexingTaskExecutorTest.java | 57 +-
.../indexing/DownloadRemoteIndexTaskTest.java | 44 +-
.../src/test/resources/spring-context.xml | 2 +-
.../mock/MockManagedRepositoryAdmin.java | 11 -
.../archiva-rest/archiva-rest-services/pom.xml | 3 +
.../services/DefaultRepositoriesService.java | 3 +-
.../rest/services/AbstractArchivaRestTest.java | 2 +-
.../src/test/resources/log4j2-test.xml | 16 +-
.../archiva-web/archiva-security/pom.xml | 5 +
.../archiva/security/AbstractSecurityTest.java | 6 +-
.../security/DefaultUserRepositoriesTest.java | 2 +-
.../archiva-web/archiva-web-common/pom.xml | 3 +
.../archiva-web/archiva-webdav/pom.xml | 1 +
.../AbstractRepositoryServletTestCase.java | 2 -
.../webdav/RepositoryServletBrowseTest.java | 2 +-
.../storage/maven2/Maven2RepositoryStorage.java | 36 +-
.../storage/maven2/RepositoryModelResolver.java | 33 +-
.../maven2/MavenManagedRepository.java | 7 +-
.../maven2/MavenRemoteRepository.java | 14 +-
.../maven2/MavenRepositoryProvider.java | 20 +-
.../archiva/configuration/MockRepoAdmin.java | 13 +-
.../configuration/TestConfiguration.java | 7 +-
...oryMetadataResolverMRM1411RepoGroupTest.java | 29 +-
...n2RepositoryMetadataResolverMRM1411Test.java | 7 +
...itoryMetadataResolverManagedReleaseTest.java | 6 +
...toryMetadataResolverManagedSnapshotTest.java | 6 +
.../Maven2RepositoryMetadataResolverTest.java | 13 +-
.../repository/storage/maven2/MockWagon.java | 2 +-
.../index/mock/ArchivaIndexManagerMock.java | 780 +++++++++++++++++++
.../index/mock/MavenIndexContextMock.java | 136 ++++
.../src/test/resources/spring-context.xml | 2 +-
88 files changed, 3232 insertions(+), 679 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/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 71b4c31..caedee3 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
@@ -644,6 +644,7 @@ public class DefaultArchivaConfiguration
this.configuration = unescapeExpressions( configuration );
+ isConfigurationDefaulted=false;
triggerEvent( ConfigurationEvent.SAVED );
}
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/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 a140842..ec13f21 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
@@ -230,4 +230,8 @@ public class RepositoryProviderMock implements RepositoryProvider
return configuration;
}
+ @Override
+ public <T> void raise(org.apache.archiva.repository.RepositoryEvent<T> event) {
+
+ }
}
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resourcesstatic/archetype-resources/pom.xml
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resourcesstatic/archetype-resources/pom.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resourcesstatic/archetype-resources/pom.xml
index bb98a2d..2217e8e 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resourcesstatic/archetype-resources/pom.xml
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resourcesstatic/archetype-resources/pom.xml
@@ -79,6 +79,12 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-maven2-indexer</artifactId>
+ <version>${archiva.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.apache.archiva.redback.components.registry</groupId>
<artifactId>spring-registry-api</artifactId>
<version>${redback.registry.version}</version>
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml
index c01a30b..3bfca11 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml
@@ -155,6 +155,11 @@
<artifactId>archiva-mock</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-maven2-indexer</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
<pluginManagement>
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/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 e9e7353..345d257 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
@@ -19,7 +19,6 @@ package org.apache.archiva.consumers.core.repository;
* under the License.
*/
-import org.apache.archiva.admin.model.beans.ManagedRepository;
import org.apache.archiva.metadata.model.ArtifactMetadata;
import org.apache.archiva.metadata.repository.MetadataRepository;
import org.apache.archiva.metadata.repository.RepositorySession;
@@ -54,7 +53,6 @@ import java.nio.file.Paths;
import java.time.Period;
import java.util.ArrayList;
import java.util.List;
-import java.util.Locale;
import java.util.stream.Collectors;
import static org.junit.Assert.assertFalse;
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java
index a289734..1ef4bf9 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java
@@ -107,7 +107,7 @@ public class CleanupReleasedSnapshotsRepositoryPurgeTest
{
RepositoryRegistry repositoryRegistry = applicationContext.getBean( RepositoryRegistry.class );
ManagedRepository managedRepository = repositoryRegistry.getManagedRepository( TEST_REPO_ID );
- repositoryRegistry.removeRepository( managedRepository );
+ repositoryRegistry.removeRepository( TEST_REPO_ID );
repositoryRegistry.putRepository(
getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ));
@@ -217,7 +217,7 @@ public class CleanupReleasedSnapshotsRepositoryPurgeTest
RepositoryRegistry repositoryRegistry = applicationContext.getBean(RepositoryRegistry.class);
ManagedRepository managedRepository = repositoryRegistry.getManagedRepository( TEST_REPO_ID );
- repositoryRegistry.removeRepository( managedRepository );
+ repositoryRegistry.removeRepository( TEST_REPO_ID );
repositoryRegistry.putRepository(
getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ));
@@ -298,7 +298,7 @@ public class CleanupReleasedSnapshotsRepositoryPurgeTest
RepositoryRegistry repositoryRegistry = applicationContext.getBean(RepositoryRegistry.class);
ManagedRepository managedRepository = repositoryRegistry.getManagedRepository( TEST_REPO_ID );
- repositoryRegistry.removeRepository( managedRepository );
+ repositoryRegistry.removeRepository( TEST_REPO_ID );
repositoryRegistry.putRepository(
getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ));
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/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 286dd38..4af39c3 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
@@ -21,18 +21,7 @@ package org.apache.archiva.repository.mock;
import org.apache.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.archiva.configuration.RemoteRepositoryConfiguration;
-import org.apache.archiva.repository.BasicManagedRepository;
-import org.apache.archiva.repository.BasicRemoteRepository;
-import org.apache.archiva.repository.EditableManagedRepository;
-import org.apache.archiva.repository.EditableRemoteRepository;
-import org.apache.archiva.repository.ManagedRepository;
-import org.apache.archiva.repository.PasswordCredentials;
-import org.apache.archiva.repository.ReleaseScheme;
-import org.apache.archiva.repository.RemoteRepository;
-import org.apache.archiva.repository.RepositoryCredentials;
-import org.apache.archiva.repository.RepositoryException;
-import org.apache.archiva.repository.RepositoryProvider;
-import org.apache.archiva.repository.RepositoryType;
+import org.apache.archiva.repository.*;
import org.apache.archiva.repository.features.ArtifactCleanupFeature;
import org.apache.archiva.repository.features.IndexCreationFeature;
import org.apache.archiva.repository.features.RemoteIndexFeature;
@@ -229,4 +218,8 @@ public class RepositoryProviderMock implements RepositoryProvider
return configuration;
}
+ @Override
+ public <T> void raise(RepositoryEvent<T> event) {
+
+ }
}
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/spring-context-cleanup-released-snapshots.xml
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/spring-context-cleanup-released-snapshots.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/spring-context-cleanup-released-snapshots.xml
index 5119c55..ddc8bff 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/spring-context-cleanup-released-snapshots.xml
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/spring-context-cleanup-released-snapshots.xml
@@ -32,7 +32,7 @@
</bean>
<alias name="archivaConfiguration#cleanup-released-snapshots" alias="archivaConfiguration"/>
<alias name="archivaConfiguration#cleanup-released-snapshots" alias="archivaConfiguration#default"/>
- <context:component-scan base-package="org.apache.archiva.configuration,org.apache.archiva.repository.content.maven2"/>
+ <context:component-scan base-package="org.apache.archiva.configuration,org.apache.archiva.repository.content.maven2,org.apache.archiva.indexer.maven"/>
<alias name="repositoryContentFactory#cleanup-released-snapshots" alias="repositoryContentFactory#default" />
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/pom.xml
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/pom.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/pom.xml
index 2088251..bb489a2 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/pom.xml
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/pom.xml
@@ -136,6 +136,11 @@
<artifactId>xercesImpl</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-maven2-indexer</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
<plugins>
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java
index 50dd8c1..6cadd27 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java
@@ -28,11 +28,13 @@ import org.apache.archiva.configuration.FileTypes;
import org.apache.archiva.consumers.AbstractMonitoredConsumer;
import org.apache.archiva.consumers.ConsumerException;
import org.apache.archiva.consumers.KnownRepositoryContentConsumer;
+import org.apache.archiva.indexer.UnsupportedBaseContextException;
import org.apache.archiva.redback.components.registry.Registry;
import org.apache.archiva.redback.components.registry.RegistryListener;
import org.apache.archiva.redback.components.taskqueue.TaskQueueException;
import org.apache.archiva.repository.ManagedRepository;
import org.apache.archiva.repository.RepositoryRegistry;
+import org.apache.archiva.repository.RepositoryType;
import org.apache.archiva.scheduler.ArchivaTaskScheduler;
import org.apache.archiva.scheduler.indexing.ArtifactIndexingTask;
import org.apache.maven.index.NexusIndexer;
@@ -124,11 +126,14 @@ public class NexusIndexerConsumer
try
{
log.info( "Creating indexing context for repo : {}", repository.getId() );
- indexingContext = managedRepositoryAdmin.createIndexContext( repository );
- }
- catch ( RepositoryAdminException e )
- {
- throw new ConsumerException( e.getMessage(), e );
+ if (repository.getType()== RepositoryType.MAVEN) {
+ indexingContext = repository.getIndexingContext().getBaseContext(IndexingContext.class);
+ } else {
+ indexingContext= null;
+ }
+ } catch (UnsupportedBaseContextException e) {
+ log.error("Bad repository type. Not nexus indexer compatible.");
+ throw new ConsumerException("Bad repository type "+repository.getType());
}
}
@@ -154,7 +159,7 @@ public class NexusIndexerConsumer
Path artifactFile = managedRepository.resolve(path);
ArtifactIndexingTask task =
- new ArtifactIndexingTask( repository, artifactFile, ArtifactIndexingTask.Action.ADD, getIndexingContext() );
+ new ArtifactIndexingTask( repository, artifactFile, ArtifactIndexingTask.Action.ADD, repository.getIndexingContext() );
try
{
log.debug( "Queueing indexing task '{}' to add or update the artifact in the index.", task );
@@ -181,7 +186,7 @@ public class NexusIndexerConsumer
// specify in indexing task that this is not a repo scan request!
ArtifactIndexingTask task =
new ArtifactIndexingTask( repository, artifactFile, ArtifactIndexingTask.Action.ADD,
- getIndexingContext(), false );
+ repository.getIndexingContext(), false );
// only update index we don't need to scan the full repo here
task.setOnlyUpdate( true );
try
@@ -199,21 +204,8 @@ public class NexusIndexerConsumer
@Override
public void completeScan()
{
- IndexingContext context = this.indexingContext;
- if ( context == null )
- {
- try
- {
- context = getIndexingContext();
- }
- catch ( ConsumerException e )
- {
- log.warn( "failed to get an IndexingContext:{}", e.getMessage() );
- return;
- }
- }
ArtifactIndexingTask task =
- new ArtifactIndexingTask( repository, null, ArtifactIndexingTask.Action.FINISH, context );
+ new ArtifactIndexingTask( repository, null, ArtifactIndexingTask.Action.FINISH, repository.getIndexingContext());
try
{
log.debug( "Queueing indexing task '{}' to finish indexing.", task );
@@ -292,11 +284,10 @@ public class NexusIndexerConsumer
{
try
{
- indexingContext = managedRepositoryAdmin.createIndexContext( repository );
- }
- catch ( RepositoryAdminException e )
- {
- throw new ConsumerException( e.getMessage(), e );
+ indexingContext = repository.getIndexingContext().getBaseContext(IndexingContext.class);
+ } catch (UnsupportedBaseContextException e) {
+ log.error("Bad repository type. Not nexus indexer compatible. "+repository.getType());
+ throw new ConsumerException("Bad repository type "+repository.getType());
}
}
return indexingContext;
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/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 e34dc7e..2efebfb 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
@@ -26,14 +26,13 @@ import org.apache.archiva.configuration.ArchivaConfiguration;
import org.apache.archiva.configuration.FileTypes;
import org.apache.archiva.redback.components.taskqueue.TaskQueueException;
import org.apache.archiva.repository.BasicManagedRepository;
-import org.apache.archiva.repository.ManagedRepository;
import org.apache.archiva.repository.ReleaseScheme;
+import org.apache.archiva.repository.RepositoryRegistry;
import org.apache.archiva.scheduler.ArchivaTaskScheduler;
import org.apache.archiva.scheduler.indexing.ArtifactIndexingTask;
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
import org.apache.maven.index.NexusIndexer;
import org.apache.maven.index.context.IndexCreator;
-import org.apache.regexp.RE;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -47,12 +46,7 @@ import java.net.URI;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Set;
+import java.util.*;
/**
* NexusIndexerConsumerTest
@@ -111,6 +105,9 @@ public class NexusIndexerConsumerTest
@Inject
private ManagedRepositoryAdmin managedRepositoryAdmin;
+ @Inject
+ RepositoryRegistry repositoryRegistry;
+
@Override
@Before
@@ -138,6 +135,7 @@ public class NexusIndexerConsumerTest
repositoryConfig.setScanned( true );
repositoryConfig.addActiveReleaseScheme( ReleaseScheme.RELEASE );
repositoryConfig.removeActiveReleaseScheme( ReleaseScheme.SNAPSHOT );
+ repositoryRegistry.putRepository(repositoryConfig);
}
@@ -156,6 +154,8 @@ public class NexusIndexerConsumerTest
org.apache.archiva.common.utils.FileUtils.deleteDirectory( indexDir );
assertFalse( Files.exists(indexDir) );
+ repositoryRegistry.destroy();
+
super.tearDown();
}
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/spring-context.xml
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/spring-context.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/spring-context.xml
index a891372..ebf3181 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/spring-context.xml
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/spring-context.xml
@@ -28,7 +28,7 @@
http://www.springframework.org/schema/context/spring-context-3.0.xsd"
default-lazy-init="true">
<context:annotation-config/>
- <context:component-scan base-package="org.apache.archiva.consumers.lucene.test"/>
+ <context:component-scan base-package="org.apache.archiva.consumers.lucene.test,org.apache.maven.index"/>
<bean name="commons-configuration" class="org.apache.archiva.redback.components.registry.commons.CommonsConfigurationRegistry">
<property name="properties">
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-maven2-indexer/pom.xml
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-maven2-indexer/pom.xml b/archiva-modules/archiva-base/archiva-maven2-indexer/pom.xml
index e51f824..2a2e1c4 100644
--- a/archiva-modules/archiva-base/archiva-maven2-indexer/pom.xml
+++ b/archiva-modules/archiva-base/archiva-maven2-indexer/pom.xml
@@ -56,6 +56,11 @@
</dependency>
<dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
</dependency>
@@ -142,6 +147,12 @@
<artifactId>archiva-test-utils</artifactId>
<version>${project.version}</version>
<scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
@@ -216,6 +227,19 @@
</exclusion>
</exclusions>
</dependency>
+
+
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-slf4j-impl</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-jcl</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexContext.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexContext.java b/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexContext.java
index 4ee8079..37f602f 100644
--- a/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexContext.java
+++ b/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexContext.java
@@ -26,6 +26,7 @@ import org.apache.maven.index.context.IndexingContext;
import java.io.IOException;
import java.net.URI;
import java.nio.file.Files;
+import java.nio.file.NoSuchFileException;
import java.sql.Date;
import java.time.ZonedDateTime;
import java.util.Set;
@@ -81,12 +82,20 @@ public class MavenIndexContext implements ArchivaIndexingContext {
@Override
public void close(boolean deleteFiles) throws IOException {
- delegate.close(deleteFiles);
+ try {
+ delegate.close(deleteFiles);
+ } catch (NoSuchFileException e) {
+ // Ignore missing directory
+ }
}
@Override
public void close() throws IOException {
- delegate.close(false);
+ try {
+ delegate.close(false);
+ } catch (NoSuchFileException e) {
+ // Ignore missing directory
+ }
}
@Override
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/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 00e67e4..51a5f70 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
@@ -22,6 +22,7 @@ package org.apache.archiva.indexer.maven;
import org.apache.archiva.admin.model.RepositoryAdminException;
import org.apache.archiva.admin.model.beans.NetworkProxy;
import org.apache.archiva.admin.model.networkproxy.NetworkProxyAdmin;
+import org.apache.archiva.common.utils.FileUtils;
import org.apache.archiva.common.utils.PathUtil;
import org.apache.archiva.configuration.ArchivaConfiguration;
import org.apache.archiva.indexer.ArchivaIndexManager;
@@ -32,12 +33,7 @@ import org.apache.archiva.indexer.UnsupportedBaseContextException;
import org.apache.archiva.proxy.common.WagonFactory;
import org.apache.archiva.proxy.common.WagonFactoryException;
import org.apache.archiva.proxy.common.WagonFactoryRequest;
-import org.apache.archiva.repository.ManagedRepository;
-import org.apache.archiva.repository.PasswordCredentials;
-import org.apache.archiva.repository.RemoteRepository;
-import org.apache.archiva.repository.Repository;
-import org.apache.archiva.repository.RepositoryType;
-import org.apache.archiva.repository.UnsupportedRepositoryTypeException;
+import org.apache.archiva.repository.*;
import org.apache.archiva.repository.features.IndexCreationFeature;
import org.apache.archiva.repository.features.RemoteIndexFeature;
import org.apache.commons.lang.StringUtils;
@@ -425,7 +421,7 @@ public class MavenIndexManager implements ArchivaIndexManager
@Override
public ArchivaIndexingContext createContext( Repository repository ) throws IndexCreationFailedException
{
-
+ log.debug("Creating context for repo {}, type: {}", repository.getId(), repository.getType());
if ( repository.getType( ) != RepositoryType.MAVEN )
{
throw new UnsupportedRepositoryTypeException( repository.getType( ) );
@@ -449,44 +445,120 @@ public class MavenIndexManager implements ArchivaIndexManager
+ ( StringUtils.isNotEmpty( e.getMessage( ) ) ? ": " + e.getMessage( ) : "" ), e );
}
MavenIndexContext context = new MavenIndexContext( repository, mvnCtx );
+
return context;
}
- private IndexingContext createRemoteContext( RemoteRepository remoteRepository ) throws IOException
+ @Override
+ public ArchivaIndexingContext reset(ArchivaIndexingContext context) throws IndexUpdateFailedException {
+ ArchivaIndexingContext ctx;
+ executeUpdateFunction(context, indexingContext -> {
+ try {
+ indexingContext.close(true);
+ } catch (IOException e) {
+ log.warn("Index close failed");
+ }
+ try {
+ FileUtils.deleteDirectory(Paths.get(context.getPath()));
+ } catch (IOException e) {
+ throw new IndexUpdateFailedException("Could not delete index files");
+ }
+ });
+ try {
+ Repository repo = context.getRepository();
+ ctx = createContext(context.getRepository());
+ if (repo instanceof EditableRepository) {
+ ((EditableRepository)repo).setIndexingContext(ctx);
+ }
+ } catch (IndexCreationFailedException e) {
+ throw new IndexUpdateFailedException("Could not create index");
+ }
+ return ctx;
+ }
+
+ @Override
+ public ArchivaIndexingContext move(ArchivaIndexingContext context, Repository repo) throws IndexCreationFailedException {
+ if (context==null) {
+ return null;
+ }
+ if (context.supports(IndexingContext.class)) {
+ try {
+ Path newPath = getIndexPath(repo);
+ IndexingContext ctx = context.getBaseContext(IndexingContext.class);
+ Path oldPath = ctx.getIndexDirectoryFile().toPath();
+ if (oldPath.equals(newPath)) {
+ // Nothing to do, if path does not change
+ return context;
+ }
+ if (!Files.exists(oldPath)) {
+ return createContext(repo);
+ } else if (context.isEmpty()) {
+ context.close();
+ return createContext(repo);
+ } else {
+ context.close(false);
+ Files.move(oldPath, newPath);
+ return createContext(repo);
+ }
+ } catch (IOException e) {
+ log.error("IOException while moving index directory {}", e.getMessage(), e);
+ throw new IndexCreationFailedException("Could not recreated the index.", e);
+ } catch (UnsupportedBaseContextException e) {
+ throw new IndexCreationFailedException("The given context, is not a maven context.");
+ }
+ } else {
+ throw new IndexCreationFailedException("Bad context type. This is not a maven context.");
+ }
+ }
+
+ private Path getIndexPath(Repository repo) throws IOException {
+ IndexCreationFeature icf = repo.getFeature(IndexCreationFeature.class).get();
+ Path repoDir = repo.getLocalPath();
+ URI indexDir = icf.getIndexPath();
+ Path indexDirectory = null;
+ if ( ! StringUtils.isEmpty(indexDir.toString( ) ) )
+ {
+
+ indexDirectory = PathUtil.getPathFromUri( indexDir );
+ // not absolute so create it in repository directory
+ if ( !indexDirectory.isAbsolute( ) )
+ {
+ indexDirectory = repoDir.resolve( indexDirectory );
+ }
+ }
+ else
+ {
+ indexDirectory = repoDir.resolve( ".index" );
+ }
+
+ if ( !Files.exists( indexDirectory ) )
+ {
+ Files.createDirectories( indexDirectory );
+ }
+ return indexDirectory;
+ }
+
+ private IndexingContext createRemoteContext(RemoteRepository remoteRepository ) throws IOException
{
Path appServerBase = archivaConfiguration.getAppServerBaseDir( );
String contextKey = "remote-" + remoteRepository.getId( );
+
// create remote repository path
- Path repoDir = appServerBase.resolve( "data" ).resolve( "remotes" ).resolve( remoteRepository.getId( ) );
+ Path repoDir = remoteRepository.getLocalPath();
if ( !Files.exists( repoDir ) )
{
Files.createDirectories( repoDir );
}
- Path indexDirectory;
+ Path indexDirectory = null;
// is there configured indexDirectory ?
if ( remoteRepository.supportsFeature( RemoteIndexFeature.class ) )
{
RemoteIndexFeature rif = remoteRepository.getFeature( RemoteIndexFeature.class ).get( );
- indexDirectory = PathUtil.getPathFromUri( rif.getIndexUri( ) );
- if ( !indexDirectory.isAbsolute( ) )
- {
- indexDirectory = repoDir.resolve( indexDirectory );
- }
-
- // if not configured use a default value
- if ( indexDirectory == null )
- {
- indexDirectory = repoDir.resolve( ".index" );
- }
- if ( !Files.exists( indexDirectory ) )
- {
- Files.createDirectories( indexDirectory );
- }
-
+ indexDirectory = getIndexPath(remoteRepository);
String remoteIndexUrl = calculateIndexRemoteUrl( remoteRepository.getLocation( ), rif );
try
{
@@ -538,35 +610,11 @@ public class MavenIndexManager implements ArchivaIndexManager
}
}
+ Path indexDirectory = null;
if ( repository.supportsFeature( IndexCreationFeature.class ) )
{
- IndexCreationFeature icf = repository.getFeature( IndexCreationFeature.class ).get( );
- URI indexDir = icf.getIndexPath( );
- //File managedRepository = new File( repository.getLocation() );
-
- Path indexDirectory = null;
- if ( indexDir != null && !"".equals( indexDir.toString( ) ) )
- {
-
- indexDirectory = PathUtil.getPathFromUri( indexDir );
- // not absolute so create it in repository directory
- if ( !indexDirectory.isAbsolute( ) )
- {
- indexDirectory = repositoryDirectory.resolve( indexDirectory );
- }
- icf.setIndexPath( indexDirectory.normalize( ).toUri( ) );
- }
- else
- {
- indexDirectory = repositoryDirectory.resolve( ".indexer" );
- icf.setIndexPath( indexDirectory.toUri( ) );
- }
-
- if ( !Files.exists( indexDirectory ) )
- {
- Files.createDirectories( indexDirectory );
- }
+ indexDirectory = getIndexPath(repository);
String indexUrl = repositoryDirectory.toUri( ).toURL( ).toExternalForm( );
try
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearch.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearch.java b/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearch.java
index 590cdd2..c861a9b 100644
--- a/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearch.java
+++ b/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearch.java
@@ -20,24 +20,20 @@ package org.apache.archiva.indexer.maven.search;
*/
import org.apache.archiva.admin.model.RepositoryAdminException;
-import org.apache.archiva.admin.model.beans.ManagedRepository;
import org.apache.archiva.admin.model.beans.ProxyConnector;
-import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin;
import org.apache.archiva.admin.model.proxyconnector.ProxyConnectorAdmin;
import org.apache.archiva.common.plexusbridge.PlexusSisuBridgeException;
+import org.apache.archiva.indexer.UnsupportedBaseContextException;
+import org.apache.archiva.indexer.search.ArtifactInfoFilter;
import org.apache.archiva.indexer.search.*;
import org.apache.archiva.indexer.util.SearchUtil;
import org.apache.archiva.model.ArchivaArtifactModel;
-import org.apache.archiva.model.ArtifactReference;
+import org.apache.archiva.repository.RemoteRepository;
+import org.apache.archiva.repository.Repository;
+import org.apache.archiva.repository.RepositoryRegistry;
+import org.apache.archiva.repository.RepositoryType;
import org.apache.commons.lang.StringUtils;
-import org.apache.maven.index.ArtifactInfo;
-import org.apache.maven.index.FlatSearchRequest;
-import org.apache.maven.index.FlatSearchResponse;
-import org.apache.maven.index.MAVEN;
-import org.apache.maven.index.NexusIndexer;
-import org.apache.maven.index.OSGI;
-import org.apache.maven.index.QueryCreator;
-import org.apache.maven.index.SearchType;
+import org.apache.maven.index.*;
import org.apache.maven.index.context.IndexingContext;
import org.apache.maven.index.expr.SearchExpression;
import org.apache.maven.index.expr.SearchTyped;
@@ -52,13 +48,7 @@ import org.springframework.stereotype.Service;
import javax.inject.Inject;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
/**
* RepositorySearch implementation which uses the Maven Indexer for searching.
@@ -69,11 +59,12 @@ public class MavenRepositorySearch
{
private Logger log = LoggerFactory.getLogger( getClass() );
- private NexusIndexer indexer;
+ private Indexer indexer;
private QueryCreator queryCreator;
- private ManagedRepositoryAdmin managedRepositoryAdmin;
+
+ RepositoryRegistry repositoryRegistry;
private ProxyConnectorAdmin proxyConnectorAdmin;
@@ -83,13 +74,14 @@ public class MavenRepositorySearch
}
@Inject
- public MavenRepositorySearch( NexusIndexer nexusIndexer, ManagedRepositoryAdmin managedRepositoryAdmin,
+ public MavenRepositorySearch( Indexer nexusIndexer, RepositoryRegistry repositoryRegistry,
+
ProxyConnectorAdmin proxyConnectorAdmin, QueryCreator queryCreator )
throws PlexusSisuBridgeException
{
this.indexer = nexusIndexer;
this.queryCreator = queryCreator;
- this.managedRepositoryAdmin = managedRepositoryAdmin;
+ this.repositoryRegistry = repositoryRegistry;
this.proxyConnectorAdmin = proxyConnectorAdmin;
}
@@ -335,13 +327,36 @@ public class MavenRepositorySearch
}
+ private IndexingContext getIndexingContext(String id) {
+ String repoId;
+ if (StringUtils.startsWith(id, "remote-")) {
+ repoId = StringUtils.substringAfter(id, "remote-");
+ } else {
+ repoId = id;
+ }
+ Repository repo = repositoryRegistry.getRepository(repoId);
+ if (repo==null) {
+ return null;
+ } else {
+ if (repo.getIndexingContext()!=null) {
+ try {
+ return repo.getIndexingContext().getBaseContext(IndexingContext.class);
+ } catch (UnsupportedBaseContextException e) {
+ return null;
+ }
+ } else {
+ return null;
+ }
+ }
+ }
+
private List<IndexingContext> getIndexingContexts( List<String> ids )
{
List<IndexingContext> contexts = new ArrayList<>( ids.size() );
for ( String id : ids )
{
- IndexingContext context = indexer.getIndexingContexts().get( id );
+ IndexingContext context = getIndexingContext(id);
if ( context != null )
{
contexts.add( context );
@@ -382,20 +397,20 @@ public class MavenRepositorySearch
{
try
{
- ManagedRepository repoConfig = managedRepositoryAdmin.getManagedRepository( repo );
+ Repository rRepo = repositoryRegistry.getRepository(repo);
- if ( repoConfig != null )
+ if ( rRepo != null )
{
- IndexingContext context = managedRepositoryAdmin.createIndexContext( repoConfig );
- if ( context.isSearchable() )
- {
- indexingContextIds.addAll( getRemoteIndexingContextIds( repo ) );
- indexingContextIds.add( context.getId() );
- }
- else
- {
- log.warn( "indexingContext with id {} not searchable", repoConfig.getId() );
+ if (rRepo.getType().equals(RepositoryType.MAVEN)) {
+ assert rRepo.getIndexingContext() != null;
+ IndexingContext context = rRepo.getIndexingContext().getBaseContext(IndexingContext.class);
+ if (context.isSearchable()) {
+ indexingContextIds.addAll(getRemoteIndexingContextIds(repo));
+ indexingContextIds.add(context.getId());
+ } else {
+ log.warn("indexingContext with id {} not searchable", rRepo.getId());
+ }
}
}
@@ -404,17 +419,14 @@ public class MavenRepositorySearch
log.warn( "Repository '{}' not found in configuration.", repo );
}
}
- catch ( RepositoryAdminException e )
- {
- log.warn( "RepositoryAdminException occured while accessing index of repository '{}' : {}", repo,
- e.getMessage() );
- continue;
- }
catch ( RepositorySearchException e )
{
log.warn( "RepositorySearchException occured while accessing index of repository '{}' : {}", repo,
e.getMessage() );
continue;
+ } catch (UnsupportedBaseContextException e) {
+ log.error("Fatal situation: Maven repository without IndexingContext found.");
+ continue;
}
}
@@ -446,10 +458,16 @@ public class MavenRepositorySearch
for ( ProxyConnector proxyConnector : proxyConnectors )
{
String remoteId = "remote-" + proxyConnector.getTargetRepoId();
- IndexingContext context = indexer.getIndexingContexts().get( remoteId );
- if ( context != null && context.isSearchable() )
- {
- ids.add( remoteId );
+ RemoteRepository repo = repositoryRegistry.getRemoteRepository(proxyConnector.getTargetRepoId());
+ if (repo.getType()==RepositoryType.MAVEN) {
+ try {
+ IndexingContext context = repo.getIndexingContext() != null ? repo.getIndexingContext().getBaseContext(IndexingContext.class) : null;
+ if (context!=null && context.isSearchable()) {
+ ids.add(remoteId);
+ }
+ } catch (UnsupportedBaseContextException e) {
+ // Ignore this one
+ }
}
}
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/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
index 53cdaad..32e3b6f 100644
--- 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
@@ -22,6 +22,7 @@ package org.apache.archiva.indexer.maven;
import org.apache.archiva.common.utils.FileUtils;
import org.apache.archiva.indexer.ArchivaIndexingContext;
import org.apache.archiva.indexer.IndexCreationFailedException;
+import org.apache.archiva.repository.RepositoryRegistry;
import org.apache.archiva.repository.RepositoryType;
import org.apache.archiva.repository.features.IndexCreationFeature;
import org.apache.archiva.repository.features.RemoteIndexFeature;
@@ -58,6 +59,10 @@ import static org.junit.Assert.*;
@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
public class MavenIndexManagerTest {
+ @Inject
+ RepositoryRegistry repositoryRegistry;
+
+
private Path indexPath;
private MavenManagedRepository repository;
private ArchivaIndexingContext ctx;
@@ -72,6 +77,7 @@ public class MavenIndexManagerTest {
@After
public void tearDown() {
+ repositoryRegistry.destroy();
if (ctx!=null) {
try {
ctx.close(true);
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/AbstractMavenRepositorySearch.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/AbstractMavenRepositorySearch.java b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/AbstractMavenRepositorySearch.java
index 07fcc09..e5171d2 100644
--- a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/AbstractMavenRepositorySearch.java
+++ b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/AbstractMavenRepositorySearch.java
@@ -28,18 +28,14 @@ import org.apache.archiva.configuration.ArchivaConfiguration;
import org.apache.archiva.configuration.Configuration;
import org.apache.archiva.configuration.ConfigurationListener;
import org.apache.archiva.configuration.ManagedRepositoryConfiguration;
-import org.apache.archiva.indexer.maven.search.MavenRepositorySearch;
import org.apache.archiva.indexer.search.SearchResultHit;
import org.apache.archiva.indexer.search.SearchResults;
+import org.apache.archiva.repository.Repository;
import org.apache.archiva.repository.RepositoryRegistry;
+import org.apache.archiva.repository.features.IndexCreationFeature;
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
import org.apache.commons.lang.SystemUtils;
-import org.apache.maven.index.ArtifactContext;
-import org.apache.maven.index.ArtifactContextProducer;
-import org.apache.maven.index.ArtifactScanningListener;
-import org.apache.maven.index.NexusIndexer;
-import org.apache.maven.index.QueryCreator;
-import org.apache.maven.index.ScanningResult;
+import org.apache.maven.index.*;
import org.apache.maven.index.context.IndexCreator;
import org.apache.maven.index.context.IndexingContext;
import org.easymock.EasyMock;
@@ -87,6 +83,9 @@ public abstract class AbstractMavenRepositorySearch
@Inject
RepositoryRegistry repositoryRegistry;
+ @Inject
+ private IndexerEngine indexerEngine;
+
IMocksControl archivaConfigControl;
Configuration config;
@@ -98,7 +97,10 @@ public abstract class AbstractMavenRepositorySearch
List<IndexCreator> indexCreators;
@Inject
- NexusIndexer nexusIndexer;
+ Indexer indexer;
+
+ @Inject
+ Scanner scanner;
@Inject
QueryCreator queryCreator;
@@ -127,11 +129,9 @@ public abstract class AbstractMavenRepositorySearch
defaultProxyConnectorAdmin.setArchivaConfiguration( archivaConfig );
repositoryRegistry.setArchivaConfiguration( archivaConfig );
- search = new MavenRepositorySearch( nexusIndexer, defaultManagedRepositoryAdmin, defaultProxyConnectorAdmin,
+ search = new MavenRepositorySearch( indexer, repositoryRegistry, defaultProxyConnectorAdmin,
queryCreator );
- defaultManagedRepositoryAdmin.setIndexer( nexusIndexer );
- defaultManagedRepositoryAdmin.setIndexCreators( indexCreators );
assertNotNull( repositoryRegistry );
defaultManagedRepositoryAdmin.setRepositoryRegistry( repositoryRegistry );
@@ -144,6 +144,8 @@ public abstract class AbstractMavenRepositorySearch
archivaConfig.addListener( EasyMock.anyObject( ConfigurationListener.class ) );
EasyMock.expect( archivaConfig.getDefaultLocale() ).andReturn( Locale.getDefault( ) ).anyTimes();
EasyMock.expect( archivaConfig.getConfiguration() ).andReturn(config).anyTimes();
+ archivaConfig.save(EasyMock.anyObject(Configuration.class));
+ EasyMock.expectLastCall().anyTimes();
archivaConfigControl.replay();
repositoryRegistry.reload();
archivaConfigControl.reset();
@@ -154,11 +156,16 @@ public abstract class AbstractMavenRepositorySearch
public void tearDown()
throws Exception
{
- for ( IndexingContext indexingContext : nexusIndexer.getIndexingContexts().values() )
- {
- nexusIndexer.removeIndexingContext( indexingContext, true );
- }
-
+ archivaConfigControl.reset();
+ EasyMock.expect( archivaConfig.getDefaultLocale() ).andReturn( Locale.getDefault( ) ).anyTimes();
+ EasyMock.expect( archivaConfig.getConfiguration() ).andReturn(config).anyTimes();
+ archivaConfig.save(EasyMock.anyObject(Configuration.class));
+ EasyMock.expectLastCall().anyTimes();
+ archivaConfigControl.replay();
+ repositoryRegistry.removeRepository(TEST_REPO_1);
+ repositoryRegistry.removeRepository(TEST_REPO_2);
+ repositoryRegistry.removeRepository(REPO_RELEASE);
+ repositoryRegistry.destroy();
FileUtils.deleteDirectory( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "/target/repos/" + TEST_REPO_1 ) );
assertFalse( Files.exists(Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "/target/repos/" + TEST_REPO_1 )) );
@@ -190,22 +197,32 @@ public abstract class AbstractMavenRepositorySearch
repositoryConfig.setScanned( true );
repositoryConfig.setSnapshots( false );
repositoryConfig.setReleases( true );
+ repositoryConfig.setIndexDir(".indexer");
return repositoryConfig;
}
- protected void createIndex( String repository, List<Path> filesToBeIndexed, boolean scan )
+ protected void createIndex( String repository, List<Path> filesToBeIndexed, boolean scan) throws Exception {
+ createIndex(repository, filesToBeIndexed, scan, null);
+ }
+
+ protected void createIndex( String repository, List<Path> filesToBeIndexed, boolean scan, Path indexDir)
throws Exception
{
+ Repository rRepo = repositoryRegistry.getRepository(repository);
+ IndexCreationFeature icf = rRepo.getFeature(IndexCreationFeature.class).get();
+
- IndexingContext context = nexusIndexer.getIndexingContexts().get( repository );
+ IndexingContext context = rRepo.getIndexingContext().getBaseContext(IndexingContext.class);
if ( context != null )
{
- nexusIndexer.removeIndexingContext( context, true );
+ context.close(true);
}
- Path indexerDirectory = Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "/target/repos/" + repository + "/.indexer" );
+ Path repoDir = Paths.get(org.apache.archiva.common.utils.FileUtils.getBasedir()).resolve("target").resolve("repos").resolve(repository);
+
+ Path indexerDirectory = repoDir.resolve(".indexer" );
if ( Files.exists(indexerDirectory) )
{
@@ -214,7 +231,7 @@ public abstract class AbstractMavenRepositorySearch
assertFalse( Files.exists(indexerDirectory) );
- Path lockFile = Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "/target/repos/" + repository + "/.indexer/write.lock" );
+ Path lockFile = repoDir.resolve(".indexer/write.lock" );
if ( Files.exists(lockFile) )
{
Files.delete(lockFile);
@@ -224,14 +241,20 @@ public abstract class AbstractMavenRepositorySearch
Path repo = Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "src/test/" + repository );
assertTrue( Files.exists(repo) );
- Path indexDirectory =
- Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/index/test-" + Long.toString( System.currentTimeMillis() ) );
- indexDirectory.toFile().deleteOnExit();
- FileUtils.deleteDirectory( indexDirectory );
+ org.apache.commons.io.FileUtils.copyDirectory(repo.toFile(), repoDir.toFile());
+
+ if (indexDir==null) {
+ Path indexDirectory =
+ Paths.get(org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/index/test-" + Long.toString(System.currentTimeMillis()));
+ indexDirectory.toFile().deleteOnExit();
+ FileUtils.deleteDirectory(indexDirectory);
+ icf.setIndexPath(indexDirectory.toUri());
+ } else {
+
+ icf.setIndexPath(indexDir.toUri());
+ }
+ context = rRepo.getIndexingContext().getBaseContext(IndexingContext.class);
- context = nexusIndexer.addIndexingContext( repository, repository, repo.toFile(), indexDirectory.toFile(),
- repo.toUri().toURL().toExternalForm(),
- indexDirectory.toUri().toURL().toString(), indexCreators );
// minimize datas in memory
// context.getIndexWriter().setMaxBufferedDocs( -1 );
@@ -247,16 +270,20 @@ public abstract class AbstractMavenRepositorySearch
ac.getArtifactInfo().setPackaging( "pom" );
ac.getArtifactInfo().setClassifier( "pom" );
}
- nexusIndexer.addArtifactToIndex( ac, context );
+ indexer.addArtifactToIndex( ac, context );
context.updateTimestamp( true );
}
if ( scan )
{
- nexusIndexer.scan( context, new ArtifactScanListener(), false );
+ DefaultScannerListener listener = new DefaultScannerListener( context, indexerEngine, true, new ArtifactScanListener());
+ ScanningRequest req = new ScanningRequest(context, listener );
+ scanner.scan( req );
+ context.commit();
}
// force flushing
- context.getIndexWriter().commit();
+ context.commit();
+ // context.getIndexWriter().commit();
context.setSearchable( true );
}
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchOSGITest.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchOSGITest.java b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchOSGITest.java
index e99947f..066b2af 100644
--- a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchOSGITest.java
+++ b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchOSGITest.java
@@ -22,9 +22,12 @@ package org.apache.archiva.indexer.maven.search;
import org.apache.archiva.indexer.search.SearchFields;
import org.apache.archiva.indexer.search.SearchResultHit;
import org.apache.archiva.indexer.search.SearchResults;
+import org.apache.archiva.repository.RepositoryRegistry;
import org.easymock.EasyMock;
+import org.junit.After;
import org.junit.Test;
+import javax.inject.Inject;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.Collections;
@@ -38,6 +41,16 @@ public class MavenRepositorySearchOSGITest
extends AbstractMavenRepositorySearch
{
+ @Inject
+ RepositoryRegistry repositoryRegistry;
+
+ @After
+ @Override
+ public void tearDown() throws Exception {
+ super.tearDown();
+ repositoryRegistry.destroy();
+ }
+
@Test
public void searchFelixWithSymbolicName()
throws Exception
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchPaginateTest.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchPaginateTest.java b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchPaginateTest.java
index c8498b2..d679edf 100644
--- a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchPaginateTest.java
+++ b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchPaginateTest.java
@@ -24,19 +24,37 @@ import org.apache.archiva.indexer.search.SearchResultHit;
import org.apache.archiva.indexer.search.SearchResultLimits;
import org.apache.archiva.indexer.search.SearchResults;
import org.apache.archiva.indexer.util.SearchUtil;
+import org.apache.archiva.repository.RepositoryRegistry;
+import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
+import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.Arrays;
import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+
+import javax.inject.Inject;
/**
* @author Olivier Lamy
*/
-@RunWith( ArchivaBlockJUnit4ClassRunner.class )
+@RunWith( ArchivaSpringJUnit4ClassRunner.class )
+@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
public class MavenRepositorySearchPaginateTest
extends TestCase
{
+
+ @Autowired
+ RepositoryRegistry repositoryRegistry;
+
+ @After
+ public void endTests() {
+ assert repositoryRegistry!=null;
+ repositoryRegistry.destroy();
+ }
+
@Test
public void nonPaginatedResult()
throws Exception
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchTest.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchTest.java b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchTest.java
index 1cc1574..eff589f 100644
--- a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchTest.java
+++ b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchTest.java
@@ -50,11 +50,11 @@ public class MavenRepositorySearchTest
throws Exception
{
List<Path> files = new ArrayList<>();
- files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "src/test", TEST_REPO_1,
+ files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/repos", TEST_REPO_1,
"/org/apache/archiva/archiva-search/1.0/archiva-search-1.0.jar" ) );
- files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "src/test", TEST_REPO_1,
+ files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/repos", TEST_REPO_1,
"/org/apache/archiva/archiva-test/1.0/archiva-test-1.0.jar" ));
- files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "src/test", TEST_REPO_1,
+ files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/repos", TEST_REPO_1,
"org/apache/archiva/archiva-test/2.0/archiva-test-2.0.jar" ));
createIndex( TEST_REPO_1, files, scan );
@@ -64,20 +64,20 @@ public class MavenRepositorySearchTest
throws Exception
{
List<Path> files = new ArrayList<>();
- files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "src/test/" + TEST_REPO_1
+ files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/repos/" + TEST_REPO_1
+ "/org/apache/archiva/archiva-search/1.0/archiva-search-1.0.jar" ) );
- files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "src/test/" + TEST_REPO_1
+ files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/repos/" + TEST_REPO_1
+ "/org/apache/archiva/archiva-test/1.0/archiva-test-1.0.jar" ) );
- files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "src/test/" + TEST_REPO_1
+ files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/repos/" + TEST_REPO_1
+ "/org/apache/archiva/archiva-test/2.0/archiva-test-2.0.jar" ) );
- files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "src/test/" + TEST_REPO_1
+ files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/repos/" + TEST_REPO_1
+ "/org/apache/archiva/archiva-webapp/1.0/archiva-webapp-1.0.war" ) );
files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(),
- "src/test/" + TEST_REPO_1 + "/com/artifactid-numeric/1.0/artifactid-numeric-1.0.jar" ) );
- files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "src/test/" + TEST_REPO_1
+ "target/repos/" + TEST_REPO_1 + "/com/artifactid-numeric/1.0/artifactid-numeric-1.0.jar" ) );
+ files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/repos/" + TEST_REPO_1
+ "/com/artifactid-numeric123/1.0/artifactid-numeric123-1.0.jar" ) );
files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(),
- "src/test/" + TEST_REPO_1 + "/com/classname-search/1.0/classname-search-1.0.jar" ) );
+ "target/repos/" + TEST_REPO_1 + "/com/classname-search/1.0/classname-search-1.0.jar" ) );
createIndex( TEST_REPO_1, files, scan );
}
@@ -87,13 +87,13 @@ public class MavenRepositorySearchTest
{
List<Path> files = new ArrayList<>();
- files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "src/test/" + TEST_REPO_1
+ files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/repos/" + TEST_REPO_1
+ "/org/apache/archiva/archiva-search/1.0/archiva-search-1.0.jar" ) );
- files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "src/test/" + TEST_REPO_1
+ files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/repos/" + TEST_REPO_1
+ "/org/apache/archiva/archiva-search/1.0/archiva-search-1.0.pom" ) );
- files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "src/test/" + TEST_REPO_1
+ files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/repos/" + TEST_REPO_1
+ "/org/apache/archiva/archiva-search/1.0/archiva-search-1.0-sources.jar" ) );
createIndex( TEST_REPO_1, files, scan );
@@ -337,9 +337,9 @@ public class MavenRepositorySearchTest
createSimpleIndex( true );
List<Path> files = new ArrayList<>();
- files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "src/test/" + TEST_REPO_2
+ files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/repos/" + TEST_REPO_2
+ "/org/apache/archiva/archiva-search/1.0/archiva-search-1.0.jar" ) );
- files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "src/test/" + TEST_REPO_2
+ files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/repos/" + TEST_REPO_2
+ "/org/apache/archiva/archiva-search/1.1/archiva-search-1.1.jar" ) );
createIndex( TEST_REPO_2, files, false );
@@ -365,6 +365,7 @@ public class MavenRepositorySearchTest
SearchResultHit hit =
results.getSearchResultHit( SearchUtil.getHitId( "org.apache.archiva", "archiva-search", null, "jar" ) );
+ assertNotNull(hit);
assertEquals( "org.apache.archiva", hit.getGroupId() );
assertEquals( "archiva-search", hit.getArtifactId() );
assertEquals( "not 2 version for hit " + hit + "::" + niceDisplay( results ), 2, hit.getVersions().size() );
@@ -470,9 +471,9 @@ public class MavenRepositorySearchTest
throws Exception
{
List<Path> files = new ArrayList<>();
- files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "src/test/" + TEST_REPO_2
+ files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/repos/" + TEST_REPO_2
+ "/org/apache/archiva/archiva-search/1.0/archiva-search-1.0.jar" ) );
- files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "src/test/" + TEST_REPO_2
+ files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/repos/" + TEST_REPO_2
+ "/org/apache/archiva/archiva-search/1.1/archiva-search-1.1.jar" ) );
createIndex( TEST_REPO_2, files, false );
@@ -560,8 +561,8 @@ public class MavenRepositorySearchTest
{
List<Path> files = new ArrayList<>();
files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(),
- "src/test/" + TEST_REPO_1 + "/com/artifactid-numeric/1.0/artifactid-numeric-1.0.jar" ) );
- files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "src/test/" + TEST_REPO_1
+ "target/repos/" + TEST_REPO_1 + "/com/artifactid-numeric/1.0/artifactid-numeric-1.0.jar" ) );
+ files.add( Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), "target/repos/" + TEST_REPO_1
+ "/com/artifactid-numeric123/1.0/artifactid-numeric123-1.0.jar" ) );
createIndex( TEST_REPO_1, files, true );
@@ -891,16 +892,19 @@ public class MavenRepositorySearchTest
{
Path repo = Paths.get( "target/repo-release" );
+ FileUtils.deleteDirectory(repo.toFile());
Path indexDirectory = repo.resolve(".index" );
FileUtils.copyDirectoryStructure( Paths.get( "src/test/repo-release" ).toFile(), repo.toFile() );
IndexUpgrader.main( new String[]{ indexDirectory.toAbsolutePath().toString() } );
- createIndex( "repo-release", Collections.emptyList(), false );
+ createIndex(REPO_RELEASE, Collections.emptyList(), false, indexDirectory );
+
+// indexer.addIndexingContext( REPO_RELEASE, REPO_RELEASE, repo.toFile(), indexDirectory.toFile(),
+// repo.toUri().toURL().toExternalForm(),
+// indexDirectory.toUri().toURL().toString(), indexCreators );
+
- nexusIndexer.addIndexingContext( REPO_RELEASE, REPO_RELEASE, repo.toFile(), indexDirectory.toFile(),
- repo.toUri().toURL().toExternalForm(),
- indexDirectory.toUri().toURL().toString(), indexCreators );
SearchResultLimits limits = new SearchResultLimits( SearchResultLimits.ALL_PAGES );
limits.setPageSize( 300 );
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/resources/log4j2-test.xml
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/resources/log4j2-test.xml b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/resources/log4j2-test.xml
new file mode 100644
index 0000000..db1c64d
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/resources/log4j2-test.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ ~ 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.
+ -->
+
+
+<configuration status="debug">
+ <appenders>
+ <Console name="console" target="SYSTEM_OUT">
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
+ </Console>
+ </appenders>
+ <loggers>
+
+ <logger name="org.apache.archiva.repository" level="info"/>
+ <logger name="org.apache.archiva.indexer" level="info" />
+
+ <logger name="JPOX" level="error"/>
+
+
+ <logger name="org.springframework" level="error"/>
+
+
+ <root level="info">
+ <appender-ref ref="console"/>
+ </root>
+ </loggers>
+</configuration>
+
+
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/resources/spring-context.xml
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/resources/spring-context.xml b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/resources/spring-context.xml
index fbf53be..83a361f 100644
--- a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/resources/spring-context.xml
+++ b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/resources/spring-context.xml
@@ -28,7 +28,7 @@
default-lazy-init="false">
<context:annotation-config/>
- <context:component-scan base-package="org.apache.archiva.indexer.maven" />
+ <context:component-scan base-package="org.apache.archiva.indexer.maven,org.apache.archiva.repository,org.apache.archiva.repository.content.maven2" />
<bean name="wagon#file" scope="prototype" class="org.apache.maven.wagon.providers.file.FileWagon"/>
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-proxy/pom.xml
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-proxy/pom.xml b/archiva-modules/archiva-base/archiva-proxy/pom.xml
index efe7be3..85a3e60 100644
--- a/archiva-modules/archiva-base/archiva-proxy/pom.xml
+++ b/archiva-modules/archiva-base/archiva-proxy/pom.xml
@@ -215,6 +215,11 @@
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-maven2-indexer</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
<plugins>
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/MockRepositoryArchivaTaskScheduler.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/MockRepositoryArchivaTaskScheduler.java b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/MockRepositoryArchivaTaskScheduler.java
index 2b8b9ab..08bcd96 100644
--- a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/MockRepositoryArchivaTaskScheduler.java
+++ b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/MockRepositoryArchivaTaskScheduler.java
@@ -26,7 +26,7 @@ import org.springframework.stereotype.Service;
/**
* @author Olivier Lamy
*/
-@Service ("archivaTaskScheduler#repository")
+@Service ("archivaTaskScheduler#repositoryMock")
public class MockRepositoryArchivaTaskScheduler
implements RepositoryArchivaTaskScheduler
{
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/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 4dcf747..3ab65bc 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
@@ -82,6 +82,9 @@ public abstract class AbstractProxyTestCase
@Inject
protected ApplicationContext applicationContext;
+ @Inject
+ RepositoryRegistry repositoryRegistry;
+
protected static final String ID_PROXIED1 = "proxied1";
protected static final String ID_PROXIED1_TARGET = "proxied1-target";
@@ -121,7 +124,6 @@ public abstract class AbstractProxyTestCase
WagonDelegate delegate;
- protected RepositoryRegistry repositoryRegistry;
@Inject
protected NexusIndexer nexusIndexer;
@@ -156,7 +158,6 @@ public abstract class AbstractProxyTestCase
// to prevent windauze file leaking
removeMavenIndexes();
- repositoryRegistry = applicationContext.getBean( RepositoryRegistry.class );
repositoryRegistry.setArchivaConfiguration( config );
// Setup target (proxied to) repository.
@@ -167,6 +168,7 @@ public abstract class AbstractProxyTestCase
saveRemoteRepositoryConfig( ID_PROXIED2, "Proxied Repository 2",
Paths.get( REPOPATH_PROXIED2 ).toUri().toURL().toExternalForm(), "default" );
+
repositoryRegistry.reload();
if ( repositoryRegistry.getManagedRepository( repoConfig.getId() ) != null )
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/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 c923ba9..81563b6 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
@@ -21,18 +21,7 @@ package org.apache.archiva.repository.mock;
import org.apache.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.archiva.configuration.RemoteRepositoryConfiguration;
-import org.apache.archiva.repository.BasicManagedRepository;
-import org.apache.archiva.repository.BasicRemoteRepository;
-import org.apache.archiva.repository.EditableManagedRepository;
-import org.apache.archiva.repository.EditableRemoteRepository;
-import org.apache.archiva.repository.ManagedRepository;
-import org.apache.archiva.repository.PasswordCredentials;
-import org.apache.archiva.repository.ReleaseScheme;
-import org.apache.archiva.repository.RemoteRepository;
-import org.apache.archiva.repository.RepositoryCredentials;
-import org.apache.archiva.repository.RepositoryException;
-import org.apache.archiva.repository.RepositoryProvider;
-import org.apache.archiva.repository.RepositoryType;
+import org.apache.archiva.repository.*;
import org.apache.archiva.repository.features.ArtifactCleanupFeature;
import org.apache.archiva.repository.features.IndexCreationFeature;
import org.apache.archiva.repository.features.RemoteIndexFeature;
@@ -165,6 +154,8 @@ public class RepositoryProviderMock implements RepositoryProvider
rif.setIndexUri( new URI( configuration.getIndexDir( ) ) );
rif.setDownloadTimeout( Duration.ofSeconds( configuration.getRemoteDownloadTimeout( ) ) );
rif.setProxyId( configuration.getRemoteDownloadNetworkProxyId( ) );
+ IndexCreationFeature icf = remoteRepository.getFeature(IndexCreationFeature.class).get();
+ icf.setIndexPath(new URI(".index" ));
}
catch ( Exception e )
{
@@ -229,4 +220,8 @@ public class RepositoryProviderMock implements RepositoryProvider
return configuration;
}
+ @Override
+ public <T> void raise(RepositoryEvent<T> event) {
+
+ }
}
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/spring-context.xml
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/spring-context.xml b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/spring-context.xml
index baef8a5..65599f7 100755
--- a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/spring-context.xml
+++ b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/spring-context.xml
@@ -33,6 +33,7 @@
<alias name="archivaConfiguration#mock" alias="archivaConfiguration#default"/>
<alias name="archivaConfiguration#mock" alias="archivaConfiguration"/>
+ <alias name="archivaTaskScheduler#repositoryMock" alias="archivaTaskScheduler#repository" />
<bean name="scheduler" class="org.apache.archiva.redback.components.scheduler.DefaultScheduler">
<property name="properties">
http://git-wip-us.apache.org/repos/asf/archiva/blob/c544376a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/managed/ManagedRepositoryAdmin.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/managed/ManagedRepositoryAdmin.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/managed/ManagedRepositoryAdmin.java
index a73e457..08d68cf 100644
--- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/managed/ManagedRepositoryAdmin.java
+++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/managed/ManagedRepositoryAdmin.java
@@ -22,6 +22,7 @@ package org.apache.archiva.admin.model.managed;
import org.apache.archiva.admin.model.AuditInformation;
import org.apache.archiva.admin.model.RepositoryAdminException;
import org.apache.archiva.admin.model.beans.ManagedRepository;
+import org.apache.archiva.indexer.ArchivaIndexingContext;
import org.apache.maven.index.context.IndexingContext;
import java.util.List;
@@ -57,16 +58,5 @@ public interface ManagedRepositoryAdmin
AuditInformation auditInformation, boolean resetStats )
throws RepositoryAdminException;
- /**
- *
- * @param repository
- * @return
- * @throws RepositoryAdminException
- * @since 1.4-M2
- */
- IndexingContext createIndexContext( ManagedRepository repository )
- throws RepositoryAdminException;
-
- IndexingContext createIndexContext( org.apache.archiva.repository.ManagedRepository repository) throws RepositoryAdminException;
}