PR: MRM-9 git-svn-id: https://svn.apache.org/repos/asf/maven/repository-manager/trunk@349647 13f79535-47bb-0310-9956-ffa450edef68tags/archiva-0.9-alpha-1
@@ -80,6 +80,7 @@ public abstract class AbstractArtifactDiscoverer | |||
* Add a path to the list of files that were kicked out due to being invalid. | |||
* | |||
* @param path the path to add | |||
* @todo add a reason | |||
*/ | |||
protected void addKickedOutPath( String path ) | |||
{ |
@@ -81,21 +81,26 @@ public class DefaultArtifactDiscoverer | |||
return null; | |||
} | |||
//discard the actual artifact filename. | |||
pathParts.remove( 0 ); | |||
// the actual artifact filename. | |||
String filename = (String) pathParts.remove( 0 ); | |||
// the next one is the version. | |||
String version = (String) pathParts.get( 0 ); | |||
pathParts.remove( 0 ); | |||
String version = (String) pathParts.remove( 0 ); | |||
// the next one is the artifactId. | |||
String artifactId = (String) pathParts.get( 0 ); | |||
pathParts.remove( 0 ); | |||
String artifactId = (String) pathParts.remove( 0 ); | |||
// the remaining are the groupId. | |||
Collections.reverse( pathParts ); | |||
String groupId = StringUtils.join( pathParts.iterator(), "." ); | |||
if ( !filename.startsWith( artifactId + "-" ) ) | |||
{ | |||
addKickedOutPath( path ); | |||
return null; | |||
} | |||
result = artifactFactory.createArtifact( groupId, artifactId, version, Artifact.SCOPE_RUNTIME, "jar" ); | |||
result.setFile( new File( path ) ); |
@@ -303,7 +303,10 @@ public class LegacyArtifactDiscoverer | |||
} | |||
} | |||
result.setFile( new File( path ) ); | |||
if ( result != null ) | |||
{ | |||
result.setFile( new File( path ) ); | |||
} | |||
return result; | |||
} |
@@ -29,6 +29,7 @@ import java.util.List; | |||
* | |||
* @author <a href="mailto:brett@apache.org">Brett Porter</a> | |||
* @version $Id$ | |||
* @todo other tests for kickouts to do here, along the lines of wrong artifactId, parse classifiers, locate poms | |||
*/ | |||
public class DefaultArtifactDiscovererTest | |||
extends PlexusTestCase | |||
@@ -118,7 +119,7 @@ public class DefaultArtifactDiscovererTest | |||
found = path.replace( '\\', '/' ).equals( "invalid/invalid-1.0.jar" ); | |||
} | |||
assertTrue( "Check exclusion was found", found ); | |||
assertTrue( "Check kickout was found", found ); | |||
for ( Iterator i = artifacts.iterator(); i.hasNext(); ) | |||
{ | |||
@@ -127,6 +128,28 @@ public class DefaultArtifactDiscovererTest | |||
} | |||
} | |||
public void testKickoutWithWrongArtifactId() | |||
{ | |||
List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false ); | |||
assertNotNull( "Check artifacts not null", artifacts ); | |||
boolean found = false; | |||
for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; ) | |||
{ | |||
String path = (String) i.next(); | |||
found = path.replace( '\\', '/' ).equals( | |||
"org/apache/maven/test/1.0-SNAPSHOT/wrong-artifactId-1.0-20050611.112233-1.jar" ); | |||
} | |||
assertTrue( "Check kickout was found", found ); | |||
for ( Iterator i = artifacts.iterator(); i.hasNext(); ) | |||
{ | |||
Artifact a = (Artifact) i.next(); | |||
assertFalse( "Check not wrong jar", | |||
a.getFile().getName().equals( "wrong-artifactId-1.0-20050611.112233-1.jar" ) ); | |||
} | |||
} | |||
public void testSnapshotInclusion() | |||
{ | |||
List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, true ); |
@@ -107,7 +107,6 @@ public class LegacyArtifactDiscovererTest | |||
assertFalse( "Check jdbc not included", artifacts.contains( createArtifact( "javax.sql", "jdbc", "2.0" ) ) ); | |||
} | |||
/* | |||
public void testKickoutWithShortPath() | |||
{ | |||
List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false ); | |||
@@ -128,6 +127,26 @@ public class LegacyArtifactDiscovererTest | |||
} | |||
} | |||
public void testKickoutWithLongPath() | |||
{ | |||
List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, false ); | |||
assertNotNull( "Check artifacts not null", artifacts ); | |||
boolean found = false; | |||
for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; ) | |||
{ | |||
String path = (String) i.next(); | |||
found = path.replace( '\\', '/' ).equals( "invalid/jars/1.0/invalid-1.0.jar" ); | |||
} | |||
assertTrue( "Check exclusion was found", found ); | |||
for ( Iterator i = artifacts.iterator(); i.hasNext(); ) | |||
{ | |||
Artifact a = (Artifact) i.next(); | |||
assertFalse( "Check not invalid-1.0.jar", a.getFile().getName().equals( "invalid-1.0.jar" ) ); | |||
} | |||
} | |||
public void testSnapshotInclusion() | |||
{ | |||
List artifacts = discoverer.discoverArtifacts( repositoryLocation, null, true ); | |||
@@ -135,7 +154,7 @@ public class LegacyArtifactDiscovererTest | |||
assertTrue( "Check normal included", artifacts.contains( createArtifact( "javax.sql", "jdbc", "2.0" ) ) ); | |||
assertTrue( "Check snapshot included", | |||
artifacts.contains( createArtifact( "org.apache.maven", "test", "1.0-SNAPSHOT" ) ) ); | |||
artifacts.contains( createArtifact( "org.apache.maven", "testing", "1.0-20050611.112233-1" ) ) ); | |||
} | |||
public void testSnapshotExclusion() | |||
@@ -145,9 +164,8 @@ public class LegacyArtifactDiscovererTest | |||
assertTrue( "Check normal included", artifacts.contains( createArtifact( "javax.sql", "jdbc", "2.0" ) ) ); | |||
assertFalse( "Check snapshot included", | |||
artifacts.contains( createArtifact( "org.apache.maven", "test", "1.0-SNAPSHOT" ) ) ); | |||
artifacts.contains( createArtifact( "org.apache.maven", "testing", "1.0-20050611.112233-1" ) ) ); | |||
} | |||
*/ | |||
private Artifact createArtifact( String groupId, String artifactId, String version ) | |||
{ |