diff options
author | Brett Porter <brett@apache.org> | 2007-09-12 09:33:41 +0000 |
---|---|---|
committer | Brett Porter <brett@apache.org> | 2007-09-12 09:33:41 +0000 |
commit | 17f229020f24ab34c553ef619f11834ae6882b21 (patch) | |
tree | 1867c4e8f537fe2f7cb05c129aa75b728ae035e5 /archiva-base/archiva-indexer/src | |
parent | b8cca284caff8744badd9db482f6db163b6e0a18 (diff) | |
download | archiva-17f229020f24ab34c553ef619f11834ae6882b21.tar.gz archiva-17f229020f24ab34c553ef619f11834ae6882b21.zip |
[MRM-462] separate configuration of managed and remote repositories
Merged from branches/MRM-462
git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@574859 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'archiva-base/archiva-indexer/src')
4 files changed, 54 insertions, 67 deletions
diff --git a/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentIndexFactory.java b/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentIndexFactory.java index 3e2e96460..de6b8626d 100644 --- a/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentIndexFactory.java +++ b/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentIndexFactory.java @@ -21,7 +21,7 @@ package org.apache.maven.archiva.indexer.lucene; import org.apache.commons.lang.StringUtils; import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.RepositoryConfiguration; +import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; import org.apache.maven.archiva.indexer.RepositoryContentIndex; import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; import org.apache.maven.archiva.indexer.bytecode.BytecodeHandlers; @@ -36,7 +36,6 @@ import java.io.File; * * @author <a href="mailto:brett@apache.org">Brett Porter</a> * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a> - * * @plexus.component role="org.apache.maven.archiva.indexer.RepositoryContentIndexFactory" role-hint="lucene" */ public class LuceneRepositoryContentIndexFactory @@ -66,21 +65,17 @@ public class LuceneRepositoryContentIndexFactory } /** - * Obtain the index directory for the provided repository. - * + * Obtain the index directory for the provided repository. + * * @param repository the repository to obtain the index directory from. - * @param indexId the id of the index + * @param indexId the id of the index * @return the directory to put the index into. */ private File toIndexDir( ArchivaRepository repository, String indexId ) { - if ( !repository.isManaged() ) - { - throw new IllegalArgumentException( "Only supports managed repositories." ); - } - // Attempt to get the specified indexDir in the configuration first. - RepositoryConfiguration repoConfig = configuration.getConfiguration().findRepositoryById( repository.getId() ); + ManagedRepositoryConfiguration repoConfig = + configuration.getConfiguration().findManagedRepositoryById( repository.getId() ); File indexDir; if ( repoConfig == null ) diff --git a/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearch.java b/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearch.java index eb1676750..2d1a955cf 100644 --- a/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearch.java +++ b/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearch.java @@ -22,7 +22,6 @@ package org.apache.maven.archiva.indexer.search; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.Predicate; import org.apache.commons.collections.Transformer; -import org.apache.commons.collections.functors.AndPredicate; import org.apache.lucene.document.Document; import org.apache.lucene.queryParser.MultiFieldQueryParser; import org.apache.lucene.queryParser.ParseException; @@ -32,9 +31,7 @@ import org.apache.lucene.search.MultiSearcher; import org.apache.lucene.search.Searchable; import org.apache.maven.archiva.configuration.ArchivaConfiguration; import org.apache.maven.archiva.configuration.ConfigurationNames; -import org.apache.maven.archiva.configuration.RepositoryConfiguration; -import org.apache.maven.archiva.configuration.functors.IndexedRepositoryPredicate; -import org.apache.maven.archiva.configuration.functors.LocalRepositoryPredicate; +import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; import org.apache.maven.archiva.indexer.RepositoryContentIndex; import org.apache.maven.archiva.indexer.bytecode.BytecodeHandlers; import org.apache.maven.archiva.indexer.filecontent.FileContentHandlers; @@ -53,11 +50,10 @@ import org.codehaus.plexus.registry.RegistryListener; import java.io.IOException; import java.util.ArrayList; -import java.util.Collection; import java.util.List; /** - * DefaultCrossRepositorySearch + * DefaultCrossRepositorySearch * * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a> * @version $Id$ @@ -105,7 +101,7 @@ public class DefaultCrossRepositorySearch try { - QueryParser parser = new MultiFieldQueryParser( new String[] { HashcodesKeys.MD5, HashcodesKeys.SHA1 }, + QueryParser parser = new MultiFieldQueryParser( new String[]{HashcodesKeys.MD5, HashcodesKeys.SHA1}, new HashcodesHandlers().getAnalyzer() ); LuceneQuery query = new LuceneQuery( parser.parse( checksum ) ); SearchResults results = searchAll( query, limits, indexes ); @@ -256,7 +252,7 @@ public class DefaultCrossRepositorySearch } catch ( IOException ie ) { - getLogger().error( "Unable to close index searcher: " + ie.getMessage(), ie ); + getLogger().error( "Unable to close index searcher: " + ie.getMessage(), ie ); } } @@ -312,7 +308,7 @@ public class DefaultCrossRepositorySearch public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue ) { - if ( ConfigurationNames.isRepositories( propertyName ) ) + if ( ConfigurationNames.isManagedRepositories( propertyName ) ) { initRepositories(); } @@ -329,28 +325,14 @@ public class DefaultCrossRepositorySearch { this.localIndexedRepositories.clear(); - Predicate localIndexedRepos = AndPredicate.getInstance( LocalRepositoryPredicate.getInstance(), - IndexedRepositoryPredicate.getInstance() ); - - Collection repos = CollectionUtils.select( configuration.getConfiguration().getRepositories(), - localIndexedRepos ); - - Transformer toArchivaRepository = new Transformer() + List<ManagedRepositoryConfiguration> repos = configuration.getConfiguration().getManagedRepositories(); + for ( ManagedRepositoryConfiguration repo : repos ) { - - public Object transform( Object input ) + if ( repo.isIndexed() ) { - if ( input instanceof RepositoryConfiguration ) - { - return ArchivaConfigurationAdaptor.toArchivaRepository( (RepositoryConfiguration) input ); - } - return input; + localIndexedRepositories.add( ArchivaConfigurationAdaptor.toArchivaRepository( repo ) ); } - }; - - CollectionUtils.transform( repos, toArchivaRepository ); - - this.localIndexedRepositories.addAll( repos ); + } } } diff --git a/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractIndexerTestCase.java b/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractIndexerTestCase.java index 05c0eab59..2149906a3 100644 --- a/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractIndexerTestCase.java +++ b/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractIndexerTestCase.java @@ -23,7 +23,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.lucene.document.Document; import org.apache.lucene.index.IndexWriter; import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.RepositoryConfiguration; +import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; import org.apache.maven.archiva.indexer.lucene.LuceneIndexHandlers; import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord; import org.apache.maven.archiva.model.ArchivaArtifact; @@ -41,7 +41,7 @@ import java.util.List; import java.util.Map; /** - * AbstractIndexerTestCase + * AbstractIndexerTestCase * * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a> * @version $Id$ @@ -53,6 +53,10 @@ public abstract class AbstractIndexerTestCase protected LuceneIndexHandlers indexHandlers; + private static final String TEST_DEFAULT_REPOSITORY_NAME = "Test Default Repository"; + + private static final String TEST_DEFAULT_REPO_ID = "testDefaultRepo"; + public abstract String getIndexName(); protected void assertRecord( LuceneRepositoryContentRecord expectedRecord, Document luceneDocument ) @@ -78,9 +82,9 @@ public abstract class AbstractIndexerTestCase { super.setUp(); - RepositoryContentIndexFactory indexFactory = (RepositoryContentIndexFactory) lookup( - RepositoryContentIndexFactory.class - .getName(), "lucene" ); + RepositoryContentIndexFactory indexFactory = + (RepositoryContentIndexFactory) lookup( RepositoryContentIndexFactory.class + .getName(), "lucene" ); ArchivaRepository repository = createTestIndex( getIndexName() ); @@ -90,7 +94,7 @@ public abstract class AbstractIndexerTestCase } private ArchivaRepository createTestIndex( String indexName ) - throws Exception, IOException + throws Exception { File repoDir = new File( getBasedir(), "src/test/managed-repository" ); File testIndexesDir = new File( getBasedir(), "target/test-indexes" ); @@ -104,16 +108,17 @@ public abstract class AbstractIndexerTestCase String repoUri = "file://" + StringUtils.replace( repoDir.getAbsolutePath(), "\\", "/" ); - ArchivaRepository repository = new ArchivaRepository( "testDefaultRepo", "Test Default Repository", repoUri ); + ArchivaRepository repository = + new ArchivaRepository( TEST_DEFAULT_REPO_ID, TEST_DEFAULT_REPOSITORY_NAME, repoUri ); File indexLocation = new File( testIndexesDir, "/index-" + indexName + "-" + getName() + "/" ); MockConfiguration config = (MockConfiguration) lookup( ArchivaConfiguration.class.getName(), "mock" ); - RepositoryConfiguration repoConfig = new RepositoryConfiguration(); - repoConfig.setId( repository.getId() ); - repoConfig.setName( repository.getModel().getName() ); - repoConfig.setUrl( repository.getModel().getUrl() ); + ManagedRepositoryConfiguration repoConfig = new ManagedRepositoryConfiguration(); + repoConfig.setId( TEST_DEFAULT_REPO_ID ); + repoConfig.setName( TEST_DEFAULT_REPOSITORY_NAME ); + repoConfig.setLocation( repoDir.getAbsolutePath() ); repoConfig.setIndexDir( indexLocation.getAbsolutePath() ); if ( indexLocation.exists() ) @@ -121,7 +126,7 @@ public abstract class AbstractIndexerTestCase FileUtils.deleteDirectory( indexLocation ); } - config.getConfiguration().addRepository( repoConfig ); + config.getConfiguration().addManagedRepository( repoConfig ); return repository; } @@ -130,8 +135,8 @@ public abstract class AbstractIndexerTestCase Map dumps = new HashMap(); // archiva-common-1.0.jar.txt - dumps.put( "archiva-common", createArchivaArtifact( "org.apache.maven.archiva", "archiva-common", "1.0", "", - "jar" ) ); + dumps.put( "archiva-common", + createArchivaArtifact( "org.apache.maven.archiva", "archiva-common", "1.0", "", "jar" ) ); // continuum-webapp-1.0.3-SNAPSHOT.war.txt dumps.put( "continuum-webapp", createArchivaArtifact( "org.apache.maven.continuum", "continuum-webapp", @@ -198,8 +203,8 @@ public abstract class AbstractIndexerTestCase return dumpFile; } - private ArchivaArtifact createArchivaArtifact( String groupId, String artifactId, String version, - String classifier, String type ) + private ArchivaArtifact createArchivaArtifact( String groupId, String artifactId, String version, String classifier, + String type ) { ArchivaArtifact artifact = new ArchivaArtifact( groupId, artifactId, version, classifier, type ); return artifact; diff --git a/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java b/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java index 5d682e36f..2a0d8d657 100644 --- a/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java +++ b/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java @@ -25,7 +25,7 @@ import org.apache.lucene.search.MatchAllDocsQuery; import org.apache.lucene.search.Query; import org.apache.lucene.search.Searcher; import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.RepositoryConfiguration; +import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; import org.apache.maven.archiva.indexer.MockConfiguration; import org.apache.maven.archiva.indexer.RepositoryContentIndex; import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; @@ -37,7 +37,7 @@ import java.io.File; import java.util.Map; /** - * DefaultCrossRepositorySearchTest + * DefaultCrossRepositorySearchTest * * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a> * @version $Id$ @@ -45,15 +45,18 @@ import java.util.Map; public class DefaultCrossRepositorySearchTest extends PlexusTestCase { + private static final String TEST_DEFAULT_REPOSITORY_NAME = "Test Default Repository"; + + private static final String TEST_DEFAULT_REPO_ID = "testDefaultRepo"; protected void setUp() throws Exception { super.setUp(); - RepositoryContentIndexFactory indexFactory = (RepositoryContentIndexFactory) lookup( - RepositoryContentIndexFactory.class - .getName(), "lucene" ); + RepositoryContentIndexFactory indexFactory = + (RepositoryContentIndexFactory) lookup( RepositoryContentIndexFactory.class + .getName(), "lucene" ); File repoDir = new File( getBasedir(), "src/test/managed-repository" ); @@ -61,16 +64,17 @@ public class DefaultCrossRepositorySearchTest String repoUri = "file://" + StringUtils.replace( repoDir.getAbsolutePath(), "\\", "/" ); - ArchivaRepository repository = new ArchivaRepository( "testDefaultRepo", "Test Default Repository", repoUri ); + ArchivaRepository repository = + new ArchivaRepository( TEST_DEFAULT_REPO_ID, TEST_DEFAULT_REPOSITORY_NAME, repoUri ); File indexLocation = new File( "target/index-crossrepo-" + getName() + "/" ); MockConfiguration config = (MockConfiguration) lookup( ArchivaConfiguration.class.getName(), "mock" ); - RepositoryConfiguration repoConfig = new RepositoryConfiguration(); - repoConfig.setId( repository.getId() ); - repoConfig.setName( repository.getModel().getName() ); - repoConfig.setUrl( repository.getModel().getUrl() ); + ManagedRepositoryConfiguration repoConfig = new ManagedRepositoryConfiguration(); + repoConfig.setId( TEST_DEFAULT_REPO_ID ); + repoConfig.setName( TEST_DEFAULT_REPOSITORY_NAME ); + repoConfig.setLocation( repoDir.getAbsolutePath() ); repoConfig.setIndexDir( indexLocation.getAbsolutePath() ); repoConfig.setIndexed( true ); @@ -79,7 +83,7 @@ public class DefaultCrossRepositorySearchTest FileUtils.deleteDirectory( indexLocation ); } - config.getConfiguration().addRepository( repoConfig ); + config.getConfiguration().addManagedRepository( repoConfig ); // Create the (empty) indexes. RepositoryContentIndex indexHashcode = indexFactory.createHashcodeIndex( repository ); @@ -115,7 +119,8 @@ public class DefaultCrossRepositorySearchTest private CrossRepositorySearch lookupCrossRepositorySearch() throws Exception { - CrossRepositorySearch search = (CrossRepositorySearch) lookup( CrossRepositorySearch.class.getName(), "default" ); + CrossRepositorySearch search = + (CrossRepositorySearch) lookup( CrossRepositorySearch.class.getName(), "default" ); assertNotNull( "CrossRepositorySearch:default should not be null.", search ); return search; } |