Author: epunzalan
Date: Sun Jan 22 23:27:58 2006
New Revision: 371476

URL: http://svn.apache.org/viewcvs?rev=371476&view=rev
Log:
PR: MRM-56
Submitted by: Maria Odea Ching

Enabled Index delete document.  Also did some refractoring and code formatting.

Modified:
    
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndex.java
    
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndexSearcher.java
    
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndex.java
    
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/DefaultRepositoryIndexingFactory.java
    
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/MetadataRepositoryIndex.java
    
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/MetadataRepositoryIndexSearcher.java
    
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/PomRepositoryIndex.java
    
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/RepositoryIndexingFactory.java
    
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/query/RangeQuery.java
    
maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndexingTest.java
    
maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/MetadataRepositoryIndexingTest.java
    
maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/PomRepositoryIndexingTest.java

Modified: 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndex.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndex.java?rev=371476&r1=371475&r2=371476&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndex.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndex.java
 Sun Jan 22 23:27:58 2006
@@ -18,6 +18,7 @@
 
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.Term;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 
 import java.io.File;
@@ -194,5 +195,27 @@
     public ArtifactRepository getRepository()
     {
         return repository;
+    }
+
+    /**
+     * @see 
org.apache.maven.repository.indexing.RepositoryIndex#deleteDocument(String, 
String)
+     */
+    public void deleteDocument( String field, String value )
+        throws RepositoryIndexException, IOException
+    {
+        IndexReader indexReader = null;
+        try
+        {
+            indexReader = IndexReader.open( indexPath );
+            indexReader.delete( new Term( field, value ) );
+        }
+        catch ( IOException ie )
+        {
+            throw new RepositoryIndexException( indexPath + "is not a valid 
directory." );
+        }
+        finally
+        {
+            indexReader.close();
+        }
     }
 }

Modified: 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndexSearcher.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndexSearcher.java?rev=371476&r1=371475&r2=371476&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndexSearcher.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndexSearcher.java
 Sun Jan 22 23:27:58 2006
@@ -27,8 +27,8 @@
 import org.apache.maven.repository.indexing.query.CompoundQuery;
 import org.apache.maven.repository.indexing.query.CompoundQueryTerm;
 import org.apache.maven.repository.indexing.query.Query;
-import org.apache.maven.repository.indexing.query.SinglePhraseQuery;
 import org.apache.maven.repository.indexing.query.RangeQuery;
+import org.apache.maven.repository.indexing.query.SinglePhraseQuery;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
 import java.io.IOException;
@@ -159,19 +159,19 @@
             }
             retVal = booleanQuery;
         }
-        else if( query instanceof RangeQuery )
+        else if ( query instanceof RangeQuery )
         {
             RangeQuery rq = (RangeQuery) query;
             List queries = rq.getQueries();
             Iterator iter = queries.iterator();
             Term begin = null, end = null;
-            if(queries.size() == 2)
+            if ( queries.size() == 2 )
             {
                 SinglePhraseQuery qry = (SinglePhraseQuery) iter.next();
                 begin = new Term( qry.getField(), qry.getValue() );
-                qry = ( SinglePhraseQuery ) iter.next();
+                qry = (SinglePhraseQuery) iter.next();
                 end = new Term( qry.getField(), qry.getValue() );
-            }            
+            }
             retVal = new org.apache.lucene.search.RangeQuery( begin, end, 
rq.isInclusive() );
         }
         else

Modified: 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndex.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndex.java?rev=371476&r1=371475&r2=371476&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndex.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndex.java
 Sun Jan 22 23:27:58 2006
