You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ep...@apache.org on 2006/01/25 08:04:26 UTC
svn commit: r372138 - in
/maven/repository-manager/trunk/maven-repository-indexer/src:
main/java/org/apache/maven/repository/indexing/
test/java/org/apache/maven/repository/indexing/
Author: epunzalan
Date: Tue Jan 24 23:04:13 2006
New Revision: 372138
URL: http://svn.apache.org/viewcvs?rev=372138&view=rev
Log:
PR: MRM-55
Submitted by: Maria Odea Ching
Checked the index for a duplicate and delete it if one exists
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/ArtifactRepositoryIndex.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/PomRepositoryIndex.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=372138&r1=372137&r2=372138&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 Tue Jan 24 23:04:13 2006
@@ -41,28 +41,42 @@
protected ArtifactRepository repository;
+ protected boolean indexExists;
+
/**
* Class constructor
*
* @param indexPath
* @param repository
- * @param indexFields
* @throws RepositoryIndexException
*/
- protected AbstractRepositoryIndex( String indexPath, ArtifactRepository repository, String[] indexFields )
+ protected AbstractRepositoryIndex( String indexPath, ArtifactRepository repository )
throws RepositoryIndexException
{
this.repository = repository;
this.indexPath = indexPath;
+ }
+
+ public void open()
+ throws RepositoryIndexException
+ {
try
{
- validateIndex( indexFields );
+ if ( indexExists )
+ {
+ indexWriter = new IndexWriter( indexPath, getAnalyzer(), false );
+ }
+ else
+ {
+ indexWriter = new IndexWriter( indexPath, getAnalyzer(), true );
+ }
}
- catch ( IOException e )
+ catch ( IOException ie )
{
- throw new RepositoryIndexException( e );
+ throw new RepositoryIndexException( ie );
}
+ indexOpen = true;
}
/**
@@ -146,47 +160,29 @@
* @param indexFields
* @throws RepositoryIndexException if the given indexPath is not valid for this type of RepositoryIndex
*/
- private void validateIndex( String[] indexFields )
+ protected void validateIndex( String[] indexFields )
throws RepositoryIndexException, IOException
{
- File indexDir = new File( indexPath );
- if ( IndexReader.indexExists( indexDir ) )
+ IndexReader indexReader = IndexReader.open( indexPath );
+ try
{
- IndexReader indexReader = IndexReader.open( indexPath );
- try
+ if ( indexReader.numDocs() > 0 )
{
- if ( indexReader.numDocs() > 0 )
+ Collection fields = indexReader.getFieldNames();
+ for ( int idx = 0; idx < indexFields.length; idx++ )
{
- Collection fields = indexReader.getFieldNames();
- for ( int idx = 0; idx < indexFields.length; idx++ )
+ if ( !fields.contains( indexFields[idx] ) )
{
- if ( !fields.contains( indexFields[idx] ) )
- {
- throw new RepositoryIndexException(
- "The Field " + indexFields[idx] + " does not exist in index " + indexPath + "." );
- }
+ throw new RepositoryIndexException(
+ "The Field " + indexFields[idx] + " does not exist in index " + indexPath + "." );
}
}
}
- finally
- {
- indexReader.close();
- }
- }
- else if ( !indexDir.exists() )
- {
- indexWriter = new IndexWriter( indexPath, getAnalyzer(), true );
- }
- else if ( indexDir.isDirectory() )
- {
- throw new RepositoryIndexException( indexPath + " is not a valid index directory." );
}
- else
+ finally
{
- throw new RepositoryIndexException( indexPath + " is not a directory." );
+ indexReader.close();
}
-
- indexOpen = true;
}
/**
@@ -198,9 +194,14 @@
}
/**
- * @see org.apache.maven.repository.indexing.RepositoryIndex#deleteDocument(String, String)
+ * Delete the document(s) that contains the specified value on the specified field.
+ *
+ * @param field
+ * @param value
+ * @throws RepositoryIndexException
+ * @throws IOException
*/
- public void deleteDocument( String field, String value )
+ protected void deleteDocument( String field, String value )
throws RepositoryIndexException, IOException
{
IndexReader indexReader = null;
@@ -218,4 +219,44 @@
indexReader.close();
}
}
+
+ /**
+ * Check if the index already exists.
+ *
+ * @throws IOException
+ * @throws RepositoryIndexException
+ */
+ protected void checkIfIndexExists()
+ throws IOException, RepositoryIndexException
+ {
+ File indexDir = new File( indexPath );
+
+ if ( IndexReader.indexExists( indexDir ) )
+ {
+ indexExists = true;
+ }
+ else if ( !indexDir.exists() )
+ {
+ indexExists = false;
+ }
+ else if ( indexDir.isDirectory() )
+ {
+ throw new RepositoryIndexException( indexPath + " is not a valid index directory." );
+ }
+ else
+ {
+ throw new RepositoryIndexException( indexPath + " is not a directory." );
+ }
+ }
+
+ /**
+ * Checks if the object has already been indexed.
+ *
+ * @param object the object to be indexed.
+ * @throws RepositoryIndexException
+ * @throws IOException
+ */
+ abstract void isIndexed( Object object )
+ throws RepositoryIndexException, IOException;
+
}
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=372138&r1=372137&r2=372138&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 Tue Jan 24 23:04:13 2006
@@ -27,7 +27,9 @@
import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
+import java.util.Arrays;
import java.util.Enumeration;
+import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
@@ -70,6 +72,8 @@
protected static final String ARTIFACT_TYPE = "ARTIFACT";
+ private static final List KEYWORD_FIELDS = Arrays.asList( new String[]{FLD_ID} );
+
/**
* Class constructor
*
@@ -81,7 +85,7 @@
public ArtifactRepositoryIndex( String indexPath, ArtifactRepository repository, Digester digester )
throws RepositoryIndexException
{
- super( indexPath, repository, FIELDS );
+ super( indexPath, repository );
this.digester = digester;
}
@@ -99,6 +103,28 @@
}
/**
+ * @see AbstractRepositoryIndex#isIndexed(Object)
+ */
+ public void isIndexed( Object object )
+ throws RepositoryIndexException, IOException
+ {
+ if ( object instanceof Artifact )
+ {
+ Artifact artifact = (Artifact) object;
+ checkIfIndexExists();
+ if ( indexExists )
+ {
+ validateIndex( FIELDS );
+ deleteDocument( FLD_ID, ARTIFACT_TYPE + artifact.getId() );
+ }
+ }
+ else
+ {
+ throw new RepositoryIndexException( "Object is not of type artifact." );
+ }
+ }
+
+ /**
* Method to index a given artifact
*
* @param artifact the Artifact object to be indexed
@@ -107,11 +133,6 @@
public void indexArtifact( Artifact artifact )
throws RepositoryIndexException
{
- if ( !isOpen() )
- {
- throw new RepositoryIndexException( "Unable to add artifact index on a closed index" );
- }
-
StringBuffer classes = new StringBuffer();
StringBuffer packages = new StringBuffer();
StringBuffer files = new StringBuffer();
@@ -178,6 +199,11 @@
try
{
+ isIndexed( artifact );
+ if ( !isOpen() )
+ {
+ open();
+ }
getIndexWriter().addDocument( doc );
}
catch ( IOException e )
@@ -191,7 +217,7 @@
*/
public boolean isKeywordField( String field )
{
- return false;
+ return KEYWORD_FIELDS.contains( field );
}
/**
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=372138&r1=372137&r2=372138&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 Tue Jan 24 23:04:13 2006
@@ -63,7 +63,7 @@
public MetadataRepositoryIndex( String indexPath, ArtifactRepository repository )
throws RepositoryIndexException
{
- super( indexPath, repository, FIELDS );
+ super( indexPath, repository );
}
/**
@@ -115,11 +115,6 @@
private void indexMetadata( RepositoryMetadata repoMetadata )
throws RepositoryIndexException
{
- if ( !isOpen() )
- {
- throw new RepositoryIndexException( "Unable to add artifact index on a closed index" );
- }
-
//get lastUpdated from Versioning (specified in Metadata object)
//get pluginPrefixes from Plugin (spcified in Metadata object) -----> concatenate/append???
//get the metadatapath: check where metadata is located, then concatenate the groupId,
@@ -177,6 +172,11 @@
try
{
+ isIndexed( repoMetadata );
+ if ( !isOpen() )
+ {
+ open();
+ }
getIndexWriter().addDocument( doc );
}
catch ( IOException e )
@@ -188,5 +188,27 @@
public boolean isKeywordField( String field )
{
return false;
+ }
+
+ /**
+ * @see org.apache.maven.repository.indexing.AbstractRepositoryIndex#isIndexed(Object)
+ */
+ public void isIndexed( Object object )
+ throws RepositoryIndexException, IOException
+ {
+ if ( object instanceof RepositoryMetadata )
+ {
+ RepositoryMetadata repoMetadata = (RepositoryMetadata) object;
+ checkIfIndexExists();
+ if ( indexExists )
+ {
+ //validateIndex( FIELDS );
+ deleteDocument( FLD_ID, (String) repoMetadata.getKey() );
+ }
+ }
+ else
+ {
+ throw new RepositoryIndexException( "Object is not of type metadata." );
+ }
}
}
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=372138&r1=372137&r2=372138&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 Tue Jan 24 23:04:13 2006
@@ -98,7 +98,7 @@
ArtifactFactory artifactFactory )
throws RepositoryIndexException
{
- super( indexPath, repository, FIELDS );
+ super( indexPath, repository );
this.digester = digester;
this.artifactFactory = artifactFactory;
}
@@ -117,6 +117,29 @@
}
/**
+ * @see org.apache.maven.repository.indexing.AbstractRepositoryIndex#isIndexed(Object)
+ */
+ public void isIndexed( Object object )
+ throws RepositoryIndexException, IOException
+ {
+ if ( object instanceof Model )
+ {
+ Model pom = (Model) object;
+ checkIfIndexExists();
+ if ( indexExists )
+ {
+ validateIndex( FIELDS );
+ deleteDocument( FLD_ID, POM_TYPE + pom.getId() );
+ }
+ }
+ else
+ {
+ throw new RepositoryIndexException( "Object is not of type model." );
+ }
+
+ }
+
+ /**
* Method to create the index fields for a Model object into the index
*
* @param pom the Model object to be indexed
@@ -125,11 +148,6 @@
public void indexPom( Model pom )
throws RepositoryIndexException
{
- if ( !isOpen() )
- {
- throw new RepositoryIndexException( "Unable to add pom index on a closed index" );
- }
-
Document doc = new Document();
doc.add( Field.Keyword( FLD_ID, POM_TYPE + pom.getId() ) );
doc.add( Field.Text( FLD_GROUPID, pom.getGroupId() ) );
@@ -177,6 +195,11 @@
try
{
+ isIndexed( pom );
+ if ( !isOpen() )
+ {
+ open();
+ }
getIndexWriter().addDocument( doc );
}
catch ( IOException e )
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=372138&r1=372137&r2=372138&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 Tue Jan 24 23:04:13 2006
@@ -69,11 +69,14 @@
throws Exception
{
RepositoryIndexingFactory factory = (RepositoryIndexingFactory) lookup( RepositoryIndexingFactory.ROLE );
+ Artifact artifact = getArtifact( "test", "test-artifactId", "1.0" );
+ artifact.setFile( new File( repository.getBasedir(), repository.pathOf( artifact ) ) );
try
{
String notIndexDir = new File( "pom.xml" ).getAbsolutePath();
- factory.createArtifactRepositoryIndex( notIndexDir, repository );
+ ArtifactRepositoryIndex indexer = factory.createArtifactRepositoryIndex( notIndexDir, repository );
+ indexer.indexArtifact( artifact );
fail( "Must throw exception on non-directory index directory" );
}
catch ( RepositoryIndexException e )
@@ -84,7 +87,8 @@
try
{
String notIndexDir = new File( "" ).getAbsolutePath();
- factory.createArtifactRepositoryIndex( notIndexDir, repository );
+ ArtifactRepositoryIndex indexer = factory.createArtifactRepositoryIndex( notIndexDir, repository );
+ indexer.indexArtifact( artifact );
fail( "Must throw an exception on a non-index directory" );
}
catch ( RepositoryIndexException e )
@@ -92,43 +96,26 @@
// expected
}
- Artifact artifact = getArtifact( "test", "test-artifactId", "1.0" );
- artifact.setFile( new File( repository.getBasedir(), repository.pathOf( artifact ) ) );
-
ArtifactRepositoryIndex indexer = factory.createArtifactRepositoryIndex( indexPath, repository );
- indexer.close();
-
- try
- {
- indexer.indexArtifact( artifact );
- fail( "Must throw exception on add index with closed index." );
- }
- catch ( RepositoryIndexException e )
- {
- // expected
- }
-
try
{
- indexer.optimize();
- fail( "Must throw exception on optimize index with closed index." );
+ indexer.isIndexed( new Object() );
+ fail( "Must throw exception on object not of type artifact." );
}
catch ( RepositoryIndexException e )
{
// expected
}
-
- indexer = factory.createArtifactRepositoryIndex( indexPath, repository );
-
- indexer.close();
}
/**
* Create an index that will be used for testing.
+ * Indexing process: check if the object was already indexed [ checkIfIndexed(Object) ], open the index [ open() ],
+ * index the object [ index(Object) ], optimize the index [ optimize() ] and close the index [ close() ].
*
* @throws Exception
*/
- public void createTestIndex()
+ private void createTestIndex()
throws Exception
{
RepositoryIndexingFactory factory = (RepositoryIndexingFactory) lookup( RepositoryIndexingFactory.ROLE );
@@ -137,17 +124,27 @@
Artifact artifact = getArtifact( "org.apache.maven", "maven-artifact", "2.0.1" );
artifact.setFile( new File( repository.getBasedir(), repository.pathOf( artifact ) ) );
indexer.indexArtifact( artifact );
+ indexer.optimize();
+ indexer.close();
artifact = getArtifact( "org.apache.maven", "maven-model", "2.0" );
artifact.setFile( new File( repository.getBasedir(), repository.pathOf( artifact ) ) );
indexer.indexArtifact( artifact );
+ indexer.optimize();
+ indexer.close();
artifact = getArtifact( "test", "test-artifactId", "1.0" );
artifact.setFile( new File( repository.getBasedir(), repository.pathOf( artifact ) ) );
indexer.indexArtifact( artifact );
+ indexer.optimize();
+ indexer.close();
+ artifact = getArtifact( "test", "test-artifactId", "1.0" );
+ artifact.setFile( new File( repository.getBasedir(), repository.pathOf( artifact ) ) );
+ indexer.indexArtifact( artifact );
indexer.optimize();
indexer.close();
+
}
/**
@@ -275,7 +272,6 @@
public void testSearchCompound()
throws Exception
{
-
createTestIndex();
RepositoryIndexingFactory factory = (RepositoryIndexingFactory) lookup( RepositoryIndexingFactory.ROLE );
@@ -390,6 +386,11 @@
indexer.close();
}
+ /**
+ * Test delete of document from the artifact index.
+ *
+ * @throws Exception
+ */
public void testDeleteArtifactDocument()
throws Exception
{
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=372138&r1=372137&r2=372138&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 Tue Jan 24 23:04:13 2006
@@ -95,6 +95,8 @@
/**
* Create the test index.
+ * Indexing process: check if the object was already indexed [ checkIfIndexed(Object) ], open the index [ open() ],
+ * index the object [ index(Object) ], optimize the index [ optimize() ] and close the index [ close() ].
*
* @throws Exception
*/
@@ -107,15 +109,23 @@
RepositoryMetadata repoMetadata =
getMetadata( "org.apache.maven", null, null, "maven-metadata.xml", GROUP_TYPE );
indexer.index( repoMetadata );
+ indexer.optimize();
+ indexer.close();
repoMetadata =
getMetadata( "org.apache.maven", "maven-artifact", "2.0.1", "maven-metadata.xml", ARTIFACT_TYPE );
indexer.index( repoMetadata );
+ indexer.optimize();
+ indexer.close();
repoMetadata =
getMetadata( "org.apache.maven", "maven-artifact", "2.0.1", "maven-metadata.xml", SNAPSHOT_TYPE );
indexer.index( repoMetadata );
+ indexer.optimize();
+ indexer.close();
+ repoMetadata = getMetadata( "org.apache.maven", null, null, "maven-metadata.xml", GROUP_TYPE );
+ indexer.index( repoMetadata );
indexer.optimize();
indexer.close();
}
@@ -201,7 +211,7 @@
public void testExceptions()
throws Exception
{
- //test when the object passed in the index(..) method is not a RepositoryMetadat instance
+ //test when the object passed in the index(..) method is not a RepositoryMetadata instance
RepositoryIndexingFactory factory = (RepositoryIndexingFactory) lookup( RepositoryIndexingFactory.ROLE );
indexer = factory.createMetadataRepositoryIndex( indexPath, repository );
try
@@ -209,37 +219,22 @@
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." );
+ indexer.optimize();
+ indexer.close();
}
catch ( Exception e )
{
+ //expected
}
- indexer.optimize();
- indexer.close();
-
- //test when the plugin prefix is blank
- 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 )
- {
- }
- indexer.optimize();
- indexer.close();
- //test when the index is closed
try
{
- 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." );
+ indexer.isIndexed( new Object() );
+ fail( "Must throw exception when the passed object is not of type metadata." );
}
catch ( Exception e )
{
+ //expected
}
}
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=372138&r1=372137&r2=372138&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 Tue Jan 24 23:04:13 2006
@@ -74,11 +74,13 @@
throws Exception
{
RepositoryIndexingFactory factory = (RepositoryIndexingFactory) lookup( RepositoryIndexingFactory.ROLE );
+ Model pom = getPom( "test", "test-artifactId", "1.0" );
try
{
String notIndexDir = new File( "pom.xml" ).getAbsolutePath();
- factory.createPomRepositoryIndex( notIndexDir, repository );
+ PomRepositoryIndex indexer = factory.createPomRepositoryIndex( notIndexDir, repository );
+ indexer.indexPom( pom );
fail( "Must throw exception on non-directory index directory" );
}
catch ( RepositoryIndexException e )
@@ -89,7 +91,8 @@
try
{
String notIndexDir = new File( "" ).getAbsolutePath();
- factory.createPomRepositoryIndex( notIndexDir, repository );
+ PomRepositoryIndex indexer = factory.createPomRepositoryIndex( notIndexDir, repository );
+ indexer.indexPom( pom );
fail( "Must throw an exception on a non-index directory" );
}
catch ( RepositoryIndexException e )
@@ -97,34 +100,16 @@
// expected
}
- Model pom = getPom( "test", "test-artifactId", "1.0" );
-
PomRepositoryIndex indexer = factory.createPomRepositoryIndex( indexPath, repository );
- indexer.close();
-
- try
- {
- indexer.indexPom( pom );
- fail( "Must throw exception on add index with closed index." );
- }
- catch ( RepositoryIndexException e )
- {
- // expected
- }
-
try
{
- indexer.optimize();
- fail( "Must throw exception on optimize index with closed index." );
+ indexer.isIndexed( new Object() );
+ fail( "Must throw exception when the passed object is not of type model." );
}
- catch ( RepositoryIndexException e )
+ catch ( Exception e )
{
- // expected
+ //expected
}
-
- indexer = factory.createPomRepositoryIndex( indexPath, repository );
-
- indexer.close();
}
/**
@@ -428,6 +413,8 @@
/**
* Create an index that will be used for testing.
+ * Indexing process: check if the object was already indexed [ checkIfIndexed(Object) ], open the index [ open() ],
+ * index the object [ index(Object) ], optimize the index [ optimize() ] and close the index [ close() ].
*
* @throws Exception
*/
@@ -439,13 +426,21 @@
Model pom = getPom( "org.apache.maven", "maven-artifact", "2.0.1" );
indexer.indexPom( pom );
+ indexer.optimize();
+ indexer.close();
pom = getPom( "org.apache.maven", "maven-model", "2.0" );
indexer.indexPom( pom );
+ indexer.optimize();
+ indexer.close();
pom = getPom( "test", "test-artifactId", "1.0" );
indexer.indexPom( pom );
+ indexer.optimize();
+ indexer.close();
+ pom = getPom( "test", "test-artifactId", "1.0" );
+ indexer.indexPom( pom );
indexer.optimize();
indexer.close();
}