Author: joakime
Date: Thu Apr 5 14:44:00 2007
New Revision: 525974
URL: http://svn.apache.org/viewvc?view=rev&rev=525974
Log:
Correcting index-content Consumer.
Removed:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexArtifactConsumer.java
Modified:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java
Modified:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java?view=diff&rev=525974&r1=525973&r2=525974
==============================================================================
---
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java
(original)
+++
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java
Thu Apr 5 14:44:00 2007
@@ -19,17 +19,24 @@
* under the License.
*/
+import org.apache.commons.io.FileUtils;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.FileType;
import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
import org.apache.maven.archiva.consumers.ConsumerException;
import org.apache.maven.archiva.consumers.RepositoryContentConsumer;
+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.ArchivaRepository;
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 java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@@ -42,9 +49,14 @@
* @plexus.component role-hint="index-content"
* instantiation-strategy="per-lookup"
*/
-public class IndexContentConsumer extends AbstractMonitoredConsumer
+public class IndexContentConsumer
+ extends AbstractMonitoredConsumer
implements RepositoryContentConsumer, RegistryListener, Initializable
{
+ private static final String READ_CONTENT = "read_content";
+
+ private static final String INDEX_ERROR = "indexing_error";
+
/**
* @plexus.configuration default-value="index-content"
*/
@@ -60,10 +72,19 @@
*/
private ArchivaConfiguration configuration;
+ /**
+ * @plexus.requirement
+ */
+ private RepositoryContentIndexFactory indexFactory;
+
private List propertyNameTriggers = new ArrayList();
private List includes = new ArrayList();
+ private RepositoryContentIndex index;
+
+ private File repositoryDir;
+
public String getId()
{
return this.id;
@@ -89,17 +110,38 @@
return this.includes;
}
- public void beginScan( ArchivaRepository repository ) throws
ConsumerException
+ public void beginScan( ArchivaRepository repository )
+ throws ConsumerException
{
if ( !repository.isManaged() )
{
throw new ConsumerException( "Consumer requires managed
repository." );
}
+
+ this.repositoryDir = new File( repository.getUrl().getPath() );
+ this.index = indexFactory.createFileContentIndex( repository );
}
- public void processFile( String path ) throws ConsumerException
+ public void processFile( String path )
+ throws ConsumerException
{
-
+ FileContentRecord record = new FileContentRecord();
+ try
+ {
+ File file = new File( repositoryDir, path );
+ record.setFile( file );
+ record.setContents( FileUtils.readFileToString( file, null ) );
+
+ index.modifyRecord( record );
+ }
+ catch ( IOException e )
+ {
+ triggerConsumerError( READ_CONTENT, "Unable to read file contents:
" + e.getMessage() );
+ }
+ catch ( RepositoryIndexException e )
+ {
+ triggerConsumerError( INDEX_ERROR, "Unable to index file contents:
" + e.getMessage() );
+ }
}
public void completeScan()
@@ -124,15 +166,16 @@
{
includes.clear();
- FileType artifactTypes =
-
configuration.getConfiguration().getRepositoryScanning().getFileTypeById(
"indexable-content" );
+ FileType artifactTypes =
configuration.getConfiguration().getRepositoryScanning()
+ .getFileTypeById( "indexable-content" );
if ( artifactTypes != null )
{
includes.addAll( artifactTypes.getPatterns() );
}
}
- public void initialize() throws InitializationException
+ public void initialize()
+ throws InitializationException
{
propertyNameTriggers = new ArrayList();
propertyNameTriggers.add( "repositoryScanning" );