@@ -41,6 +41,8 @@
 public class ArtifactRepositoryIndex
     extends AbstractRepositoryIndex
 {
+    protected static final String FLD_ID = "id";
+
     protected static final String FLD_NAME = "name";
 
     protected static final String FLD_GROUPID = "groupId";
@@ -59,13 +61,15 @@
 
     protected static final String FLD_FILES = "files";
 
-    private static final String[] FIELDS =
-        {FLD_NAME, FLD_GROUPID, FLD_ARTIFACTID, FLD_VERSION, FLD_SHA1, 
FLD_MD5, FLD_CLASSES, FLD_PACKAGES, FLD_FILES};
+    private static final String[] FIELDS = {FLD_ID, FLD_NAME, FLD_GROUPID, 
FLD_ARTIFACTID, FLD_VERSION, FLD_SHA1,
+        FLD_MD5, FLD_CLASSES, FLD_PACKAGES, FLD_FILES};
 
     private Analyzer analyzer;
 
     private Digester digester;
 
+    protected static final String ARTIFACT_TYPE = "ARTIFACT";
+
     /**
      * Class constructor
      *
@@ -161,6 +165,7 @@
 
         //@todo should some of these fields be Keyword instead of Text ?
         Document doc = new Document();
+        doc.add( Field.Keyword( FLD_ID, ARTIFACT_TYPE + artifact.getId() ) );
         doc.add( Field.Text( FLD_NAME, artifact.getFile().getName() ) );
         doc.add( Field.Text( FLD_GROUPID, artifact.getGroupId() ) );
         doc.add( Field.Text( FLD_ARTIFACTID, artifact.getArtifactId() ) );

Modified: 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/DefaultRepositoryIndexingFactory.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/DefaultRepositoryIndexingFactory.java?rev=371476&r1=371475&r2=371476&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/DefaultRepositoryIndexingFactory.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/DefaultRepositoryIndexingFactory.java
 Sun Jan 22 23:27:58 2006
@@ -8,7 +8,7 @@
  * 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,
@@ -72,9 +72,10 @@
         return new PomRepositoryIndexSearcher( index, artifactFactory );
     }
 
-    public MetadataRepositoryIndex createMetadataRepositoryIndex( String 
indexPath, ArtifactRepository repository)
-        throws RepositoryIndexException{
-        return new MetadataRepositoryIndex(indexPath, repository);
+    public MetadataRepositoryIndex createMetadataRepositoryIndex( String 
indexPath, ArtifactRepository repository )
+        throws RepositoryIndexException
+    {
+        return new MetadataRepositoryIndex( indexPath, repository );
     }
 
     public MetadataRepositoryIndexSearcher 
createMetadataRepositoryIndexSearcher( MetadataRepositoryIndex index )

Modified: 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/MetadataRepositoryIndex.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/MetadataRepositoryIndex.java?rev=371476&r1=371475&r2=371476&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/MetadataRepositoryIndex.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/MetadataRepositoryIndex.java
 Sun Jan 22 23:27:58 2006
@@ -21,50 +21,54 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.metadata.RepositoryMetadata;
 import org.apache.maven.artifact.repository.metadata.Metadata;
-import org.apache.maven.artifact.repository.metadata.Versioning;
 import org.apache.maven.artifact.repository.metadata.Plugin;
+import org.apache.maven.artifact.repository.metadata.RepositoryMetadata;
+import org.apache.maven.artifact.repository.metadata.Versioning;
 
-import java.util.List;
-import java.util.Iterator;
 import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
 
 /**
  * This class indexes the metadata in the repository.
  */
 public class MetadataRepositoryIndex
-        extends AbstractRepositoryIndex
+    extends AbstractRepositoryIndex
 {
-    private static final String FLD_LASTUPDATE = "lastUpdate";
+    protected static final String FLD_ID = "id";
 
-    private static final String FLD_PLUGINPREFIX = "pluginPrefix";
+    protected static final String FLD_LASTUPDATE = "lastUpdate";
 
-    private static final String FLD_METADATAPATH = "path";
+    protected static final String FLD_PLUGINPREFIX = "pluginPrefix";
 
-    private static final String FLD_GROUPID = "groupId";
+    protected static final String FLD_METADATAPATH = "path";
 
-    private static final String FLD_ARTIFACTID = "artifactId";
+    protected static final String FLD_GROUPID = "groupId";
 
-    private static final String FLD_VERSION = "version";
+    protected static final String FLD_ARTIFACTID = "artifactId";
 
-    private static final String[] FIELDS = {FLD_METADATAPATH, 
FLD_PLUGINPREFIX, FLD_LASTUPDATE,
-            FLD_GROUPID, FLD_ARTIFACTID, FLD_VERSION};
+    protected static final String FLD_VERSION = "version";
+
+    private static final String[] FIELDS =
+        {FLD_ID, FLD_METADATAPATH, FLD_PLUGINPREFIX, FLD_LASTUPDATE, 
FLD_GROUPID, FLD_ARTIFACTID, FLD_VERSION};
 
     /**
      * Constructor
-     * @param indexPath the path to the index
+     *
+     * @param indexPath  the path to the index
      * @param repository the repository where the metadata to be indexed is 
located
      * @throws RepositoryIndexException
      */
     public MetadataRepositoryIndex( String indexPath, ArtifactRepository 
repository )
-            throws RepositoryIndexException
+        throws RepositoryIndexException
     {
         super( indexPath, repository, FIELDS );
     }
 
     /**
      * Get the field names to be used in the index
+     *
      * @return array of strings
      */
     public String[] getIndexFields()
@@ -74,6 +78,7 @@
 
     /**
      * Returns the analyzer used for indexing
+     *
      * @return Analyzer object
      */
     public Analyzer getAnalyzer()
@@ -83,12 +88,14 @@
 
     /**
      * Index the paramater object
+     *
      * @param obj
      * @throws RepositoryIndexException
      */
-    public void index( Object obj ) throws RepositoryIndexException
+    public void index( Object obj )
+        throws RepositoryIndexException
     {
-         if ( obj instanceof RepositoryMetadata )
+        if ( obj instanceof RepositoryMetadata )
         {
             indexMetadata( (RepositoryMetadata) obj );
         }
@@ -101,12 +108,14 @@
 
     /**
      * Index the contents of the specified RepositoryMetadata paramter object
+     *
      * @param repoMetadata the metadata object to be indexed
      * @throws RepositoryIndexException
      */
-    private void indexMetadata( RepositoryMetadata repoMetadata ) throws 
RepositoryIndexException
+    private void indexMetadata( RepositoryMetadata repoMetadata )
+        throws RepositoryIndexException
     {
-         if ( !isOpen() )
+        if ( !isOpen() )
         {
             throw new RepositoryIndexException( "Unable to add artifact index 
on a closed index" );
         }
@@ -116,38 +125,40 @@
         //get the metadatapath: check where metadata is located, then 
concatenate the groupId,
         // artifactId, version based on its location
         Document doc = new Document();
+        doc.add( Field.Keyword( FLD_ID, (String) repoMetadata.getKey() ) );
         String path = "";
 
-        if( repoMetadata.storedInGroupDirectory() && 
!repoMetadata.storedInArtifactVersionDirectory())
+        if ( repoMetadata.storedInGroupDirectory() && 
!repoMetadata.storedInArtifactVersionDirectory() )
         {
             path = repoMetadata.getGroupId() + "/";
         }
-        else if(!repoMetadata.storedInGroupDirectory() && 
!repoMetadata.storedInArtifactVersionDirectory())
+        else if ( !repoMetadata.storedInGroupDirectory() && 
!repoMetadata.storedInArtifactVersionDirectory() )
         {
-           path = repoMetadata.getGroupId() + "/" + 
repoMetadata.getArtifactId() + "/";
+            path = repoMetadata.getGroupId() + "/" + 
repoMetadata.getArtifactId() + "/";
         }
-        else if(!repoMetadata.storedInGroupDirectory() && 
repoMetadata.storedInArtifactVersionDirectory())
+        else if ( !repoMetadata.storedInGroupDirectory() && 
repoMetadata.storedInArtifactVersionDirectory() )
         {
-           path = repoMetadata.getGroupId() + "/" + 
repoMetadata.getArtifactId() + "/" + repoMetadata.getBaseVersion() + "/";
+            path = repoMetadata.getGroupId() + "/" + 
repoMetadata.getArtifactId() + "/" +
+                repoMetadata.getBaseVersion() + "/";
         }
 
         //@todo use localfilename or remotefilename to get the path???
         path = path + repoMetadata.getRemoteFilename();
-        doc.add( Field.Text( FLD_METADATAPATH, path) );
+        doc.add( Field.Text( FLD_METADATAPATH, path ) );
 
         Metadata metadata = repoMetadata.getMetadata();
         Versioning versioning = metadata.getVersioning();
-        if( versioning != null )
+        if ( versioning != null )
         {
             doc.add( Field.Text( FLD_LASTUPDATE, versioning.getLastUpdated() ) 
);
         }
 
         List plugins = metadata.getPlugins();
         String pluginAppended = "";
-        for( Iterator iter = plugins.iterator(); iter.hasNext(); )
+        for ( Iterator iter = plugins.iterator(); iter.hasNext(); )
         {
             Plugin plugin = (Plugin) iter.next();
-            if( plugin.getPrefix() != null && !plugin.getPrefix().equals("") )
+            if ( plugin.getPrefix() != null && !plugin.getPrefix().equals( "" 
) )
             {
                 pluginAppended = plugin.getPrefix() + " ";
             }
@@ -155,11 +166,11 @@
         doc.add( Field.Text( FLD_PLUGINPREFIX, pluginAppended ) );
         doc.add( Field.UnIndexed( FLD_GROUPID, metadata.getGroupId() ) );
 
-        if( metadata.getArtifactId() != null && 
!metadata.getArtifactId().equals("") )
+        if ( metadata.getArtifactId() != null && 
!metadata.getArtifactId().equals( "" ) )
         {
             doc.add( Field.UnIndexed( FLD_ARTIFACTID, metadata.getArtifactId() 
) );
         }
-        if( metadata.getVersion() != null && !metadata.getVersion().equals("") 
)
+        if ( metadata.getVersion() != null && !metadata.getVersion().equals( 
"" ) )
         {
             doc.add( Field.UnIndexed( FLD_VERSION, metadata.getVersion() ) );
         }
@@ -174,7 +185,8 @@
         }
     }
 
-    public boolean isKeywordField( String field ){
-           return false;
+    public boolean isKeywordField( String field )
+    {
+        return false;
     }
 }

Modified: 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/MetadataRepositoryIndexSearcher.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/MetadataRepositoryIndexSearcher.java?rev=371476&r1=371475&r2=371476&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/MetadataRepositoryIndexSearcher.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/MetadataRepositoryIndexSearcher.java
 Sun Jan 22 23:27:58 2006
@@ -17,26 +17,29 @@
  */
 
 import org.apache.lucene.document.Document;
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.repository.metadata.RepositoryMetadata;
-import org.apache.maven.artifact.repository.metadata.GroupRepositoryMetadata;
 import 
org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
+import org.apache.maven.artifact.repository.metadata.GroupRepositoryMetadata;
+import org.apache.maven.artifact.repository.metadata.RepositoryMetadata;
 import 
org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
 import 
org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
-import org.apache.maven.artifact.Artifact;
 
-import java.net.URL;
-import java.io.InputStream;
 import java.io.File;
+import java.io.InputStream;
 import java.io.InputStreamReader;
-import java.util.*;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.StringTokenizer;
 
 /**
  * This class searches the specified index given the search/query criteria.
- *
  */
 public class MetadataRepositoryIndexSearcher
-        extends AbstractRepositoryIndexSearcher
+    extends AbstractRepositoryIndexSearcher
 {
     private ArtifactFactory artifactFactory;
 
@@ -56,17 +59,19 @@
 
     /**
      * Constructor
-     * @param index the index object to be set
+     *
+     * @param index   the index object to be set
      * @param factory
      */
-    public MetadataRepositoryIndexSearcher( MetadataRepositoryIndex index, 
ArtifactFactory factory)
+    public MetadataRepositoryIndexSearcher( MetadataRepositoryIndex index, 
ArtifactFactory factory )
     {
-        super(index);
+        super( index );
         artifactFactory = factory;
     }
 
     /**
      * Create object to be returned by the search based on the document
+     *
      * @param doc
      * @return Object
      */
@@ -85,11 +90,11 @@
         String tmpDir = (String) it.next();
 
         String metadataType = "";
-        if( tmpDir.equals( doc.get( FLD_GROUPID ) ) )
+        if ( tmpDir.equals( doc.get( FLD_GROUPID ) ) )
         {
             metadataType = GROUP_TYPE;
         }
-        else if( tmpDir.equals( doc.get( FLD_ARTIFACTID ) ) )
+        else if ( tmpDir.equals( doc.get( FLD_ARTIFACTID ) ) )
         {
             metadataType = ARTIFACT_TYPE;
         }
@@ -100,10 +105,12 @@
 
         RepositoryMetadata repoMetadata = null;
 
-        try{
-            repoMetadata = getMetadata(doc.get( FLD_GROUPID ), doc.get( 
FLD_ARTIFACTID ), doc.get( FLD_VERSION ), metadataFile, metadataType );
+        try
+        {
+            repoMetadata = getMetadata( doc.get( FLD_GROUPID ), doc.get( 
FLD_ARTIFACTID ), doc.get( FLD_VERSION ),
+                                        metadataFile, metadataType );
         }
-        catch(Exception e)
+        catch ( Exception e )
         {
             //@todo
         }
@@ -114,15 +121,16 @@
     /**
      * Create RepositoryMetadata object.
      *
-     * @param groupId the groupId to be set
-     * @param artifactId the artifactId to be set
-     * @param version the version to be set
-     * @param filename the name of the metadata file
+     * @param groupId      the groupId to be set
+     * @param artifactId   the artifactId to be set
+     * @param version      the version to be set
+     * @param filename     the name of the metadata file
      * @param metadataType the type of RepositoryMetadata object to be created 
(GROUP, ARTIFACT or SNAPSHOT)
      * @return RepositoryMetadata
      * @throws Exception
      */
-    private RepositoryMetadata getMetadata( String groupId, String artifactId, 
String version, String filename, String metadataType)
+    private RepositoryMetadata getMetadata( String groupId, String artifactId, 
String version, String filename,
+                                            String metadataType )
         throws Exception
     {
         RepositoryMetadata repoMetadata = null;
@@ -131,25 +139,27 @@
         MetadataXpp3Reader metadataReader = new MetadataXpp3Reader();
 
         //group metadata
-        if( metadataType.equals( GROUP_TYPE ) )
+        if ( metadataType.equals( GROUP_TYPE ) )
         {
-            url = new File( index.getRepository().getBasedir() + 
groupId.replace('.', '/') + "/" + filename ).toURL();
+            url = new File( index.getRepository().getBasedir() + 
groupId.replace( '.', '/' ) + "/" + filename ).toURL();
             is = url.openStream();
-            repoMetadata = new GroupRepositoryMetadata(groupId);
+            repoMetadata = new GroupRepositoryMetadata( groupId );
             repoMetadata.setMetadata( metadataReader.read( new 
InputStreamReader( is ) ) );
         }
         //artifact metadata
-        else if( metadataType.equals( ARTIFACT_TYPE ) )
+        else if ( metadataType.equals( ARTIFACT_TYPE ) )
         {
-            url = new File( index.getRepository().getBasedir() + 
groupId.replace('.', '/') + "/" + artifactId + "/" + filename ).toURL();
+            url = new File( index.getRepository().getBasedir() + 
groupId.replace( '.', '/' ) + "/" + artifactId + "/" +
+                filename ).toURL();
             is = url.openStream();
             repoMetadata = new ArtifactRepositoryMetadata( getArtifact( 
groupId, artifactId, version ) );
             repoMetadata.setMetadata( metadataReader.read( new 
InputStreamReader( is ) ) );
         }
         //snapshot/version metadata
-        else if( metadataType.equals( SNAPSHOT_TYPE ) )
+        else if ( metadataType.equals( SNAPSHOT_TYPE ) )
         {
-            url = new File( index.getRepository().getBasedir() + 
groupId.replace('.', '/') + "/" + artifactId + "/" + version + "/" + filename 
).toURL();
+            url = new File( index.getRepository().getBasedir() + 
groupId.replace( '.', '/' ) + "/" + artifactId + "/" +
+                version + "/" + filename ).toURL();
             is = url.openStream();
             repoMetadata = new SnapshotArtifactRepositoryMetadata( 
getArtifact( groupId, artifactId, version ) );
             repoMetadata.setMetadata( metadataReader.read( new 
InputStreamReader( is ) ) );
@@ -160,9 +170,10 @@
 
     /**
      * Create artifact object.
-     * @param groupId the groupId of the artifact
+     *
+     * @param groupId    the groupId of the artifact
      * @param artifactId the artifactId of the artifact
-     * @param version the version of the artifact
+     * @param version    the version of the artifact
      * @return Artifact
      * @throws Exception
      */

Modified: 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/PomRepositoryIndex.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/PomRepositoryIndex.java?rev=371476&r1=371475&r2=371476&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/PomRepositoryIndex.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/PomRepositoryIndex.java
 Sun Jan 22 23:27:58 2006
@@ -8,7 +8,7 @@
  * 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,
@@ -47,6 +47,8 @@
 public class PomRepositoryIndex
     extends AbstractRepositoryIndex
 {
+    protected static final String FLD_ID = "id";
+
     protected static final String FLD_GROUPID = "groupId";
 
     protected static final String FLD_ARTIFACTID = "artifactId";
@@ -69,8 +71,8 @@
 
     protected static final String FLD_MD5 = "md5";
 
-    private static final String[] FIELDS = {FLD_GROUPID, FLD_ARTIFACTID, 
FLD_VERSION, FLD_PACKAGING, FLD_LICENSE_URLS,
-        FLD_DEPENDENCIES, FLD_PLUGINS_BUILD, FLD_PLUGINS_REPORT, 
FLD_PLUGINS_ALL};
+    private static final String[] FIELDS = {FLD_ID, FLD_GROUPID, 
FLD_ARTIFACTID, FLD_VERSION, FLD_PACKAGING,
+        FLD_LICENSE_URLS, FLD_DEPENDENCIES, FLD_PLUGINS_BUILD, 
FLD_PLUGINS_REPORT, FLD_PLUGINS_ALL};
 
     private Analyzer analyzer;
 
@@ -78,8 +80,10 @@
 
     private ArtifactFactory artifactFactory;
 
-    private static final List KEYWORD_FIELDS = Arrays.asList(
-        new String[]{FLD_LICENSE_URLS, FLD_DEPENDENCIES, FLD_PLUGINS_BUILD, 
FLD_PLUGINS_REPORT, FLD_PLUGINS_ALL} );
+    private static final List KEYWORD_FIELDS = Arrays.asList( new 
String[]{FLD_ID, FLD_LICENSE_URLS, FLD_DEPENDENCIES,
+        FLD_PLUGINS_BUILD, FLD_PLUGINS_REPORT, FLD_PLUGINS_ALL} );
+
+    protected static final String POM_TYPE = "POM";
 
     /**
      * Class Constructor
@@ -127,6 +131,7 @@
         }
 
         Document doc = new Document();
+        doc.add( Field.Keyword( FLD_ID, POM_TYPE + pom.getId() ) );
         doc.add( Field.Text( FLD_GROUPID, pom.getGroupId() ) );
         doc.add( Field.Text( FLD_ARTIFACTID, pom.getArtifactId() ) );
         doc.add( Field.Text( FLD_VERSION, pom.getVersion() ) );

Modified: 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/RepositoryIndexingFactory.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/RepositoryIndexingFactory.java?rev=371476&r1=371475&r2=371476&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/RepositoryIndexingFactory.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/RepositoryIndexingFactory.java
 Sun Jan 22 23:27:58 2006
@@ -8,7 +8,7 @@
  * 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,
@@ -65,8 +65,8 @@
      */
     PomRepositoryIndexSearcher createPomRepositoryIndexSearcher( 
PomRepositoryIndex index );
 
-    MetadataRepositoryIndex createMetadataRepositoryIndex( String indexPath, 
ArtifactRepository repository)
-            throws RepositoryIndexException;
+    MetadataRepositoryIndex createMetadataRepositoryIndex( String indexPath, 
ArtifactRepository repository )
+        throws RepositoryIndexException;
 
     MetadataRepositoryIndexSearcher createMetadataRepositoryIndexSearcher( 
MetadataRepositoryIndex index );
 

Modified: 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/query/RangeQuery.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/query/RangeQuery.java?rev=371476&r1=371475&r2=371476&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/query/RangeQuery.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/query/RangeQuery.java
 Sun Jan 22 23:27:58 2006
@@ -16,11 +16,12 @@
  * limitations under the License.
  */
 
-import java.util.List;
 import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Query object that handles range queries for dates.
+ *
  * @author Maria Odea Ching
  */
 public class RangeQuery
@@ -30,7 +31,7 @@
 
     private boolean inclusive;
 
-    public RangeQuery( boolean inclusive)
+    public RangeQuery( boolean inclusive )
     {
         this.inclusive = inclusive;
     }

Modified: 
maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndexingTest.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndexingTest.java?rev=371476&r1=371475&r2=371476&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndexingTest.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndexingTest.java
 Sun Jan 22 23:27:58 2006
@@ -39,18 +39,6 @@
 public class ArtifactRepositoryIndexingTest
     extends PlexusTestCase
 {
-    private static final String GROUPID = "groupId";
-
-    private static final String ARTIFACTID = "artifactId";
-
-    private static final String VERSION = "version";
-
-    private static final String CLASSES = "classes";
-
-    private static final String PACKAGES = "packages";
-
-    private static final String FILES = "files";
-
     private ArtifactFactory artifactFactory;
 
     private ArtifactRepository repository;
@@ -59,11 +47,7 @@
 
     private Digester digester;
 
-    private static final String SHA1 = "sha1";
-
-    private static final String MD5 = "md5";
-
-    private static final String NAME = "name";
+    private static final String ARTIFACT_TYPE = "ARTIFACT";
 
     protected void setUp()
         throws Exception
@@ -181,7 +165,7 @@
         RepositoryIndexSearcher repoSearcher = 
factory.createArtifactRepositoryIndexSearcher( indexer );
 
         // search version
-        Query qry = new SinglePhraseQuery( VERSION, "1.0" );
+        Query qry = new SinglePhraseQuery( 
ArtifactRepositoryIndex.FLD_VERSION, "1.0" );
         List artifacts = repoSearcher.search( qry );
         assertEquals( 1, artifacts.size() );
         for ( Iterator iter = artifacts.iterator(); iter.hasNext(); )
@@ -191,7 +175,7 @@
         }
 
         // search classes
-        qry = new SinglePhraseQuery( CLASSES, "App" );
+        qry = new SinglePhraseQuery( ArtifactRepositoryIndex.FLD_CLASSES, 
"App" );
         artifacts = repoSearcher.search( qry );
         assertEquals( 1, artifacts.size() );
         for ( Iterator iter = artifacts.iterator(); iter.hasNext(); )
@@ -201,7 +185,7 @@
         }
 
         // search packages
-        qry = new SinglePhraseQuery( PACKAGES, "groupId" );
+        qry = new SinglePhraseQuery( ArtifactRepositoryIndex.FLD_PACKAGES, 
"groupId" );
         artifacts = repoSearcher.search( qry );
         assertEquals( 1, artifacts.size() );
         for ( Iterator iter = artifacts.iterator(); iter.hasNext(); )
@@ -211,7 +195,7 @@
         }
 
         // search files
-        qry = new SinglePhraseQuery( FILES, "pom.xml" );
+        qry = new SinglePhraseQuery( ArtifactRepositoryIndex.FLD_FILES, 
"pom.xml" );
         artifacts = repoSearcher.search( qry );
         assertEquals( 3, artifacts.size() );
         Iterator iter = artifacts.iterator();
@@ -222,7 +206,7 @@
         }
 
         // search group id
-        qry = new SinglePhraseQuery( GROUPID, "org.apache.maven" );
+        qry = new SinglePhraseQuery( ArtifactRepositoryIndex.FLD_GROUPID, 
"org.apache.maven" );
         artifacts = repoSearcher.search( qry );
         assertEquals( 2, artifacts.size() );
         iter = artifacts.iterator();
@@ -233,7 +217,7 @@
         }
 
         // search artifact id
-        qry = new SinglePhraseQuery( ARTIFACTID, "maven-artifact" );
+        qry = new SinglePhraseQuery( ArtifactRepositoryIndex.FLD_ARTIFACTID, 
"maven-artifact" );
         artifacts = repoSearcher.search( qry );
         assertEquals( 1, artifacts.size() );
         for ( iter = artifacts.iterator(); iter.hasNext(); )
@@ -243,7 +227,7 @@
         }
 
         // search version
-        qry = new SinglePhraseQuery( VERSION, "2" );
+        qry = new SinglePhraseQuery( ArtifactRepositoryIndex.FLD_VERSION, "2" 
);
         artifacts = repoSearcher.search( qry );
         assertEquals( 2, artifacts.size() );
         for ( iter = artifacts.iterator(); iter.hasNext(); )
@@ -258,7 +242,7 @@
 
         String sha1 = digester.createChecksum( artifact.getFile(), 
Digester.SHA1 );
 
-        qry = new SinglePhraseQuery( SHA1, sha1.trim() );
+        qry = new SinglePhraseQuery( ArtifactRepositoryIndex.FLD_SHA1, 
sha1.trim() );
         artifacts = repoSearcher.search( qry );
         assertEquals( 1, artifacts.size() );
         for ( iter = artifacts.iterator(); iter.hasNext(); )
@@ -270,7 +254,7 @@
 
         // search md5 checksum
         String md5 = digester.createChecksum( artifact.getFile(), Digester.MD5 
);
-        qry = new SinglePhraseQuery( MD5, md5.trim() );
+        qry = new SinglePhraseQuery( ArtifactRepositoryIndex.FLD_MD5, 
md5.trim() );
         artifacts = repoSearcher.search( qry );
         assertEquals( 1, artifacts.size() );
         for ( iter = artifacts.iterator(); iter.hasNext(); )
@@ -300,8 +284,8 @@
 
         // Criteria 1: required query
         // ex. artifactId=maven-artifact AND groupId=org.apache.maven
-        Query qry1 = new SinglePhraseQuery( ARTIFACTID, "maven-artifact" );
-        Query qry2 = new SinglePhraseQuery( GROUPID, "org.apache.maven" );
+        Query qry1 = new SinglePhraseQuery( 
ArtifactRepositoryIndex.FLD_ARTIFACTID, "maven-artifact" );
+        Query qry2 = new SinglePhraseQuery( 
ArtifactRepositoryIndex.FLD_GROUPID, "org.apache.maven" );
         CompoundQuery rQry = new CompoundQuery();
         rQry.and( qry1 );
         rQry.and( qry2 );
@@ -317,7 +301,7 @@
         // Criteria 2: nested required query
         // ex. (artifactId=maven-artifact AND groupId=org.apache.maven) OR
         // version=2.0.3
-        Query qry3 = new SinglePhraseQuery( VERSION, "2.0.3" );
+        Query qry3 = new SinglePhraseQuery( 
ArtifactRepositoryIndex.FLD_VERSION, "2.0.3" );
         CompoundQuery oQry = new CompoundQuery();
         oQry.or( rQry );
         oQry.or( qry3 );
@@ -334,14 +318,14 @@
         // ex. (artifactId=maven-artifact AND groupId=org.apache.maven) AND
         // (version=2.0.3 OR version=2.0.1)
         // AND (name=maven-artifact-2.0.1.jar OR name=maven-artifact)
-        Query qry4 = new SinglePhraseQuery( VERSION, "2.0.1" );
+        Query qry4 = new SinglePhraseQuery( 
ArtifactRepositoryIndex.FLD_VERSION, "2.0.1" );
         oQry = new CompoundQuery();
         oQry.or( qry3 );
         oQry.or( qry4 );
 
         CompoundQuery oQry5 = new CompoundQuery();
-        Query qry9 = new SinglePhraseQuery( NAME, "maven-artifact-2.0.1.jar" );
-        Query qry10 = new SinglePhraseQuery( NAME, "maven-artifact" );
+        Query qry9 = new SinglePhraseQuery( ArtifactRepositoryIndex.FLD_NAME, 
"maven-artifact-2.0.1.jar" );
+        Query qry10 = new SinglePhraseQuery( ArtifactRepositoryIndex.FLD_NAME, 
"maven-artifact" );
         oQry5.or( qry9 );
         oQry5.or( qry10 );
 
@@ -365,8 +349,8 @@
         // AND (name=maven-artifact-2.0.1.jar OR name=maven-artifact)]
         // OR [(artifactId=sample AND groupId=test)]
         CompoundQuery rQry3 = new CompoundQuery();
-        Query qry5 = new SinglePhraseQuery( ARTIFACTID, "sample" );
-        Query qry6 = new SinglePhraseQuery( GROUPID, "test" );
+        Query qry5 = new SinglePhraseQuery( 
ArtifactRepositoryIndex.FLD_ARTIFACTID, "sample" );
+        Query qry6 = new SinglePhraseQuery( 
ArtifactRepositoryIndex.FLD_GROUPID, "test" );
         rQry3.and( qry5 );
         rQry3.and( qry6 );
         CompoundQuery oQry2 = new CompoundQuery();
@@ -389,8 +373,8 @@
         // [(artifactId=sample AND groupId=test)] OR
         // [(artifactId=sample2 AND groupId=test)]
         CompoundQuery rQry4 = new CompoundQuery();
-        Query qry7 = new SinglePhraseQuery( ARTIFACTID, "sample2" );
-        Query qry8 = new SinglePhraseQuery( GROUPID, "test" );
+        Query qry7 = new SinglePhraseQuery( 
ArtifactRepositoryIndex.FLD_ARTIFACTID, "sample2" );
+        Query qry8 = new SinglePhraseQuery( 
ArtifactRepositoryIndex.FLD_GROUPID, "test" );
         rQry4.and( qry7 );
         rQry4.and( qry8 );
         oQry2.and( rQry4 );
@@ -404,6 +388,24 @@
         }
 
         indexer.close();
+    }
+
+    public void testDeleteArtifactDocument()
+        throws Exception
+    {
+        createTestIndex();
+
+        RepositoryIndexingFactory factory = (RepositoryIndexingFactory) 
lookup( RepositoryIndexingFactory.ROLE );
+        ArtifactRepositoryIndex indexer = 
factory.createArtifactRepositoryIndex( indexPath, repository );
+
+        Artifact artifact = getArtifact( "org.apache.maven", "maven-artifact", 
"2.0.1" );
+        artifact.setFile( new File( repository.getBasedir(), 
repository.pathOf( artifact ) ) );
+        indexer.deleteDocument( ArtifactRepositoryIndex.FLD_ID, ARTIFACT_TYPE 
+ artifact.getId() );
+
+        RepositoryIndexSearcher repoSearcher = 
factory.createArtifactRepositoryIndexSearcher( indexer );
+        Query qry = new SinglePhraseQuery( ArtifactRepositoryIndex.FLD_ID, 
ARTIFACT_TYPE + artifact.getId() );
+        List artifacts = repoSearcher.search( qry );
+        assertEquals( artifacts.size(), 0 );
     }
 
     private Artifact getArtifact( String groupId, String artifactId, String 
version )

Modified: 
maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/MetadataRepositoryIndexingTest.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/MetadataRepositoryIndexingTest.java?rev=371476&r1=371475&r2=371476&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/MetadataRepositoryIndexingTest.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/MetadataRepositoryIndexingTest.java
 Sun Jan 22 23:27:58 2006
@@ -21,7 +21,13 @@
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
-import org.apache.maven.artifact.repository.metadata.*;
+import 
org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
+import org.apache.maven.artifact.repository.metadata.GroupRepositoryMetadata;
+import org.apache.maven.artifact.repository.metadata.Metadata;
+import org.apache.maven.artifact.repository.metadata.Plugin;
+import org.apache.maven.artifact.repository.metadata.RepositoryMetadata;
+import 
org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
+import org.apache.maven.artifact.repository.metadata.Versioning;
 import 
org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
 import org.apache.maven.repository.indexing.query.Query;
 import org.apache.maven.repository.indexing.query.RangeQuery;
@@ -40,16 +46,12 @@
  * This class tests the MetadataRepositoryIndex.
  */
 public class MetadataRepositoryIndexingTest
-        extends PlexusTestCase
+    extends PlexusTestCase
 {
     private ArtifactRepository repository;
 
     private String indexPath;
 
-    private static final String FLD_LASTUPDATE = "lastUpdate";
-
-    private static final String FLD_PLUGINPREFIX = "pluginPrefix";
-
     private static final String GROUP_TYPE = "GROUP";
 
     private static final String ARTIFACT_TYPE = "ARTIFACT";
@@ -62,15 +64,17 @@
 
     /**
      * Set up.
+     *
      * @throws Exception
      */
-    public void setUp() throws Exception
+    public void setUp()
+        throws Exception
     {
         super.setUp();
         File repositoryDirectory = getTestFile( "src/test/repository" );
         String repoDir = repositoryDirectory.toURL().toString();
-        ArtifactRepositoryLayout layout = ( ArtifactRepositoryLayout ) lookup( 
ArtifactRepositoryLayout.ROLE, "default" );
-        ArtifactRepositoryFactory repoFactory = ( ArtifactRepositoryFactory ) 
lookup( ArtifactRepositoryFactory.ROLE );
+        ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) lookup( 
ArtifactRepositoryLayout.ROLE, "default" );
+        ArtifactRepositoryFactory repoFactory = (ArtifactRepositoryFactory) 
lookup( ArtifactRepositoryFactory.ROLE );
         repository = repoFactory.createArtifactRepository( "test", repoDir, 
layout, null, null );
 
         indexPath = "target/index/metadata";
@@ -79,9 +83,11 @@
 
     /**
      * Tear down.
+     *
      * @throws Exception
      */
-    public void tearDown() throws Exception
+    public void tearDown()
+        throws Exception
     {
         repository = null;
         super.tearDown();
@@ -89,20 +95,25 @@
 
     /**
      * Create the test index.
+     *
      * @throws Exception
      */
-    private void createTestIndex() throws Exception
+    private void createTestIndex()
+        throws Exception
     {
-        RepositoryIndexingFactory factory = ( RepositoryIndexingFactory ) 
lookup( RepositoryIndexingFactory.ROLE );
+        RepositoryIndexingFactory factory = (RepositoryIndexingFactory) 
lookup( RepositoryIndexingFactory.ROLE );
         indexer = factory.createMetadataRepositoryIndex( indexPath, repository 
);
 
-        RepositoryMetadata repoMetadata = getMetadata( "org.apache.maven", 
null, null, "maven-metadata.xml", GROUP_TYPE );
+        RepositoryMetadata repoMetadata =
+            getMetadata( "org.apache.maven", null, null, "maven-metadata.xml", 
GROUP_TYPE );
         indexer.index( repoMetadata );
 
-        repoMetadata = getMetadata( "org.apache.maven", "maven-artifact", 
"2.0.1", "maven-metadata.xml", ARTIFACT_TYPE );
+        repoMetadata =
+            getMetadata( "org.apache.maven", "maven-artifact", "2.0.1", 
"maven-metadata.xml", ARTIFACT_TYPE );
         indexer.index( repoMetadata );
 
-        repoMetadata = getMetadata( "org.apache.maven", "maven-artifact", 
"2.0.1", "maven-metadata.xml", SNAPSHOT_TYPE );
+        repoMetadata =
+            getMetadata( "org.apache.maven", "maven-artifact", "2.0.1", 
"maven-metadata.xml", SNAPSHOT_TYPE );
         indexer.index( repoMetadata );
 
         indexer.optimize();
@@ -114,9 +125,9 @@
      *
      * @throws Exception
      */
-     public void testSearch()
-         throws Exception
-     {
+    public void testSearch()
+        throws Exception
+    {
         createTestIndex();
 
         RepositoryIndexingFactory factory = (RepositoryIndexingFactory) 
lookup( RepositoryIndexingFactory.ROLE );
@@ -124,7 +135,8 @@
         RepositoryIndexSearcher repoSearcher = 
factory.createMetadataRepositoryIndexSearcher( indexer );
 
         // search last update
-        org.apache.maven.repository.indexing.query.Query qry = new 
SinglePhraseQuery( FLD_LASTUPDATE, "20051212044643" );
+        org.apache.maven.repository.indexing.query.Query qry =
+            new SinglePhraseQuery( MetadataRepositoryIndex.FLD_LASTUPDATE, 
"20051212044643" );
         List metadataList = repoSearcher.search( qry );
         assertEquals( 1, metadataList.size() );
         for ( Iterator iter = metadataList.iterator(); iter.hasNext(); )
@@ -137,7 +149,7 @@
         }
 
         // search plugin prefix
-        qry = new SinglePhraseQuery( FLD_PLUGINPREFIX, "org.apache.maven" );
+        qry = new SinglePhraseQuery( MetadataRepositoryIndex.FLD_PLUGINPREFIX, 
"org.apache.maven" );
         metadataList = repoSearcher.search( qry );
         assertEquals( 1, metadataList.size() );
         for ( Iterator iter = metadataList.iterator(); iter.hasNext(); )
@@ -145,7 +157,7 @@
             RepositoryMetadata repoMetadata = (RepositoryMetadata) iter.next();
             Metadata metadata = repoMetadata.getMetadata();
             List plugins = metadata.getPlugins();
-            for( Iterator it = plugins.iterator(); it.hasNext(); )
+            for ( Iterator it = plugins.iterator(); it.hasNext(); )
             {
                 Plugin plugin = (Plugin) it.next();
                 assertEquals( "org.apache.maven", plugin.getPrefix() );
@@ -153,8 +165,8 @@
         }
 
         // search last update using INCLUSIVE Range Query
-        Query qry1 = new SinglePhraseQuery( FLD_LASTUPDATE, "20051212000000" );
-        Query qry2 = new SinglePhraseQuery( FLD_LASTUPDATE, "20051212235959");
+        Query qry1 = new SinglePhraseQuery( 
MetadataRepositoryIndex.FLD_LASTUPDATE, "20051212000000" );
+        Query qry2 = new SinglePhraseQuery( 
MetadataRepositoryIndex.FLD_LASTUPDATE, "20051212235959" );
         RangeQuery rQry = new RangeQuery( true );
         rQry.addQuery( qry1 );
         rQry.addQuery( qry2 );
@@ -169,8 +181,8 @@
         }
 
         // search last update using EXCLUSIVE Range Query
-        qry1 = new SinglePhraseQuery( FLD_LASTUPDATE, "20051212000000" );
-        qry2 = new SinglePhraseQuery( FLD_LASTUPDATE, "20051212044643");
+        qry1 = new SinglePhraseQuery( MetadataRepositoryIndex.FLD_LASTUPDATE, 
"20051212000000" );
+        qry2 = new SinglePhraseQuery( MetadataRepositoryIndex.FLD_LASTUPDATE, 
"20051212044643" );
         rQry = new RangeQuery( false );
         rQry.addQuery( qry1 );
         rQry.addQuery( qry2 );
@@ -179,64 +191,95 @@
         assertEquals( metadataList.size(), 0 );
 
         indexer.close();
-     }
+    }
 
+    /**
+     * Test the exceptions thrown by MetadataRepositoryIndex.
+     *
+     * @throws Exception
+     */
     public void testExceptions()
-         throws Exception
+        throws Exception
     {
         //test when the object passed in the index(..) method is not a 
RepositoryMetadat instance
-        RepositoryIndexingFactory factory = ( RepositoryIndexingFactory ) 
lookup( RepositoryIndexingFactory.ROLE );
+        RepositoryIndexingFactory factory = (RepositoryIndexingFactory) 
lookup( RepositoryIndexingFactory.ROLE );
         indexer = factory.createMetadataRepositoryIndex( indexPath, repository 
);
         try
         {
-            Artifact artifact = getArtifact("org.apache.maven", 
"maven-artifact", "2.0.1");
+            Artifact artifact = getArtifact( "org.apache.maven", 
"maven-artifact", "2.0.1" );
             indexer.index( artifact );
             fail( "Must throw exception when the passed object is not a 
RepositoryMetadata object." );
         }
-        catch( Exception e )
+        catch ( Exception e )
         {
         }
         indexer.optimize();
         indexer.close();
 
         //test when the plugin prefix is blank
-        factory = ( RepositoryIndexingFactory ) lookup( 
RepositoryIndexingFactory.ROLE );
+        factory = (RepositoryIndexingFactory) lookup( 
RepositoryIndexingFactory.ROLE );
         indexer = factory.createMetadataRepositoryIndex( indexPath, repository 
);
         try
         {
             RepositoryMetadata repoMetadata = getMetadata( "test", null, null, 
"maven-metadata.xml", GROUP_TYPE );
             indexer.index( repoMetadata );
         }
-        catch( Exception e )
+        catch ( Exception e )
         {
         }
         indexer.optimize();
         indexer.close();
 
-       //test when the index is closed
+        //test when the index is closed
         try
         {
-            RepositoryMetadata repoMetadata = getMetadata( "org.apache.maven", 
null, null, "maven-metadata.xml", GROUP_TYPE );
+            RepositoryMetadata repoMetadata =
+                getMetadata( "org.apache.maven", null, null, 
"maven-metadata.xml", GROUP_TYPE );
             indexer.index( repoMetadata );
             fail( "Must throw exception when a metadata is added to the index 
while the indexer is still closed." );
         }
-        catch( Exception e )
+        catch ( Exception e )
         {
         }
     }
 
     /**
+     * Test delete of document from metadata index.
+     *
+     * @throws Exception
+     */
+    public void testDeleteMetadataDocument()
+        throws Exception
+    {
+        createTestIndex();
+
+        RepositoryIndexingFactory factory = (RepositoryIndexingFactory) 
lookup( RepositoryIndexingFactory.ROLE );
+        indexer = factory.createMetadataRepositoryIndex( indexPath, repository 
);
+
+        RepositoryMetadata repoMetadata =
+            getMetadata( "org.apache.maven", null, null, "maven-metadata.xml", 
GROUP_TYPE );
+        indexer.deleteDocument( MetadataRepositoryIndex.FLD_ID, (String) 
repoMetadata.getKey() );
+
+        RepositoryIndexSearcher repoSearcher = 
factory.createMetadataRepositoryIndexSearcher( indexer );
+        org.apache.maven.repository.indexing.query.Query qry =
+            new SinglePhraseQuery( MetadataRepositoryIndex.FLD_ID, (String) 
repoMetadata.getKey() );
+        List metadataList = repoSearcher.search( qry );
+        assertEquals( metadataList.size(), 0 );
+    }
+
+    /**
      * Create RepositoryMetadata object.
      *
-     * @param groupId the groupId to be set
-     * @param artifactId the artifactId to be set
-     * @param version the version to be set
-     * @param filename the name of the metadata file
+     * @param groupId      the groupId to be set
+     * @param artifactId   the artifactId to be set
+     * @param version      the version to be set
+     * @param filename     the name of the metadata file
      * @param metadataType the type of RepositoryMetadata object to be created 
(GROUP, ARTIFACT or SNAPSHOT)
      * @return RepositoryMetadata
      * @throws Exception
      */
-    private RepositoryMetadata getMetadata( String groupId, String artifactId, 
String version, String filename, String metadataType)
+    private RepositoryMetadata getMetadata( String groupId, String artifactId, 
String version, String filename,
+                                            String metadataType )
         throws Exception
     {
         RepositoryMetadata repoMetadata = null;
@@ -245,25 +288,27 @@
         MetadataXpp3Reader metadataReader = new MetadataXpp3Reader();
 
         //group metadata
-        if( metadataType.equals( GROUP_TYPE ) )
+        if ( metadataType.equals( GROUP_TYPE ) )
         {
-            url = new File( repository.getBasedir() + groupId.replace('.', 
'/') + "/" + filename ).toURL();
+            url = new File( repository.getBasedir() + groupId.replace( '.', 
'/' ) + "/" + filename ).toURL();
             is = url.openStream();
-            repoMetadata = new GroupRepositoryMetadata(groupId);
+            repoMetadata = new GroupRepositoryMetadata( groupId );
             repoMetadata.setMetadata( metadataReader.read( new 
InputStreamReader( is ) ) );
         }
         //artifact metadata
-        else if( metadataType.equals( ARTIFACT_TYPE ) )
+        else if ( metadataType.equals( ARTIFACT_TYPE ) )
         {
-            url = new File( repository.getBasedir() + groupId.replace('.', 
'/') + "/" + artifactId + "/" + filename ).toURL();
+            url = new File(
+                repository.getBasedir() + groupId.replace( '.', '/' ) + "/" + 
artifactId + "/" + filename ).toURL();
             is = url.openStream();
             repoMetadata = new ArtifactRepositoryMetadata( getArtifact( 
groupId, artifactId, version ) );
             repoMetadata.setMetadata( metadataReader.read( new 
InputStreamReader( is ) ) );
         }
         //snapshot/version metadata
-        else if( metadataType.equals( SNAPSHOT_TYPE ) )
+        else if ( metadataType.equals( SNAPSHOT_TYPE ) )
         {
-            url = new File( repository.getBasedir() + groupId.replace('.', 
'/') + "/" + artifactId + "/" + version + "/" + filename ).toURL();
+            url = new File( repository.getBasedir() + groupId.replace( '.', 
'/' ) + "/" + artifactId + "/" + version +
+                "/" + filename ).toURL();
             is = url.openStream();
             repoMetadata = new SnapshotArtifactRepositoryMetadata( 
getArtifact( groupId, artifactId, version ) );
             repoMetadata.setMetadata( metadataReader.read( new 
InputStreamReader( is ) ) );
@@ -275,9 +320,10 @@
 
     /**
      * Create artifact object.
-     * @param groupId the groupId of the artifact
+     *
+     * @param groupId    the groupId of the artifact
      * @param artifactId the artifactId of the artifact
-     * @param version the version of the artifact
+     * @param version    the version of the artifact
      * @return Artifact
      * @throws Exception
      */

Modified: 
maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/PomRepositoryIndexingTest.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/PomRepositoryIndexingTest.java?rev=371476&r1=371475&r2=371476&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/PomRepositoryIndexingTest.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/PomRepositoryIndexingTest.java
 Sun Jan 22 23:27:58 2006
@@ -450,6 +450,27 @@
         indexer.close();
     }
 
+    /**
+     * Test delete of pom document from index.
+     *
+     * @throws Exception
+     */
+    public void testDeletePomDocument()
+        throws Exception
+    {
+        createTestIndex();
+
+        RepositoryIndexingFactory factory = (RepositoryIndexingFactory) 
lookup( RepositoryIndexingFactory.ROLE );
+        PomRepositoryIndex indexer = factory.createPomRepositoryIndex( 
indexPath, repository );
+        Model pom = getPom( "org.apache.maven", "maven-artifact", "2.0.1" );
+        indexer.deleteDocument( PomRepositoryIndex.FLD_ID, 
PomRepositoryIndex.POM_TYPE + pom.getId() );
+
+        RepositoryIndexSearcher repoSearcher = 
factory.createPomRepositoryIndexSearcher( indexer );
+        Query qry = new SinglePhraseQuery( PomRepositoryIndex.FLD_ID, 
PomRepositoryIndex.POM_TYPE + pom.getId() );
+        List artifactList = repoSearcher.search( qry );
+        assertEquals( artifactList.size(), 0 );
+    }
+
     private Model getPom( String groupId, String artifactId, String version )
         throws Exception
     {


Reply via email to