blob: 6a4500ad6318b9a9a1212ddd2d54fadadaf408d9 [file] [log] [blame]
package org.apache.maven.index;
/*
* 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.io.IOException;
import java.util.Set;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.WildcardQuery;
import org.apache.maven.index.artifact.Gav;
import org.apache.maven.index.artifact.M2GavCalculator;
import org.apache.maven.index.context.IndexingContext;
import org.apache.maven.index.context.UnsupportedExistingLuceneIndexException;
import org.codehaus.plexus.util.FileUtils;
public class Nexus3293TimestampSnapshotTest
extends AbstractIndexCreatorHelper
{
private IndexingContext context;
private NexusIndexer prepare()
throws Exception, IOException, UnsupportedExistingLuceneIndexException
{
NexusIndexer indexer = lookup( NexusIndexer.class );
File indexDir = new File( getBasedir(), "target/index/test-" + Long.toString( System.currentTimeMillis() ) );
FileUtils.deleteDirectory( indexDir );
File repo = new File( getBasedir(), "src/test/nexus-3293" );
repo.mkdirs();
context = indexer.addIndexingContext( "test", "test", repo, indexDir, null, null, DEFAULT_CREATORS );
// IndexReader indexReader = context.getIndexSearcher().getIndexReader();
// int numDocs = indexReader.numDocs();
// for ( int i = 0; i < numDocs; i++ )
// {
// Document doc = indexReader.document( i );
// System.err.println( i + " : " + doc.get( ArtifactInfo.UINFO));
//
// }
return indexer;
}
public void test_nexus_3293_releaseJar()
throws Exception
{
NexusIndexer indexer = prepare();
File artifact = new File( getBasedir(), "src/test/nexus-3293/aopalliance/aopalliance/1.0/aopalliance-1.0jar" );
File pom = new File( getBasedir(), "src/test/nexus-3293/aopalliance/aopalliance/1.0/aopalliance-1.0.pom" );
ArtifactInfo artifactInfo = new ArtifactInfo( "test", "aopalliance", "aopalliance", "1.0-SNAPSHOT", null, "jar" );
M2GavCalculator gavCalc = new M2GavCalculator();
Gav jarGav = gavCalc.pathToGav( "aopalliance/aopalliance/1.0/aopalliance-1.0.jar" );
Gav pomGav = gavCalc.pathToGav( "aopalliance/aopalliance/1.0/aopalliance-1.0.pom" );
ArtifactContext artifactContext = new ArtifactContext( pom, artifact, null, artifactInfo, jarGav );
indexer.addArtifactToIndex( artifactContext, context );
validateIndexContents( indexer );
artifactContext = new ArtifactContext( pom, artifact, null, artifactInfo, jarGav );
indexer.addArtifactToIndex( artifactContext, context );
validateIndexContents( indexer );
}
public void test_nexus_3293_indexTimestampedSnapshotJar()
throws Exception
{
NexusIndexer indexer = prepare();
File artifact =
new File( getBasedir(),
"src/test/nexus-3293/aopalliance/aopalliance/1.0-SNAPSHOT/aopalliance-1.0-20100517.210215-13.jar" );
File pom =
new File( getBasedir(),
"src/test/nexus-3293/aopalliance/aopalliance/1.0-SNAPSHOT/aopalliance-1.0-20100517.210215-13.pom" );
ArtifactContextProducer artifactContextProducer = lookup( ArtifactContextProducer.class );
ArtifactContext artifactContext = artifactContextProducer.getArtifactContext( context, artifact );
indexer.addArtifactToIndex( artifactContext, context );
validateIndexContents( indexer );
artifactContext = artifactContextProducer.getArtifactContext( context, pom );
indexer.addArtifactToIndex( artifactContext, context );
validateIndexContents( indexer );
}
private void validateIndexContents( NexusIndexer indexer )
throws Exception
{
WildcardQuery q = new WildcardQuery( new Term( ArtifactInfo.UINFO, "*aopalliance*" ) );
FlatSearchRequest request = new FlatSearchRequest( q );
request.getContexts().add( context );
FlatSearchResponse response = indexer.searchFlat( request );
Set<ArtifactInfo> r = response.getResults();
assertEquals( r.toString(), 1, r.size() );
ArtifactInfo ai = r.iterator().next();
assertEquals( "jar", ai.getPackaging() );
assertEquals( "jar", ai.getFileExtension() );
}
}