* limitations under the License.
*/
-import java.io.File;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+
import java.util.Iterator;
import java.util.List;
/**
* Discover artifacts in the repository.
*
- * @param repositoryBase the base directory of the repository on the local filesystem
+ * @param repository the location of the repository
* @param blacklistedPatterns pattern that lists any files to prevent from being included when scanning
* @param includeSnapshots whether to discover snapshots
* @return the list of artifacts discovered
* @todo should includeSnapshots be configuration on the component?
* @todo instead of a returned list, should a listener be passed in?
*/
- List discoverArtifacts( File repositoryBase, String blacklistedPatterns, boolean includeSnapshots );
+ List discoverArtifacts( ArtifactRepository repository, String blacklistedPatterns, boolean includeSnapshots );
/**
* Get the list of paths kicked out during the discovery process.
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
import org.codehaus.plexus.util.StringUtils;
import java.io.File;
*/
private ArtifactFactory artifactFactory;
- public List discoverArtifacts( File repositoryBase, String blacklistedPatterns, boolean includeSnapshots )
+ public List discoverArtifacts( ArtifactRepository repository, String blacklistedPatterns, boolean includeSnapshots )
{
+ if ( !"file".equals( repository.getProtocol() ) )
+ {
+ throw new UnsupportedOperationException( "Only filesystem repositories are supported" );
+ }
+
+ File repositoryBase = new File( repository.getBasedir() );
+
List artifacts = new ArrayList();
String[] artifactPaths = scanForArtifactPaths( repositoryBase, blacklistedPatterns );
{
String path = artifactPaths[i];
- Artifact artifact = buildArtifact( repositoryBase, path );
+ Artifact artifact = buildArtifact( repositoryBase, path, repository );
if ( artifact != null )
{
return artifacts;
}
- private Artifact buildArtifact( File repositoryBase, String path )
+ private Artifact buildArtifact( File repositoryBase, String path, ArtifactRepository repository )
{
List pathParts = new ArrayList();
StringTokenizer st = new StringTokenizer( path, "/\\" );
if ( finalResult != null )
{
+ finalResult.setRepository( repository );
finalResult.setFile( new File( repositoryBase, path ) );
}
*/
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.factory.ArtifactFactory;
import java.io.File;
*/
private ArtifactFactory artifactFactory;
- public List discoverArtifacts( File repositoryBase, String blacklistedPatterns, boolean includeSnapshots )
+ public List discoverArtifacts( ArtifactRepository repository, String blacklistedPatterns, boolean includeSnapshots )
{
List artifacts = new ArrayList();
+ File repositoryBase = new File( repository.getBasedir() );
String[] artifactPaths = scanForArtifactPaths( repositoryBase, blacklistedPatterns );
for ( int i = 0; i < artifactPaths.length; i++ )
{
String path = artifactPaths[i];
- Artifact artifact = buildArtifact( repositoryBase, path );
+ Artifact artifact = buildArtifact( repositoryBase, path, repository );
if ( artifact != null )
{
if ( includeSnapshots || !artifact.isSnapshot() )
/**
* @noinspection CollectionDeclaredAsConcreteClass
*/
- private Artifact buildArtifact( File repositoryBase, String path )
+ private Artifact buildArtifact( File repositoryBase, String path, ArtifactRepository repository )
{
StringTokenizer tokens = new StringTokenizer( path, "/\\" );
Artifact.SCOPE_RUNTIME, type );
}
+ result.setRepository( repository );
result.setFile( new File( repositoryBase, path ) );
}
}
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
import org.codehaus.plexus.PlexusTestCase;
import java.io.File;
+import java.net.MalformedURLException;
import java.util.Iterator;
import java.util.List;
private ArtifactFactory factory;
- private File repositoryLocation;
+ private ArtifactRepository repository;
protected void setUp()
throws Exception
factory = (ArtifactFactory) lookup( ArtifactFactory.ROLE );
- repositoryLocation = getTestFile( "src/test/repository" );
+ File basedir = getTestFile( "src/test/repository" );
+
+ ArtifactRepositoryFactory factory = (ArtifactRepositoryFactory) lookup( ArtifactRepositoryFactory.ROLE );
+
+ ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "default" );
+ repository = factory.createArtifactRepository( "discoveryRepo", "file://" + basedir, layout, null, null );
}
public void testDefaultExcludes()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getExcludedPathsIterator(); i.hasNext() && !found; )
public void testStandardExcludes()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getExcludedPathsIterator(); i.hasNext() && !found; )
public void testBlacklistedExclude()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, "javax/**", false );
+ List artifacts = discoverer.discoverArtifacts( repository, "javax/**", false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getExcludedPathsIterator(); i.hasNext() && !found; )
public void testKickoutWithShortPath()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
public void testKickoutWithWrongArtifactId()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
public void testKickoutWithNoType()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
public void testKickoutWithWrongVersion()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
public void testKickoutWithLongerVersion()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
public void testKickoutWithWrongSnapshotVersion()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
public void testKickoutWithSnapshotBaseVersion()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
public void testInclusion()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, true );
+ List artifacts = discoverer.discoverArtifacts( repository, null, true );
assertNotNull( "Check artifacts not null", artifacts );
assertTrue( "Check normal included",
public void testArtifactWithClassifier()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, true );
+ List artifacts = discoverer.discoverArtifacts( repository, null, true );
assertNotNull( "Check artifacts not null", artifacts );
assertTrue( "Check normal included",
public void testJavaSourcesInclusion()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, true );
+ List artifacts = discoverer.discoverArtifacts( repository, null, true );
assertNotNull( "Check artifacts not null", artifacts );
assertTrue( "Check normal included", artifacts.contains(
public void testDistributionInclusion()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, true );
+ List artifacts = discoverer.discoverArtifacts( repository, null, true );
assertNotNull( "Check artifacts not null", artifacts );
assertTrue( "Check zip included",
public void testSnapshotInclusion()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, true );
+ List artifacts = discoverer.discoverArtifacts( repository, null, true );
assertNotNull( "Check artifacts not null", artifacts );
assertTrue( "Check normal included", artifacts.contains( createArtifact( "javax.sql", "jdbc", "2.0" ) ) );
public void testSnapshotInclusionWithClassifier()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, true );
+ List artifacts = discoverer.discoverArtifacts( repository, null, true );
assertNotNull( "Check artifacts not null", artifacts );
assertTrue( "Check snapshot included", artifacts.contains(
public void testSnapshotExclusion()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
assertTrue( "Check normal included", artifacts.contains( createArtifact( "javax.sql", "jdbc", "2.0" ) ) );
artifacts.contains( createArtifact( "org.apache.maven", "test", "1.0-SNAPSHOT" ) ) );
}
+ public void testFileSet()
+ {
+ List artifacts = discoverer.discoverArtifacts( repository, null, true );
+ assertNotNull( "Check artifacts not null", artifacts );
+
+ for ( Iterator i = artifacts.iterator(); i.hasNext(); )
+ {
+ Artifact artifact = (Artifact) i.next();
+ assertNotNull( "Check file is set", artifact.getFile() );
+ }
+ }
+
+ public void testRepositorySet()
+ throws MalformedURLException
+ {
+ List artifacts = discoverer.discoverArtifacts( repository, null, true );
+ assertNotNull( "Check artifacts not null", artifacts );
+
+ String url = repository.getUrl();
+ for ( Iterator i = artifacts.iterator(); i.hasNext(); )
+ {
+ Artifact artifact = (Artifact) i.next();
+ assertNotNull( "Check repository set", artifact.getRepository() );
+ assertEquals( "Check repository url is correct", url, artifact.getRepository().getUrl() );
+ }
+ }
+
private Artifact createArtifact( String groupId, String artifactId, String version )
{
return factory.createArtifact( groupId, artifactId, version, null, "jar" );
*/
import org.apache.maven.artifact.Artifact;
+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.factory.ArtifactFactory;
import org.codehaus.plexus.PlexusTestCase;
-import java.io.File;
import java.util.Iterator;
import java.util.List;
+import java.net.MalformedURLException;
+import java.io.File;
/**
* Test the legacy artifact discoverer.
private ArtifactFactory factory;
- private File repositoryLocation;
+ private ArtifactRepository repository;
protected void setUp()
throws Exception
factory = (ArtifactFactory) lookup( ArtifactFactory.ROLE );
- repositoryLocation = getTestFile( "src/test/legacy-repository" );
+ File basedir = getTestFile( "src/test/legacy-repository" );
+
+ ArtifactRepositoryFactory factory = (ArtifactRepositoryFactory) lookup( ArtifactRepositoryFactory.ROLE );
+
+ ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "legacy" );
+ repository = factory.createArtifactRepository( "discoveryRepo", "file://" + basedir, layout, null, null );
}
public void testDefaultExcludes()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getExcludedPathsIterator(); i.hasNext() && !found; )
public void testStandardExcludes()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getExcludedPathsIterator(); i.hasNext() && !found; )
public void testBlacklistedExclude()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, "javax.sql/**", false );
+ List artifacts = discoverer.discoverArtifacts( repository, "javax.sql/**", false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getExcludedPathsIterator(); i.hasNext() && !found; )
public void testKickoutWithShortPath()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
public void testKickoutWithLongPath()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
public void testKickoutWithInvalidType()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
public void testKickoutWithNoExtension()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
public void testKickoutWithWrongExtension()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
public void testKickoutWithNoVersion()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
boolean found = false;
for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
public void testInclusion()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, true );
+ List artifacts = discoverer.discoverArtifacts( repository, null, true );
assertNotNull( "Check artifacts not null", artifacts );
assertTrue( "Check normal included",
public void testTextualVersion()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, true );
+ List artifacts = discoverer.discoverArtifacts( repository, null, true );
assertNotNull( "Check artifacts not null", artifacts );
assertTrue( "Check normal included",
public void testArtifactWithClassifier()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, true );
+ List artifacts = discoverer.discoverArtifacts( repository, null, true );
assertNotNull( "Check artifacts not null", artifacts );
assertTrue( "Check normal included",
public void testJavaSourcesInclusion()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, true );
+ List artifacts = discoverer.discoverArtifacts( repository, null, true );
assertNotNull( "Check artifacts not null", artifacts );
assertTrue( "Check normal included", artifacts.contains(
public void testDistributionInclusion()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, true );
+ List artifacts = discoverer.discoverArtifacts( repository, null, true );
assertNotNull( "Check artifacts not null", artifacts );
assertTrue( "Check zip included",
public void testSnapshotInclusion()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, true );
+ List artifacts = discoverer.discoverArtifacts( repository, null, true );
assertNotNull( "Check artifacts not null", artifacts );
assertTrue( "Check normal included", artifacts.contains( createArtifact( "javax.sql", "jdbc", "2.0" ) ) );
public void testSnapshotExclusion()
{
- List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false );
+ List artifacts = discoverer.discoverArtifacts( repository, null, false );
assertNotNull( "Check artifacts not null", artifacts );
assertTrue( "Check normal included", artifacts.contains( createArtifact( "javax.sql", "jdbc", "2.0" ) ) );
artifacts.contains( createArtifact( "org.apache.maven", "testing", "1.0-20050611.112233-1" ) ) );
}
+ public void testFileSet()
+ {
+ List artifacts = discoverer.discoverArtifacts( repository, null, true );
+ assertNotNull( "Check artifacts not null", artifacts );
+
+ for ( Iterator i = artifacts.iterator(); i.hasNext(); )
+ {
+ Artifact artifact = (Artifact) i.next();
+ assertNotNull( "Check file is set", artifact.getFile() );
+ }
+ }
+
+ public void testRepositorySet()
+ throws MalformedURLException
+ {
+ List artifacts = discoverer.discoverArtifacts( repository, null, true );
+ assertNotNull( "Check artifacts not null", artifacts );
+
+ String url = repository.getUrl();
+ for ( Iterator i = artifacts.iterator(); i.hasNext(); )
+ {
+ Artifact artifact = (Artifact) i.next();
+ assertNotNull( "Check repository set", artifact.getRepository() );
+ assertEquals( "Check repository url is correct", url, artifact.getRepository().getUrl() );
+ }
+ }
+
private Artifact createArtifact( String groupId, String artifactId, String version )
{
return factory.createArtifact( groupId, artifactId, version, null, "jar" );