blob: 1b14e6fde9b619ecd4d5946532dd5aac600de7cb [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.ArrayList;
import java.util.List;
import java.util.Random;
import org.apache.maven.index.context.DefaultIndexingContext;
import org.apache.maven.index.context.IndexCreator;
import org.apache.maven.index.creator.JarFileContentsIndexCreator;
import org.apache.maven.index.creator.MavenArchetypeArtifactInfoIndexCreator;
import org.apache.maven.index.creator.MavenPluginArtifactInfoIndexCreator;
import org.apache.maven.index.creator.MinimalArtifactInfoIndexCreator;
import org.codehaus.plexus.ContainerConfiguration;
import org.codehaus.plexus.PlexusConstants;
import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.util.FileUtils;
public class AbstractIndexCreatorHelper
extends PlexusTestCase
{
public List<IndexCreator> DEFAULT_CREATORS;
public List<IndexCreator> FULL_CREATORS;
public List<IndexCreator> MIN_CREATORS;
Random rand = new Random();
@Override
protected void customizeContainerConfiguration( final ContainerConfiguration containerConfiguration )
{
super.customizeContainerConfiguration( containerConfiguration );
containerConfiguration.setClassPathScanning( PlexusConstants.SCANNING_INDEX );
}
@Override
protected void setUp()
throws Exception
{
super.setUp();
DEFAULT_CREATORS = new ArrayList<IndexCreator>();
FULL_CREATORS = new ArrayList<IndexCreator>();
MIN_CREATORS = new ArrayList<IndexCreator>();
IndexCreator min = lookup( IndexCreator.class, MinimalArtifactInfoIndexCreator.ID );
IndexCreator mavenPlugin = lookup( IndexCreator.class, MavenPluginArtifactInfoIndexCreator.ID );
IndexCreator mavenArchetype = lookup( IndexCreator.class, MavenArchetypeArtifactInfoIndexCreator.ID );
IndexCreator jar = lookup( IndexCreator.class, JarFileContentsIndexCreator.ID );
MIN_CREATORS.add( min );
DEFAULT_CREATORS.add( min );
DEFAULT_CREATORS.add( mavenPlugin );
DEFAULT_CREATORS.add( mavenArchetype );
FULL_CREATORS.add( min );
FULL_CREATORS.add( mavenPlugin );
FULL_CREATORS.add( mavenArchetype );
FULL_CREATORS.add( jar );
}
protected void deleteDirectory( File dir )
throws IOException
{
FileUtils.deleteDirectory( dir );
}
protected File getDirectory( String name )
{
// pick random output location
File outputFolder = new File( getBasedir(), "target/tests/" + name + "-" + rand.nextLong() + "/" );
outputFolder.delete();
assertFalse( outputFolder.exists() );
return outputFolder;
}
public void testDirectory()
throws IOException
{
File dir = this.getDirectory( "foo" );
assert ( dir.getAbsolutePath().contains( "foo" ) );
this.deleteDirectory( dir );
assertFalse( dir.exists() );
File dir2 = this.getDirectory( "foo" );
assertFalse( "Directories aren't unique", dir.getCanonicalPath().equals( dir2.getCanonicalPath() ) );
}
}