From b3cb3af59e5dd270376e0b3fb21f04a2a4ac89f5 Mon Sep 17 00:00:00 2001 From: James William Dumay Date: Sun, 21 Dec 2008 23:28:59 +0000 Subject: [PATCH] Initial work on nexus indexer git-svn-id: https://svn.apache.org/repos/asf/archiva/branches/archiva-nexus-indexer@728552 13f79535-47bb-0310-9956-ffa450edef68 --- .../archiva-lucene-consumers/pom.xml | 4 + .../lucene/IndexArtifactConsumer.java | 216 -------------- .../lucene/IndexContentConsumer.java | 218 -------------- .../IndexJavaPublicMethodsConsumer.java | 268 ------------------ .../LuceneCleanupRemoveIndexedConsumer.java | 152 ---------- .../IndexJavaPublicMethodsConsumerTest.java | 123 -------- ...avaPublicMethodsCrossRepositorySearch.java | 190 ------------- ...uceneCleanupRemoveIndexedConsumerTest.java | 76 ----- ...ceneRepositoryContentIndexFactoryStub.java | 53 ---- .../LuceneRepositoryContentIndexStub.java | 144 ---------- pom.xml | 23 ++ 11 files changed, 27 insertions(+), 1440 deletions(-) delete mode 100644 archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexArtifactConsumer.java delete mode 100644 archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java delete mode 100644 archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumer.java delete mode 100644 archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumer.java delete mode 100644 archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumerTest.java delete mode 100644 archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsCrossRepositorySearch.java delete mode 100644 archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumerTest.java delete mode 100644 archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/stubs/LuceneRepositoryContentIndexFactoryStub.java delete mode 100644 archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/stubs/LuceneRepositoryContentIndexStub.java 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 cc346c218..41364b607 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 @@ -49,6 +49,10 @@ org.apache.archiva archiva-repository-layer + + org.sonatype.nexus + nexus-indexer + org.codehaus.plexus plexus-spring diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexArtifactConsumer.java b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexArtifactConsumer.java deleted file mode 100644 index 45517a663..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexArtifactConsumer.java +++ /dev/null @@ -1,216 +0,0 @@ -package org.apache.maven.archiva.consumers.lucene; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ConfigurationNames; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.database.updater.DatabaseUnprocessedArtifactConsumer; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.RepositoryIndexException; -import org.apache.maven.archiva.indexer.hashcodes.HashcodesRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.RepositoryContentFactory; -import org.apache.maven.archiva.repository.RepositoryException; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; -import org.codehaus.plexus.registry.Registry; -import org.codehaus.plexus.registry.RegistryListener; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * IndexArtifactConsumer - * - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.database.updater.DatabaseUnprocessedArtifactConsumer" - * role-hint="index-artifact" - * instantiation-strategy="per-lookup" - */ -public class IndexArtifactConsumer - extends AbstractMonitoredConsumer - implements DatabaseUnprocessedArtifactConsumer, RegistryListener, Initializable -{ - private Logger log = LoggerFactory.getLogger( IndexArtifactConsumer.class ); - - private static final String INDEX_ERROR = "indexing_error"; - - /** - * @plexus.configuration default-value="index-artifact" - */ - private String id; - - /** - * @plexus.configuration default-value="Index the artifact checksums for Find functionality." - */ - private String description; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration configuration; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repositoryFactory; - - /** - * @plexus.requirement role-hint="lucene" - */ - private RepositoryContentIndexFactory indexFactory; - - private Map repositoryMap = new HashMap(); - - public void beginScan() - { - /* nothing to do here */ - } - - public void completeScan() - { - /* nothing to do here */ - } - - public List getIncludedTypes() - { - return null; // TODO: define these as a list of artifacts. - } - - public void processArchivaArtifact( ArchivaArtifact artifact ) - throws ConsumerException - { - HashcodesRecord record = new HashcodesRecord(); - record.setRepositoryId( artifact.getModel().getRepositoryId() ); - record.setArtifact( artifact ); - - IndexedRepositoryDetails pnl = getIndexedRepositoryDetails( artifact ); - - String artifactPath = pnl.repository.toPath( artifact ); - record.setFilename( artifactPath ); - - try - { - pnl.index.modifyRecord( record ); - } - catch ( RepositoryIndexException e ) - { - triggerConsumerError( INDEX_ERROR, "Unable to index hashcodes: " + e.getMessage() ); - } - } - - private IndexedRepositoryDetails getIndexedRepositoryDetails( ArchivaArtifact artifact ) - { - String repoId = artifact.getModel().getRepositoryId(); - if ( StringUtils.isBlank( repoId ) ) - { - throw new IllegalStateException( - "Unable to process artifact [" + artifact + "] as it has no repository id associated with it." ); - } - - return getIndexedRepositoryDetails( repoId ); - } - - private IndexedRepositoryDetails getIndexedRepositoryDetails( String id ) - { - return this.repositoryMap.get( id ); - } - - public String getDescription() - { - return description; - } - - public String getId() - { - return id; - } - - public boolean isPermanent() - { - return false; - } - - public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - if ( ConfigurationNames.isManagedRepositories( propertyName ) ) - { - initRepositoryMap(); - } - } - - public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - /* do nothing */ - } - - public void initialize() - throws InitializationException - { - initRepositoryMap(); - configuration.addChangeListener( this ); - } - - private void initRepositoryMap() - { - synchronized ( this.repositoryMap ) - { - this.repositoryMap.clear(); - - Iterator it = configuration.getConfiguration().getManagedRepositories().iterator(); - while ( it.hasNext() ) - { - ManagedRepositoryConfiguration repository = it.next(); - - try - { - IndexedRepositoryDetails pnl = new IndexedRepositoryDetails(); - - pnl.repository = repositoryFactory.getManagedRepositoryContent( repository.getId() ); - - pnl.index = indexFactory.createHashcodeIndex( repository ); - - this.repositoryMap.put( repository.getId(), pnl ); - } - catch ( RepositoryException e ) - { - log.error( "Unable to load repository content object: " + e.getMessage(), e ); - } - } - } - } - - class IndexedRepositoryDetails - { - public ManagedRepositoryContent repository; - - public RepositoryContentIndex index; - } -} diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java deleted file mode 100644 index 2c805f64c..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java +++ /dev/null @@ -1,218 +0,0 @@ -package org.apache.maven.archiva.consumers.lucene; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ConfigurationNames; -import org.apache.maven.archiva.configuration.FileTypes; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.RepositoryIndexException; -import org.apache.maven.archiva.indexer.filecontent.FileContentRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.RepositoryContentFactory; -import org.apache.maven.archiva.repository.RepositoryException; -import org.apache.maven.archiva.repository.layout.LayoutException; -import org.apache.maven.archiva.repository.metadata.MetadataTools; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; -import org.codehaus.plexus.registry.Registry; -import org.codehaus.plexus.registry.RegistryListener; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * IndexContentConsumer - generic full file content indexing consumer. - * - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - * role-hint="index-content" - * instantiation-strategy="per-lookup" - */ -public class IndexContentConsumer - extends AbstractMonitoredConsumer - implements KnownRepositoryContentConsumer, RegistryListener, Initializable -{ - private Logger log = LoggerFactory.getLogger( IndexContentConsumer.class ); - - private static final String READ_CONTENT = "read_content"; - - private static final String INDEX_ERROR = "indexing_error"; - - /** - * @plexus.configuration default-value="index-content" - */ - private String id; - - /** - * @plexus.configuration default-value="Text and XML file contents indexing" - */ - private String description; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration configuration; - - /** - * @plexus.requirement - */ - private FileTypes filetypes; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repositoryFactory; - - /** - * @plexus.requirement role-hint="lucene" - */ - private RepositoryContentIndexFactory indexFactory; - - private List includes = new ArrayList(); - - private RepositoryContentIndex index; - - private ManagedRepositoryContent repository; - - private File repositoryDir; - - public String getId() - { - return this.id; - } - - public String getDescription() - { - return this.description; - } - - public boolean isPermanent() - { - return false; - } - - public List getExcludes() - { - return null; - } - - public List getIncludes() - { - return this.includes; - } - - public void beginScan( ManagedRepositoryConfiguration repo, Date whenGathered ) - throws ConsumerException - { - try - { - this.repository = repositoryFactory.getManagedRepositoryContent( repo.getId() ); - this.repositoryDir = new File( repository.getRepoRoot() ); - this.index = indexFactory.createFileContentIndex( repository.getRepository() ); - } - catch ( RepositoryException e ) - { - throw new ConsumerException( "Unable to start IndexContentConsumer: " + e.getMessage(), e ); - } - } - - public void processFile( String path ) - throws ConsumerException - { - if ( path.endsWith( "/" + MetadataTools.MAVEN_METADATA ) ) - { - log.debug( "File is a metadata file. Not indexing." ); - return; - } - - FileContentRecord record = new FileContentRecord(); - try - { - record.setRepositoryId( this.repository.getId() ); - record.setFilename( path ); - - // Test for possible artifact reference syntax. - try - { - ArtifactReference ref = repository.toArtifactReference( path ); - ArchivaArtifact artifact = new ArchivaArtifact( ref ); - artifact.getModel().setRepositoryId( repository.getId() ); - record.setArtifact( artifact ); - } - catch ( LayoutException e ) - { - // Not an artifact. - } - - index.modifyRecord( record ); - } - catch ( RepositoryIndexException e ) - { - triggerConsumerError( INDEX_ERROR, "Unable to index file contents: " + e.getMessage() ); - } - } - - public void completeScan() - { - /* do nothing */ - } - - public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - if ( ConfigurationNames.isRepositoryScanning( propertyName ) ) - { - initIncludes(); - } - } - - public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - /* do nothing */ - } - - private void initIncludes() - { - includes.clear(); - - includes.addAll( filetypes.getFileTypePatterns( FileTypes.INDEXABLE_CONTENT ) ); - } - - public void initialize() - throws InitializationException - { - configuration.addChangeListener( this ); - - initIncludes(); - } -} diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumer.java b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumer.java deleted file mode 100644 index 67d228f73..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumer.java +++ /dev/null @@ -1,268 +0,0 @@ -package org.apache.maven.archiva.consumers.lucene; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.database.updater.DatabaseUnprocessedArtifactConsumer; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.RepositoryIndexException; -import org.apache.maven.archiva.indexer.bytecode.BytecodeRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.RepositoryContentFactory; -import org.apache.maven.archiva.repository.RepositoryException; - -import com.sun.org.apache.bcel.internal.classfile.ClassParser; -import com.sun.org.apache.bcel.internal.classfile.JavaClass; -import com.sun.org.apache.bcel.internal.classfile.Method; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; - -/** - * IndexJavaPublicMethodsConsumer - * - * Maria Odea Ching - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.database.updater.DatabaseUnprocessedArtifactConsumer" - * role-hint="index-public-methods" - * instantiation-strategy="per-lookup" - */ -public class IndexJavaPublicMethodsConsumer - extends AbstractMonitoredConsumer - implements DatabaseUnprocessedArtifactConsumer -{ - /** - * @plexus.configuration default-value="index-public-methods" - */ - private String id; - - /** - * @plexus.configuration default-value="Index the java public methods for Full Text Search." - */ - private String description; - - /** - * @plexus.requirement role-hint="lucene" - */ - private RepositoryContentIndexFactory repoIndexFactory; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repoFactory; - - private static final String CLASSES = "classes"; - - private static final String METHODS = "methods"; - - private List includes = new ArrayList(); - - public IndexJavaPublicMethodsConsumer() - { - includes.add( "jar" ); - includes.add( "war" ); - includes.add( "ear" ); - includes.add( "zip" ); - includes.add( "tar.gz" ); - includes.add( "tar.bz2" ); - includes.add( "car" ); - includes.add( "sar" ); - includes.add( "mar" ); - includes.add( "rar" ); - } - - public void beginScan() - { - // TODO Auto-generated method stubx - } - - public void completeScan() - { - // TODO Auto-generated method stub - - } - - public List getIncludedTypes() - { - return includes; - } - - public void processArchivaArtifact( ArchivaArtifact artifact ) - throws ConsumerException - { - try - { - ManagedRepositoryContent repoContent = - repoFactory.getManagedRepositoryContent( artifact.getModel().getRepositoryId() ); - File file = new File( repoContent.getRepoRoot(), repoContent.toPath( artifact ) ); - - if( file.getAbsolutePath().endsWith( ".jar" ) || file.getAbsolutePath().endsWith( ".war" ) || - file.getAbsolutePath().endsWith( ".ear" ) || file.getAbsolutePath().endsWith( ".zip" ) || - file.getAbsolutePath().endsWith( ".tar.gz" ) || file.getAbsolutePath().endsWith( ".tar.bz2" ) || - file.getAbsolutePath().endsWith( ".car" ) || file.getAbsolutePath().endsWith( ".sar" ) || - file.getAbsolutePath().endsWith( ".mar" ) || file.getAbsolutePath().endsWith( ".rar" ) ) - { - if( file.exists() ) - { - List files = readFilesInArchive( file ); - Map> mapOfClassesAndMethods = - getPublicClassesAndMethodsFromFiles( file.getAbsolutePath(), files ); - - // NOTE: what about public variables? should these be indexed too? - RepositoryContentIndex bytecodeIndex = repoIndexFactory.createBytecodeIndex( repoContent.getRepository() ); - - artifact.getModel().setRepositoryId( repoContent.getId() ); - - BytecodeRecord bytecodeRecord = new BytecodeRecord(); - bytecodeRecord.setFilename( file.getName() ); - bytecodeRecord.setClasses( mapOfClassesAndMethods.get( CLASSES ) ); - bytecodeRecord.setFiles( files ); - bytecodeRecord.setMethods( mapOfClassesAndMethods.get( METHODS ) ); - bytecodeRecord.setArtifact( artifact ); - bytecodeRecord.setRepositoryId( repoContent.getId() ); - bytecodeIndex.modifyRecord( bytecodeRecord ); - } - } - } - catch ( RepositoryException e ) - { - throw new ConsumerException( "Can't run index cleanup consumer: " + e.getMessage() ); - } - catch ( RepositoryIndexException e ) - { - throw new ConsumerException( "Error encountered while adding artifact to index: " + e.getMessage() ); - } - catch ( IOException e ) - { - throw new ConsumerException( "Error encountered while getting file contents: " + e.getMessage() ); - } - } - - public String getDescription() - { - return description; - } - - public String getId() - { - return id; - } - - public boolean isPermanent() - { - return false; - } - - private List readFilesInArchive( File file ) - throws IOException - { - ZipFile zipFile = new ZipFile( file ); - List files; - - try - { - files = new ArrayList( zipFile.size() ); - for ( Enumeration entries = zipFile.entries(); entries.hasMoreElements(); ) - { - ZipEntry entry = (ZipEntry) entries.nextElement(); - files.add( entry.getName() ); - } - } - finally - { - closeQuietly( zipFile ); - } - return files; - } - - private void closeQuietly( ZipFile zipFile ) - { - try - { - if ( zipFile != null ) - { - zipFile.close(); - } - } - catch ( IOException e ) - { - // ignored - } - } - - private static boolean isClass( String name ) - { - return name.endsWith( ".class" ) && name.lastIndexOf( "$" ) < 0; - } - - private Map> getPublicClassesAndMethodsFromFiles( String zipFile, List files ) - { - Map> map = new HashMap>(); - List methods = new ArrayList(); - List classes = new ArrayList(); - - for( String file : files ) - { - if( isClass( file ) ) - { - try - { - ClassParser parser = new ClassParser( zipFile, file ); - JavaClass javaClass = parser.parse(); - - if( javaClass.isPublic() ) - { - classes.add( javaClass.getClassName() ); - } - - Method[] methodsArr = javaClass.getMethods(); - for( Method method : methodsArr ) - { - if( method.isPublic() ) - { - methods.add( method.getName() ); - } - } - } - catch ( IOException e ) - { - // ignore - } - } - } - - map.put( CLASSES, classes ); - map.put( METHODS, methods ); - - return map; - } - -} diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumer.java b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumer.java deleted file mode 100644 index 048426e7a..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumer.java +++ /dev/null @@ -1,152 +0,0 @@ -package org.apache.maven.archiva.consumers.lucene; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.database.updater.DatabaseCleanupConsumer; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.RepositoryIndexException; -import org.apache.maven.archiva.indexer.bytecode.BytecodeRecord; -import org.apache.maven.archiva.indexer.filecontent.FileContentRecord; -import org.apache.maven.archiva.indexer.hashcodes.HashcodesRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.RepositoryContentFactory; -import org.apache.maven.archiva.repository.RepositoryException; - -import java.io.File; -import java.util.List; - -/** - * LuceneCleanupRemoveIndexedConsumer - * - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.database.updater.DatabaseCleanupConsumer" - * role-hint="not-present-remove-indexed" instantiation-strategy="per-lookup" - */ -public class LuceneCleanupRemoveIndexedConsumer - extends AbstractMonitoredConsumer - implements DatabaseCleanupConsumer -{ - /** - * @plexus.configuration default-value="not-present-remove-indexed" - */ - private String id; - - /** - * @plexus.configuration default-value="Remove indexed content if not present on filesystem." - */ - private String description; - - /** - * @plexus.requirement role-hint="lucene" - */ - private RepositoryContentIndexFactory repoIndexFactory; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repoFactory; - - public void beginScan() - { - // TODO Auto-generated method stub - - } - - public void completeScan() - { - // TODO Auto-generated method stub - - } - - public List getIncludedTypes() - { - // TODO Auto-generated method stub - return null; - } - - public void processArchivaArtifact( ArchivaArtifact artifact ) - throws ConsumerException - { - try - { - ManagedRepositoryContent repoContent = - repoFactory.getManagedRepositoryContent( artifact.getModel().getRepositoryId() ); - - File file = new File( repoContent.getRepoRoot(), repoContent.toPath( artifact ) ); - - if( !file.exists() ) - { - RepositoryContentIndex bytecodeIndex = repoIndexFactory.createBytecodeIndex( repoContent.getRepository() ); - RepositoryContentIndex hashcodesIndex = repoIndexFactory.createHashcodeIndex( repoContent.getRepository() ); - RepositoryContentIndex fileContentIndex = - repoIndexFactory.createFileContentIndex( repoContent.getRepository() ); - - FileContentRecord fileContentRecord = new FileContentRecord(); - fileContentRecord.setFilename( repoContent.toPath( artifact ) ); - fileContentIndex.deleteRecord( fileContentRecord ); - - HashcodesRecord hashcodesRecord = new HashcodesRecord(); - hashcodesRecord.setArtifact( artifact ); - hashcodesIndex.deleteRecord( hashcodesRecord ); - - BytecodeRecord bytecodeRecord = new BytecodeRecord(); - bytecodeRecord.setArtifact( artifact ); - bytecodeIndex.deleteRecord( bytecodeRecord ); - } - } - catch ( RepositoryException e ) - { - throw new ConsumerException( "Can't run index cleanup consumer: " + e.getMessage() ); - } - catch ( RepositoryIndexException e ) - { - throw new ConsumerException( e.getMessage() ); - } - } - - public String getDescription() - { - return description; - } - - public String getId() - { - return id; - } - - public boolean isPermanent() - { - return false; - } - - public void setRepositoryIndexFactory( RepositoryContentIndexFactory repoIndexFactory ) - { - this.repoIndexFactory = repoIndexFactory; - } - - public void setRepositoryContentFactory( RepositoryContentFactory repoFactory ) - { - this.repoFactory = repoFactory; - } -} diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumerTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumerTest.java deleted file mode 100644 index 90e8bf1ca..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumerTest.java +++ /dev/null @@ -1,123 +0,0 @@ -package org.apache.maven.archiva.consumers.lucene; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.ArrayList; -import java.util.List; - -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.database.updater.DatabaseUnprocessedArtifactConsumer; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.search.SearchResultLimits; -import org.apache.maven.archiva.indexer.search.SearchResults; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaArtifactModel; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -/** - * - * @version - * - */ -public class IndexJavaPublicMethodsConsumerTest - extends PlexusInSpringTestCase -{ - DatabaseUnprocessedArtifactConsumer indexMethodsConsumer; - - IndexJavaPublicMethodsCrossRepositorySearch searcher; - - private RepositoryContentIndexFactory indexFactory; - - public void setUp() - throws Exception - { - super.setUp(); - indexMethodsConsumer = - (DatabaseUnprocessedArtifactConsumer) lookup( DatabaseUnprocessedArtifactConsumer.class, - "index-public-methods" ); - - ManagedRepositoryConfiguration config = new ManagedRepositoryConfiguration(); - config.setId( "test-repo" ); - config.setLayout( "default" ); - config.setLocation( getBasedir() + "/target/test-classes/test-repo" ); - config.setName( "Test Repository" ); - - addRepoToConfiguration( "index-public-methods", config ); - - indexFactory = (RepositoryContentIndexFactory) lookup (RepositoryContentIndexFactory.class, "lucene" ); - searcher = new IndexJavaPublicMethodsCrossRepositorySearch( config, indexFactory ); - } - - private void addRepoToConfiguration( String configHint, ManagedRepositoryConfiguration repoConfiguration ) - throws Exception - { - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class, configHint ); - Configuration configuration = archivaConfiguration.getConfiguration(); - configuration.removeManagedRepository( configuration.findManagedRepositoryById( repoConfiguration.getId() ) ); - configuration.addManagedRepository( repoConfiguration ); - } - - public void testJarPublicMethods() - throws Exception - { - ArchivaArtifact artifact = - createArtifact( "org.apache.archiva", "archiva-index-methods-jar-test", "1.0", "jar" ); - indexMethodsConsumer.processArchivaArtifact( artifact ); - - List selectedRepos = new ArrayList(); - selectedRepos.add( "test-repo" ); - - // search for class names - SearchResults results = searcher.searchForBytecode( "", selectedRepos, "FirstPackageApp", new SearchResultLimits( 0 ) ); - assertEquals( 1, results.getTotalHits() ); - - results = searcher.searchForBytecode( "", selectedRepos, "SecondPackageApp", new SearchResultLimits( 0 ) ); - assertEquals( 1, results.getTotalHits() ); - - // search for public methods - results = searcher.searchForBytecode( "", selectedRepos, "appMethodOne", new SearchResultLimits( 0 ) ); - assertEquals( 1, results.getTotalHits() ); - - // should return only the overridding public method in SecondPackageApp - results = searcher.searchForBytecode( "", selectedRepos, "protectedMethod", new SearchResultLimits( 0 ) ); - assertEquals( 1, results.getTotalHits() ); - - // should not return any private methods - results = searcher.searchForBytecode( "", selectedRepos, "privMethod", new SearchResultLimits( 0 ) ); - assertEquals( 0, results.getTotalHits() ); - - // test for public variables? - } - - private ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String type ) - { - ArchivaArtifactModel model = new ArchivaArtifactModel(); - model.setGroupId( groupId ); - model.setArtifactId( artifactId ); - model.setVersion( version ); - model.setType( type ); - model.setRepositoryId( "test-repo" ); - - return new ArchivaArtifact( model ); - } -} diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsCrossRepositorySearch.java b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsCrossRepositorySearch.java deleted file mode 100644 index 2005dc3fb..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsCrossRepositorySearch.java +++ /dev/null @@ -1,190 +0,0 @@ -package org.apache.maven.archiva.consumers.lucene; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import org.apache.lucene.document.Document; -import org.apache.lucene.queryParser.ParseException; -import org.apache.lucene.queryParser.QueryParser; -import org.apache.lucene.search.Hits; -import org.apache.lucene.search.MultiSearcher; -import org.apache.lucene.search.Searchable; -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.RepositoryIndexSearchException; -import org.apache.maven.archiva.indexer.bytecode.BytecodeHandlers; -import org.apache.maven.archiva.indexer.lucene.LuceneEntryConverter; -import org.apache.maven.archiva.indexer.lucene.LuceneQuery; -import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord; -import org.apache.maven.archiva.indexer.search.SearchResultLimits; -import org.apache.maven.archiva.indexer.search.SearchResults; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Searcher used for testing purposes only. - * - * @version - */ -public class IndexJavaPublicMethodsCrossRepositorySearch -{ - private Logger log = LoggerFactory.getLogger( IndexJavaPublicMethodsCrossRepositorySearch.class ); - - private ManagedRepositoryConfiguration localIndexedRepo; - - private RepositoryContentIndexFactory indexFactory; - - public IndexJavaPublicMethodsCrossRepositorySearch( ManagedRepositoryConfiguration localIndexedRepo, RepositoryContentIndexFactory indexFactory ) - { - this.localIndexedRepo = localIndexedRepo; - this.indexFactory = indexFactory; - } - - public SearchResults searchForBytecode( String principal, List selectedRepos, String term, - SearchResultLimits limits ) throws ParseException - { - List indexes = new ArrayList(); - indexes.add( indexFactory.createBytecodeIndex( localIndexedRepo ) ); - - QueryParser parser = new BytecodeHandlers().getQueryParser(); - LuceneQuery query = new LuceneQuery( parser.parse( term ) ); - SearchResults results = searchAll( query, limits, indexes ); - results.getRepositories().add( localIndexedRepo ); - - return results; - } - - private SearchResults searchAll( LuceneQuery luceneQuery, SearchResultLimits limits, List indexes ) - { - org.apache.lucene.search.Query specificQuery = luceneQuery.getLuceneQuery(); - - SearchResults results = new SearchResults(); - - if ( indexes.isEmpty() ) - { - // No point going any further. - return results; - } - - // Setup the converter - LuceneEntryConverter converter = null; - RepositoryContentIndex index = indexes.get( 0 ); - converter = index.getEntryConverter(); - - // Process indexes into an array of Searchables. - List searchableList = toSearchables( indexes ); - - Searchable searchables[] = new Searchable[searchableList.size()]; - searchableList.toArray( searchables ); - - MultiSearcher searcher = null; - - try - { - // Create a multi-searcher for looking up the information. - searcher = new MultiSearcher( searchables ); - - // Perform the search. - Hits hits = searcher.search( specificQuery ); - - int hitCount = hits.length(); - - // Now process the limits. - results.setLimits( limits ); - results.setTotalHits( hitCount ); - - int fetchCount = limits.getPageSize(); - int offset = ( limits.getSelectedPage() * limits.getPageSize() ); - - if ( limits.getSelectedPage() == SearchResultLimits.ALL_PAGES ) - { - fetchCount = hitCount; - offset = 0; - } - - // Goto offset. - if ( offset < hitCount ) - { - // only process if the offset is within the hit count. - for ( int i = 0; i <= fetchCount; i++ ) - { - // Stop fetching if we are past the total # of available hits. - if ( offset + i >= hitCount ) - { - break; - } - - try - { - Document doc = hits.doc( offset + i ); - LuceneRepositoryContentRecord record = converter.convert( doc ); - results.addHit( record ); - } - catch ( java.text.ParseException e ) - { - log.error( e.getMessage() ); - } - } - } - - } - catch ( IOException e ) - { - log.error( e.getMessage() ); - } - finally - { - try - { - if ( searcher != null ) - { - searcher.close(); - } - } - catch ( IOException ie ) - { - log.error( ie.getMessage() ); - } - } - - return results; - } - - private List toSearchables( List indexes ) - { - List searchableList = new ArrayList(); - for ( RepositoryContentIndex contentIndex : indexes ) - { - try - { - searchableList.add( contentIndex.getSearchable() ); - } - catch ( RepositoryIndexSearchException e ) - { - log.error( e.getMessage() ); - } - } - return searchableList; - } -} diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumerTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumerTest.java deleted file mode 100644 index 325c72571..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumerTest.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.apache.maven.archiva.consumers.lucene; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.archiva.database.updater.DatabaseCleanupConsumer; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaArtifactModel; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -/** - * LuceneCleanupRemoveIndexedConsumerTest - * - * @version - */ -public class LuceneCleanupRemoveIndexedConsumerTest - extends PlexusInSpringTestCase -{ - private DatabaseCleanupConsumer luceneCleanupRemoveIndexConsumer; - - public void setUp() - throws Exception - { - super.setUp(); - - luceneCleanupRemoveIndexConsumer = (DatabaseCleanupConsumer) - lookup( DatabaseCleanupConsumer.class, "lucene-cleanup" ); - } - - public void testIfArtifactExists() - throws Exception - { - ArchivaArtifact artifact = createArtifact( - "org.apache.maven.archiva", "archiva-lucene-cleanup", "1.0", "jar" ); - - luceneCleanupRemoveIndexConsumer.processArchivaArtifact( artifact ); - } - - public void testIfArtifactDoesNotExist() - throws Exception - { - ArchivaArtifact artifact = createArtifact( - "org.apache.maven.archiva", "deleted-artifact", "1.0", "jar" ); - - luceneCleanupRemoveIndexConsumer.processArchivaArtifact( artifact ); - } - - private ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String type ) - { - ArchivaArtifactModel model = new ArchivaArtifactModel(); - model.setGroupId( groupId ); - model.setArtifactId( artifactId ); - model.setVersion( version ); - model.setType( type ); - model.setRepositoryId( "test-repo" ); - - return new ArchivaArtifact( model ); - } - -} diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/stubs/LuceneRepositoryContentIndexFactoryStub.java b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/stubs/LuceneRepositoryContentIndexFactoryStub.java deleted file mode 100644 index 211e23794..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/stubs/LuceneRepositoryContentIndexFactoryStub.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.apache.maven.archiva.consumers.lucene.stubs; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; - -/** - * LuceneRepositoryContenIndexFactoryStub - * - * @version - */ -public class LuceneRepositoryContentIndexFactoryStub - implements RepositoryContentIndexFactory -{ - - public RepositoryContentIndex createBytecodeIndex( ManagedRepositoryConfiguration repository ) - { - // TODO Auto-generated method stub - return new LuceneRepositoryContentIndexStub(); - } - - public RepositoryContentIndex createFileContentIndex( ManagedRepositoryConfiguration repository ) - { - // TODO Auto-generated method stub - return new LuceneRepositoryContentIndexStub(); - } - - public RepositoryContentIndex createHashcodeIndex( ManagedRepositoryConfiguration repository ) - { - // TODO Auto-generated method stub - return new LuceneRepositoryContentIndexStub(); - } - -} diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/stubs/LuceneRepositoryContentIndexStub.java b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/stubs/LuceneRepositoryContentIndexStub.java deleted file mode 100644 index 429f141df..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/stubs/LuceneRepositoryContentIndexStub.java +++ /dev/null @@ -1,144 +0,0 @@ -package org.apache.maven.archiva.consumers.lucene.stubs; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.io.File; -import java.util.Collection; - -import junit.framework.Assert; - -import org.apache.lucene.analysis.Analyzer; -import org.apache.lucene.queryParser.QueryParser; -import org.apache.lucene.search.Searchable; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryIndexException; -import org.apache.maven.archiva.indexer.RepositoryIndexSearchException; -import org.apache.maven.archiva.indexer.lucene.LuceneEntryConverter; -import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord; - -/** - * @version - */ -public class LuceneRepositoryContentIndexStub - implements RepositoryContentIndex -{ - - public void deleteRecords( Collection records ) - throws RepositoryIndexException - { - // TODO Auto-generated method stub - Assert.assertEquals( 2, records.size() ); - } - - public boolean exists() - throws RepositoryIndexException - { - // TODO Auto-generated method stub - return false; - } - - public Collection getAllRecordKeys() - throws RepositoryIndexException - { - // TODO Auto-generated method stub - return null; - } - - public Analyzer getAnalyzer() - { - // TODO Auto-generated method stub - return null; - } - - public LuceneEntryConverter getEntryConverter() - { - // TODO Auto-generated method stub - return null; - } - - public String getId() - { - // TODO Auto-generated method stub - return null; - } - - public File getIndexDirectory() - { - // TODO Auto-generated method stub - return null; - } - - public QueryParser getQueryParser() - { - // TODO Auto-generated method stub - return null; - } - - public ManagedRepositoryConfiguration getRepository() - { - // TODO Auto-generated method stub - return null; - } - - public Searchable getSearchable() - throws RepositoryIndexSearchException - { - // TODO Auto-generated method stub - return null; - } - - public void indexRecords( Collection records ) - throws RepositoryIndexException - { - // TODO Auto-generated method stub - - } - - public void modifyRecord( LuceneRepositoryContentRecord record ) - throws RepositoryIndexException - { - // TODO Auto-generated method stub - - } - - public void modifyRecords( Collection records ) - throws RepositoryIndexException - { - // TODO Auto-generated method stub - - } - - public void deleteRecord( LuceneRepositoryContentRecord record ) - throws RepositoryIndexException - { - Assert.assertNotNull( record ); - - // fail since the record to be deleted should only be the deleted-artifact-1.0.jar - // according to the tests - if( record.getPrimaryKey().equals( - "org/apache/maven/archiva/archiva-lucene-cleanup/1.0/archiva-lucene-cleanup-1.0.jar" ) && - record.getPrimaryKey().equals( "org.apache.maven.archiva:archiva-lucene-cleanup:1.0:jar" ) ) - { - Assert.fail(); - } - } - -} diff --git a/pom.xml b/pom.xml index 1cc0bcd5d..bfac4b362 100644 --- a/pom.xml +++ b/pom.xml @@ -240,6 +240,29 @@ xercesImpl 2.8.1 + + org.sonatype.nexus + nexus-indexer + 1.1.2.3 + + + org.codehaus.plexus + plexus-container-default + + + classworlds + classworlds + + + commons-logging + commons-logging + + + velocity + velocity-dep + + + javax.activation activation -- 2.39.5