Author: brett
Date: Tue Nov 29 02:38:58 2005
New Revision: 349700
URL: http://svn.apache.org/viewcvs?rev=349700&view=rev
Log:
test classifiers and custom types
PR: MRM-9
Added:
maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/some-ejb/
maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/some-ejb/1.0/
maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/some-ejb/1.0/some-ejb-1.0-client.jar
maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/testing/
maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/testing/1.0/
maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/testing/1.0/testing-1.0-sources.jar
maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.jar
maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.tar.gz
maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.zip
Modified:
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/DefaultArtifactDiscoverer.java
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/LegacyArtifactDiscoverer.java
maven/repository-manager/trunk/maven-repository-discovery/src/test/java/org/apache/maven/repository/discovery/DefaultArtifactDiscovererTest.java
Modified:
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/DefaultArtifactDiscoverer.java
URL:
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/DefaultArtifactDiscoverer.java?rev=349700&r1=349699&r2=349700&view=diff
==============================================================================
---
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/DefaultArtifactDiscoverer.java
(original)
+++
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/DefaultArtifactDiscoverer.java
Tue Nov 29 02:38:58 2005
@@ -94,8 +94,6 @@
Collections.reverse( pathParts );
String groupId = StringUtils.join( pathParts.iterator(), "." );
- result = artifactFactory.createArtifact( groupId, artifactId, version,
Artifact.SCOPE_RUNTIME, "jar" );
-
String remainingFilename = filename;
if ( !remainingFilename.startsWith( artifactId + "-" ) )
{
@@ -105,11 +103,67 @@
}
remainingFilename = remainingFilename.substring( artifactId.length() +
1 );
+
+ String classifier = null;
+
+ // TODO: use artifact handler, share with legacy discoverer
+ String type;
+ if ( remainingFilename.endsWith( ".tar.gz" ) )
+ {
+ type = "distribution-tgz";
+ remainingFilename = remainingFilename.substring( 0,
remainingFilename.length() - 7 );
+ }
+ else if ( remainingFilename.endsWith( ".zip" ) )
+ {
+ type = "distribution-zip";
+ remainingFilename = remainingFilename.substring( 0,
remainingFilename.length() - 4 );
+ }
+ else if ( remainingFilename.endsWith( "-sources.jar" ) )
+ {
+ type = "java-source";
+ classifier = "sources";
+ remainingFilename = remainingFilename.substring( 0,
remainingFilename.length() - 12 );
+ }
+ else
+ {
+ int index = remainingFilename.lastIndexOf( "." );
+ if ( index < 0 )
+ {
+ addKickedOutPath( path );
+
+ return null;
+ }
+
+ type = remainingFilename.substring( index + 1 );
+ remainingFilename = remainingFilename.substring( 0, index );
+ }
+
+ if ( classifier == null )
+ {
+ result = artifactFactory.createArtifact( groupId, artifactId,
version, Artifact.SCOPE_RUNTIME, type );
+ }
+ else
+ {
+ result = artifactFactory.createArtifactWithClassifier( groupId,
artifactId, version, type, classifier );
+ }
+
if ( result.isSnapshot() )
{
- result = artifactFactory.createArtifact( groupId, artifactId,
-
remainingFilename.substring( 0, remainingFilename.length() - 4 ),
- Artifact.SCOPE_RUNTIME,
"jar" );
+ // version is XXX-SNAPSHOT, filename is XXX-yyyyMMdd.hhmmss-b
+ int classifierIndex = remainingFilename.indexOf( '-',
version.length() + 8 );
+ if ( classifierIndex >= 0 )
+ {
+ classifier = remainingFilename.substring( classifierIndex + 1
);
+ remainingFilename = remainingFilename.substring( 0,
classifierIndex );
+ result = artifactFactory.createArtifactWithClassifier(
groupId, artifactId, remainingFilename, type,
+
classifier );
+ }
+ else
+ {
+ result = artifactFactory.createArtifact( groupId, artifactId,
remainingFilename, Artifact.SCOPE_RUNTIME,
+ type );
+ }
+
// poor encapsulation requires we do this to populate base version
if ( !result.isSnapshot() )
{
@@ -129,6 +183,17 @@
addKickedOutPath( path );
return null;
+ }
+ else if ( !remainingFilename.equals( version ) )
+ {
+ if ( remainingFilename.charAt( version.length() ) != '-' )
+ {
+ addKickedOutPath( path );
+
+ return null;
+ }
+ classifier = remainingFilename.substring( version.length() + 1 );
+ result = artifactFactory.createArtifactWithClassifier( groupId,
artifactId, version, type, classifier );
}
result.setFile( new File( path ) );
Modified:
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/LegacyArtifactDiscoverer.java
URL:
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/LegacyArtifactDiscoverer.java?rev=349700&r1=349699&r2=349700&view=diff
==============================================================================
---
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/LegacyArtifactDiscoverer.java
(original)
+++
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/LegacyArtifactDiscoverer.java
Tue Nov 29 02:38:58 2005
@@ -99,6 +99,7 @@
String lastAvceToken = (String) avceTokenList.removeLast();
+ // TODO: share with other discoverer, use artifact handlers instead
if ( lastAvceToken.endsWith( ".tar.gz" ) )
{
type = "distribution-tgz";
Modified:
maven/repository-manager/trunk/maven-repository-discovery/src/test/java/org/apache/maven/repository/discovery/DefaultArtifactDiscovererTest.java
URL:
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-discovery/src/test/java/org/apache/maven/repository/discovery/DefaultArtifactDiscovererTest.java?rev=349700&r1=349699&r2=349700&view=diff
==============================================================================
---
maven/repository-manager/trunk/maven-repository-discovery/src/test/java/org/apache/maven/repository/discovery/DefaultArtifactDiscovererTest.java
(original)
+++
maven/repository-manager/trunk/maven-repository-discovery/src/test/java/org/apache/maven/repository/discovery/DefaultArtifactDiscovererTest.java
Tue Nov 29 02:38:58 2005
@@ -29,7 +29,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
* @version $Id$
- * @todo other tests for kickouts to do here, along the lines of wrong
artifactId, parse classifiers, locate poms
+ * @todo test location of poms, checksums
*/
public class DefaultArtifactDiscovererTest
extends PlexusTestCase
@@ -212,6 +212,45 @@
}
}
+ public void testInclusion()
+ {
+ List artifacts = discoverer.discoverArtifacts( repositoryLocation,
null, true );
+ assertNotNull( "Check artifacts not null", artifacts );
+
+ assertTrue( "Check normal included",
+ artifacts.contains( createArtifact( "org.apache.maven",
"testing", "1.0" ) ) );
+ }
+
+ public void testArtifactWithClassifier()
+ {
+ List artifacts = discoverer.discoverArtifacts( repositoryLocation,
null, true );
+ assertNotNull( "Check artifacts not null", artifacts );
+
+ assertTrue( "Check normal included",
+ artifacts.contains( createArtifact( "org.apache.maven",
"some-ejb", "1.0", "jar", "client" ) ) );
+ }
+
+ public void testJavaSourcesInclusion()
+ {
+ List artifacts = discoverer.discoverArtifacts( repositoryLocation,
null, true );
+ assertNotNull( "Check artifacts not null", artifacts );
+
+ assertTrue( "Check normal included",
+ artifacts.contains( createArtifact( "org.apache.maven",
"testing", "1.0", "java-source" ) ) );
+ }
+
+ public void testDistributionInclusion()
+ {
+ List artifacts = discoverer.discoverArtifacts( repositoryLocation,
null, true );
+ assertNotNull( "Check artifacts not null", artifacts );
+
+ assertTrue( "Check zip included",
+ artifacts.contains( createArtifact( "org.apache.maven",
"testing", "1.0", "distribution-zip" ) ) );
+
+ assertTrue( "Check tar.gz included",
+ artifacts.contains( createArtifact( "org.apache.maven",
"testing", "1.0", "distribution-tgz" ) ) );
+ }
+
public void testSnapshotInclusion()
{
List artifacts = discoverer.discoverArtifacts( repositoryLocation,
null, true );
@@ -235,6 +274,16 @@
private Artifact createArtifact( String groupId, String artifactId, String
version )
{
return factory.createArtifact( groupId, artifactId, version, null,
"jar" );
+ }
+
+ private Artifact createArtifact( String groupId, String artifactId, String
version, String type )
+ {
+ return factory.createArtifact( groupId, artifactId, version, null,
type );
+ }
+
+ private Artifact createArtifact( String groupId, String artifactId, String
version, String type, String classifier )
+ {
+ return factory.createArtifactWithClassifier( groupId, artifactId,
version, type, classifier );
}
}
Added:
maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/some-ejb/1.0/some-ejb-1.0-client.jar
URL:
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/some-ejb/1.0/some-ejb-1.0-client.jar?rev=349700&view=auto
==============================================================================
(empty)
Added:
maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/testing/1.0/testing-1.0-sources.jar
URL:
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/testing/1.0/testing-1.0-sources.jar?rev=349700&view=auto
==============================================================================
(empty)
Added:
maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.jar
URL:
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.jar?rev=349700&view=auto
==============================================================================
(empty)
Added:
maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.tar.gz
URL:
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.tar.gz?rev=349700&view=auto
==============================================================================
(empty)
Added:
maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.zip
URL:
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-discovery/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.zip?rev=349700&view=auto
==============================================================================
(empty)