You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2008/09/22 21:58:52 UTC
svn commit: r697965 - in /maven/shared/trunk/maven-archiver/src:
main/java/org/apache/maven/archiver/ test/java/org/apache/maven/archiver/
test/resources/
Author: jdcasey
Date: Mon Sep 22 12:58:52 2008
New Revision: 697965
URL: http://svn.apache.org/viewvc?rev=697965&view=rev
Log:
[MSHARED-36] Switch to using the timestamp/buildnumber version for classpath entries by default, customizable using the custom classpathLayoutType and a specified customClasspathLayout configuration. Unit tests included.
Added:
maven/shared/trunk/maven-archiver/src/test/resources/dummy1-1.1-20081022.112233-1.jar (with props)
Modified:
maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java
maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MockArtifact.java
Modified: maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java?rev=697965&r1=697964&r2=697965&view=diff
==============================================================================
--- maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java (original)
+++ maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java Mon Sep 22 12:58:52 2008
@@ -31,7 +31,6 @@
import org.codehaus.plexus.interpolation.PrefixAwareRecursionInterceptor;
import org.codehaus.plexus.interpolation.PrefixedObjectValueSource;
import org.codehaus.plexus.interpolation.PrefixedPropertiesValueSource;
-import org.codehaus.plexus.interpolation.PrefixedValueSourceWrapper;
import org.codehaus.plexus.interpolation.RecursionInterceptor;
import org.codehaus.plexus.interpolation.StringSearchInterpolator;
import org.codehaus.plexus.interpolation.ValueSource;
@@ -53,6 +52,13 @@
*/
public class MavenArchiver
{
+
+ public static final String SIMPLE_LAYOUT = "${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}";
+
+ public static final String REPOSITORY_LAYOUT = "${artifact.groupIdPath}/${artifact.artifactId}/" +
+ "${artifact.baseVersion}/${artifact.artifactId}-" +
+ "${artifact.version}${dashClassifier?}.${artifact.extension}";
+
private static final List ARTIFACT_EXPRESSION_PREFIXES;
static
@@ -206,38 +212,12 @@
classpath.append( classpathPrefix );
// NOTE: If the artifact or layout type (from config) is null, give up and use the file name by itself.
- if ( artifact == null || layoutType == null
- || ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_SIMPLE.equals( layoutType ) )
+ if ( artifact == null || layoutType == null )
{
classpath.append( f.getName() );
}
- else if ( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_REPOSITORY.equals( layoutType ) )
- {
- // we use layout /$groupId[0]/../${groupId[n]/$artifactId/$version/{fileName}
- // here we must find the Artifact in the project Artifacts to generate the maven layout
- StringBuffer classpathElement = new StringBuffer();
- if ( !StringUtils.isEmpty( artifact.getGroupId() ) )
- {
- classpathElement.append( artifact.getGroupId().replace( '.', '/' ) ).append( '/' );
- }
- classpathElement.append( artifact.getArtifactId() ).append( '/' );
- classpathElement.append( artifact.getVersion() ).append( '/' );
- classpathElement.append( f.getName() );
- classpath.append( classpathElement );
- }
- else if ( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_CUSTOM.equals( layoutType ) )
+ else
{
- if ( layout == null )
- {
- throw new ManifestException(
- ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_CUSTOM
- + " layout type was declared, but custom layout expression was not specified. Check your <archive><manifest><customLayout/> element." );
- }
-
- // FIXME: This query method SHOULD NOT affect the internal
- // state of the artifact version, but it does.
- artifact.isSnapshot();
-
List valueSources = new ArrayList();
valueSources.add( new PrefixedObjectValueSource( ARTIFACT_EXPRESSION_PREFIXES, artifact, true ) );
valueSources.add( new PrefixedObjectValueSource( ARTIFACT_EXPRESSION_PREFIXES, artifact == null ? null : artifact.getArtifactHandler(), true ) );
@@ -245,6 +225,13 @@
Properties extraExpressions = new Properties();
if ( artifact != null )
{
+ // FIXME: This query method SHOULD NOT affect the internal
+ // state of the artifact version, but it does.
+ if ( !artifact.isSnapshot() )
+ {
+ extraExpressions.setProperty( "baseVersion", artifact.getVersion() );
+ }
+
extraExpressions.setProperty( "groupIdPath", artifact.getGroupId().replace( '.', '/' ) );
if ( artifact.getClassifier() != null )
{
@@ -266,9 +253,35 @@
}
RecursionInterceptor recursionInterceptor = new PrefixAwareRecursionInterceptor( ARTIFACT_EXPRESSION_PREFIXES );
+
try
{
- classpath.append( interpolator.interpolate( layout, recursionInterceptor ) );
+ if ( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_SIMPLE.equals( layoutType ) )
+ {
+ classpath.append( interpolator.interpolate( SIMPLE_LAYOUT, recursionInterceptor ) );
+ }
+ else if ( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_REPOSITORY.equals( layoutType ) )
+ {
+ // we use layout /$groupId[0]/../${groupId[n]/$artifactId/$version/{fileName}
+ // here we must find the Artifact in the project Artifacts to generate the maven layout
+ classpath.append( interpolator.interpolate( REPOSITORY_LAYOUT, recursionInterceptor ) );
+ }
+ else if ( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_CUSTOM.equals( layoutType ) )
+ {
+ if ( layout == null )
+ {
+ throw new ManifestException(
+ ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_CUSTOM
+ + " layout type was declared, but custom layout expression was not specified. Check your <archive><manifest><customLayout/> element." );
+ }
+
+ classpath.append( interpolator.interpolate( layout, recursionInterceptor ) );
+ }
+ else
+ {
+ throw new ManifestException( "Unknown classpath layout type: '" + layoutType
+ + "'. Check your <archive><manifest><layoutType/> element." );
+ }
}
catch ( InterpolationException e )
{
@@ -288,11 +301,6 @@
}
}
}
- else
- {
- throw new ManifestException( "Unknown classpath layout type: '" + layoutType
- + "'. Check your <archive><manifest><layoutType/> element." );
- }
}
}
Modified: maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java?rev=697965&r1=697964&r2=697965&view=diff
==============================================================================
--- maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java (original)
+++ maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java Mon Sep 22 12:58:52 2008
@@ -410,19 +410,19 @@
assertEquals( "Apache Maven", manifest.get( new Attributes.Name( "Created-By" ) ) );
assertEquals( "archiver test", manifest.get( Attributes.Name.SPECIFICATION_TITLE ) );// "Specification-Title"
- // ) );
+ // ) );
assertEquals( "0.1", manifest.get( Attributes.Name.SPECIFICATION_VERSION ) );// "Specification-Version" ) );
assertEquals( "Apache", manifest.get( Attributes.Name.SPECIFICATION_VENDOR ) );// "Specification-Vendor" )
- // );
+ // );
assertEquals( "archiver test", manifest.get( Attributes.Name.IMPLEMENTATION_TITLE ) );// "Implementation-Title"
- // ) );
+ // ) );
assertEquals( "0.1", manifest.get( Attributes.Name.IMPLEMENTATION_VERSION ) );// "Implementation-Version" )
- // );
+ // );
assertEquals( "org.apache.dummy", manifest.get( Attributes.Name.IMPLEMENTATION_VENDOR_ID ) );// "Implementation-Vendor-Id"
- // ) );
+ // ) );
assertEquals( "Apache", manifest.get( Attributes.Name.IMPLEMENTATION_VENDOR ) );// "Implementation-Vendor" )
- // );
+ // );
assertEquals( "org.apache.maven.Foo", manifest.get( Attributes.Name.MAIN_CLASS ) );// "Main-Class" ) );
assertEquals( "bar", manifest.get( new Attributes.Name( "foo" ) ) );
@@ -521,6 +521,50 @@
}
}
+ public void testDefaultClassPathValue_WithSnapshot()
+ throws Exception
+ {
+ MavenProject project = getDummyProjectWithSnapshot();
+ JarFile jar = null;
+ try
+ {
+ File jarFile = new File( "target/test/dummy.jar" );
+ jarFile.delete();
+ assertFalse( jarFile.exists() );
+ JarArchiver jarArchiver = new JarArchiver();
+ jarArchiver.setDestFile( jarFile );
+
+ MavenArchiver archiver = new MavenArchiver();
+ archiver.setArchiver( jarArchiver );
+ archiver.setOutputFile( jarArchiver.getDestFile() );
+
+ MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+ config.setForced( true );
+ config.getManifest().setAddDefaultImplementationEntries( true );
+ config.getManifest().setAddDefaultSpecificationEntries( true );
+ config.getManifest().setMainClass( "org.apache.maven.Foo" );
+ config.getManifest().setAddClasspath( true );
+ archiver.createArchive( project, config );
+ assertTrue( jarFile.exists() );
+ jar = new JarFile( jarFile );
+
+ String classPath = jar.getManifest().getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
+ assertNotNull( classPath );
+ String[] classPathEntries = StringUtils.split( classPath, " " );
+ assertEquals( "dummy1-1.1-20081022.112233-1.jar", classPathEntries[0] );
+ assertEquals( "dummy2-1.5.jar", classPathEntries[1] );
+ assertEquals( "dummy3-2.0.jar", classPathEntries[2] );
+ }
+ finally
+ {
+ // cleanup streams
+ if ( jar != null )
+ {
+ jar.close();
+ }
+ }
+ }
+
public void testMavenRepoClassPathValue()
throws Exception
{
@@ -576,6 +620,61 @@
}
}
+ public void testMavenRepoClassPathValue_WithSnapshot()
+ throws Exception
+ {
+ MavenProject project = getDummyProjectWithSnapshot();
+ JarFile jar = null;
+ try
+ {
+ File jarFile = new File( "target/test/dummy.jar" );
+ jarFile.delete();
+ assertFalse( jarFile.exists() );
+ JarArchiver jarArchiver = new JarArchiver();
+ jarArchiver.setDestFile( jarFile );
+
+ MavenArchiver archiver = new MavenArchiver();
+ archiver.setArchiver( jarArchiver );
+ archiver.setOutputFile( jarArchiver.getDestFile() );
+
+ MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+ config.setForced( true );
+ config.getManifest().setAddDefaultImplementationEntries( true );
+ config.getManifest().setAddDefaultSpecificationEntries( true );
+ config.getManifest().setMainClass( "org.apache.maven.Foo" );
+ config.getManifest().setAddClasspath( true );
+ config.getManifest().setClasspathLayoutType( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_REPOSITORY );
+ archiver.createArchive( project, config );
+ assertTrue( jarFile.exists() );
+ jar = new JarFile( jarFile );
+
+ Manifest manifest = archiver.getManifest( project, config );
+ String[] classPathEntries =
+ StringUtils.split(
+ new String( manifest.getMainSection().getAttributeValue( "Class-Path" ).getBytes() ),
+ " " );
+ assertEquals( "org/apache/dummy/dummy1/1.1-SNAPSHOT/dummy1-1.1-20081022.112233-1.jar", classPathEntries[0] );
+ assertEquals( "org/apache/dummy/foo/dummy2/1.5/dummy2-1.5.jar", classPathEntries[1] );
+ assertEquals( "org/apache/dummy/bar/dummy3/2.0/dummy3-2.0.jar", classPathEntries[2] );
+
+ String classPath = jar.getManifest().getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
+ assertNotNull( classPath );
+ classPathEntries = StringUtils.split( classPath, " " );
+ assertEquals( "org/apache/dummy/dummy1/1.1-SNAPSHOT/dummy1-1.1-20081022.112233-1.jar", classPathEntries[0] );
+ assertEquals( "org/apache/dummy/foo/dummy2/1.5/dummy2-1.5.jar", classPathEntries[1] );
+ assertEquals( "org/apache/dummy/bar/dummy3/2.0/dummy3-2.0.jar", classPathEntries[2] );
+
+ }
+ finally
+ {
+ // cleanup streams
+ if ( jar != null )
+ {
+ jar.close();
+ }
+ }
+ }
+
public void testCustomClassPathValue()
throws Exception
{
@@ -600,7 +699,8 @@
config.getManifest().setMainClass( "org.apache.maven.Foo" );
config.getManifest().setAddClasspath( true );
config.getManifest().setClasspathLayoutType( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_CUSTOM );
- config.getManifest().setCustomClasspathLayout( "${artifact.groupIdPath}/${artifact.artifactId}/${artifact.version}/TEST-${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}" );
+ config.getManifest().setCustomClasspathLayout(
+ "${artifact.groupIdPath}/${artifact.artifactId}/${artifact.version}/TEST-${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}" );
archiver.createArchive( project, config );
assertTrue( jarFile.exists() );
jar = new JarFile( jarFile );
@@ -632,6 +732,120 @@
}
}
+ public void testCustomClassPathValue_WithSnapshotResolvedVersion()
+ throws Exception
+ {
+ MavenProject project = getDummyProjectWithSnapshot();
+ JarFile jar = null;
+ try
+ {
+ File jarFile = new File( "target/test/dummy.jar" );
+ jarFile.delete();
+ assertFalse( jarFile.exists() );
+ JarArchiver jarArchiver = new JarArchiver();
+ jarArchiver.setDestFile( jarFile );
+
+ MavenArchiver archiver = new MavenArchiver();
+ archiver.setArchiver( jarArchiver );
+ archiver.setOutputFile( jarArchiver.getDestFile() );
+
+ MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+ config.setForced( true );
+ config.getManifest().setAddDefaultImplementationEntries( true );
+ config.getManifest().setAddDefaultSpecificationEntries( true );
+ config.getManifest().setMainClass( "org.apache.maven.Foo" );
+ config.getManifest().setAddClasspath( true );
+ config.getManifest().setClasspathLayoutType( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_CUSTOM );
+ config.getManifest().setCustomClasspathLayout(
+ "${artifact.groupIdPath}/${artifact.artifactId}/${artifact.baseVersion}/TEST-${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}" );
+ archiver.createArchive( project, config );
+ assertTrue( jarFile.exists() );
+ jar = new JarFile( jarFile );
+
+ Manifest manifest = archiver.getManifest( project, config );
+ String[] classPathEntries =
+ StringUtils.split(
+ new String( manifest.getMainSection().getAttributeValue( "Class-Path" ).getBytes() ),
+ " " );
+ assertEquals( "org/apache/dummy/dummy1/1.1-SNAPSHOT/TEST-dummy1-1.1-20081022.112233-1.jar", classPathEntries[0] );
+ assertEquals( "org/apache/dummy/foo/dummy2/1.5/TEST-dummy2-1.5.jar", classPathEntries[1] );
+ assertEquals( "org/apache/dummy/bar/dummy3/2.0/TEST-dummy3-2.0.jar", classPathEntries[2] );
+
+ String classPath = jar.getManifest().getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
+ assertNotNull( classPath );
+ classPathEntries = StringUtils.split( classPath, " " );
+ assertEquals( "org/apache/dummy/dummy1/1.1-SNAPSHOT/TEST-dummy1-1.1-20081022.112233-1.jar", classPathEntries[0] );
+ assertEquals( "org/apache/dummy/foo/dummy2/1.5/TEST-dummy2-1.5.jar", classPathEntries[1] );
+ assertEquals( "org/apache/dummy/bar/dummy3/2.0/TEST-dummy3-2.0.jar", classPathEntries[2] );
+
+ }
+ finally
+ {
+ // cleanup streams
+ if ( jar != null )
+ {
+ jar.close();
+ }
+ }
+ }
+
+ public void testCustomClassPathValue_WithSnapshotForcingBaseVersion()
+ throws Exception
+ {
+ MavenProject project = getDummyProjectWithSnapshot();
+ JarFile jar = null;
+ try
+ {
+ File jarFile = new File( "target/test/dummy.jar" );
+ jarFile.delete();
+ assertFalse( jarFile.exists() );
+ JarArchiver jarArchiver = new JarArchiver();
+ jarArchiver.setDestFile( jarFile );
+
+ MavenArchiver archiver = new MavenArchiver();
+ archiver.setArchiver( jarArchiver );
+ archiver.setOutputFile( jarArchiver.getDestFile() );
+
+ MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+ config.setForced( true );
+ config.getManifest().setAddDefaultImplementationEntries( true );
+ config.getManifest().setAddDefaultSpecificationEntries( true );
+ config.getManifest().setMainClass( "org.apache.maven.Foo" );
+ config.getManifest().setAddClasspath( true );
+ config.getManifest().setClasspathLayoutType( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_CUSTOM );
+ config.getManifest().setCustomClasspathLayout(
+ "${artifact.groupIdPath}/${artifact.artifactId}/${artifact.baseVersion}/TEST-${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}" );
+ archiver.createArchive( project, config );
+ assertTrue( jarFile.exists() );
+ jar = new JarFile( jarFile );
+
+ Manifest manifest = archiver.getManifest( project, config );
+ String[] classPathEntries =
+ StringUtils.split(
+ new String( manifest.getMainSection().getAttributeValue( "Class-Path" ).getBytes() ),
+ " " );
+ assertEquals( "org/apache/dummy/dummy1/1.1-SNAPSHOT/TEST-dummy1-1.1-SNAPSHOT.jar", classPathEntries[0] );
+ assertEquals( "org/apache/dummy/foo/dummy2/1.5/TEST-dummy2-1.5.jar", classPathEntries[1] );
+ assertEquals( "org/apache/dummy/bar/dummy3/2.0/TEST-dummy3-2.0.jar", classPathEntries[2] );
+
+ String classPath = jar.getManifest().getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
+ assertNotNull( classPath );
+ classPathEntries = StringUtils.split( classPath, " " );
+ assertEquals( "org/apache/dummy/dummy1/1.1-SNAPSHOT/TEST-dummy1-1.1-SNAPSHOT.jar", classPathEntries[0] );
+ assertEquals( "org/apache/dummy/foo/dummy2/1.5/TEST-dummy2-1.5.jar", classPathEntries[1] );
+ assertEquals( "org/apache/dummy/bar/dummy3/2.0/TEST-dummy3-2.0.jar", classPathEntries[2] );
+
+ }
+ finally
+ {
+ // cleanup streams
+ if ( jar != null )
+ {
+ jar.close();
+ }
+ }
+ }
+
// ----------------------------------------
// common methods for testing
// ----------------------------------------
@@ -716,8 +930,7 @@
artifact1.setVersion( "1.0" );
artifact1.setType( "jar" );
artifact1.setScope( "runtime" );
- artifact1.setFile( getClasspathFile( artifact1.getArtifactId() + "-" + artifact1.getVersion()
- + ".jar" ) );
+ artifact1.setFile( getClasspathFile( artifact1.getArtifactId() + "-" + artifact1.getVersion() + ".jar" ) );
artifact1.setArtifactHandler( artifactHandler );
@@ -729,8 +942,7 @@
artifact2.setVersion( "1.5" );
artifact2.setType( "jar" );
artifact2.setScope( "runtime" );
- artifact2.setFile( getClasspathFile( artifact2.getArtifactId() + "-" + artifact2.getVersion()
- + ".jar" ) );
+ artifact2.setFile( getClasspathFile( artifact2.getArtifactId() + "-" + artifact2.getVersion() + ".jar" ) );
artifact2.setArtifactHandler( artifactHandler );
artifacts.add( artifact2 );
@@ -741,8 +953,119 @@
artifact3.setVersion( "2.0" );
artifact3.setScope( "runtime" );
artifact3.setType( "jar" );
- artifact3.setFile( getClasspathFile( artifact3.getArtifactId() + "-" + artifact3.getVersion()
- + ".jar" ) );
+ artifact3.setFile( getClasspathFile( artifact3.getArtifactId() + "-" + artifact3.getVersion() + ".jar" ) );
+ artifact3.setArtifactHandler( artifactHandler );
+ artifacts.add( artifact3 );
+
+ project.setArtifacts( artifacts );
+
+ return project;
+ }
+
+ private MavenProject getDummyProjectWithSnapshot()
+ {
+ Model model = new Model();
+ model.setGroupId( "org.apache.dummy" );
+ model.setArtifactId( "dummy" );
+ model.setVersion( "0.1" );
+ MavenProject project = new MavenProject( model );
+
+ project.setPluginArtifacts( Collections.EMPTY_SET );
+ project.setReportArtifacts( Collections.EMPTY_SET );
+ project.setExtensionArtifacts( Collections.EMPTY_SET );
+ project.setRemoteArtifactRepositories( Collections.EMPTY_LIST );
+ project.setPluginArtifactRepositories( Collections.EMPTY_LIST );
+
+ File pomFile = new File( "src/test/resources/pom.xml" );
+ pomFile.setLastModified( System.currentTimeMillis() - 60000L );
+ project.setFile( pomFile );
+ Build build = new Build();
+ build.setDirectory( "target" );
+ build.setOutputDirectory( "target" );
+ project.setBuild( build );
+ project.setName( "archiver test" );
+ Organization organization = new Organization();
+ organization.setName( "Apache" );
+ project.setOrganization( organization );
+ MockArtifact artifact = new MockArtifact();
+ artifact.setGroupId( "org.apache.dummy" );
+ artifact.setArtifactId( "dummy" );
+ artifact.setVersion( "0.1" );
+ artifact.setType( "jar" );
+ project.setArtifact( artifact );
+
+ ArtifactHandler artifactHandler = new ArtifactHandler()
+ {
+
+ public String getClassifier()
+ {
+ return null;
+ }
+
+ public String getDirectory()
+ {
+ return null;
+ }
+
+ public String getExtension()
+ {
+ return "jar";
+ }
+
+ public String getLanguage()
+ {
+ return null;
+ }
+
+ public String getPackaging()
+ {
+ return null;
+ }
+
+ public boolean isAddedToClasspath()
+ {
+ return true;
+ }
+
+ public boolean isIncludesDependencies()
+ {
+ return false;
+ }
+
+ };
+
+ Set artifacts = new TreeSet( new ArtifactComparator() );
+
+ MockArtifact artifact1 = new MockArtifact();
+ artifact1.setGroupId( "org.apache.dummy" );
+ artifact1.setArtifactId( "dummy1" );
+ artifact1.setSnapshotVersion( "1.1-20081022.112233-1", "1.1-SNAPSHOT" );
+ artifact1.setType( "jar" );
+ artifact1.setScope( "runtime" );
+ artifact1.setFile( getClasspathFile( artifact1.getArtifactId() + "-" + artifact1.getVersion() + ".jar" ) );
+
+ artifact1.setArtifactHandler( artifactHandler );
+
+ artifacts.add( artifact1 );
+
+ MockArtifact artifact2 = new MockArtifact();
+ artifact2.setGroupId( "org.apache.dummy.foo" );
+ artifact2.setArtifactId( "dummy2" );
+ artifact2.setVersion( "1.5" );
+ artifact2.setType( "jar" );
+ artifact2.setScope( "runtime" );
+ artifact2.setFile( getClasspathFile( artifact2.getArtifactId() + "-" + artifact2.getVersion() + ".jar" ) );
+
+ artifact2.setArtifactHandler( artifactHandler );
+ artifacts.add( artifact2 );
+
+ MockArtifact artifact3 = new MockArtifact();
+ artifact3.setGroupId( "org.apache.dummy.bar" );
+ artifact3.setArtifactId( "dummy3" );
+ artifact3.setVersion( "2.0" );
+ artifact3.setScope( "runtime" );
+ artifact3.setType( "jar" );
+ artifact3.setFile( getClasspathFile( artifact3.getArtifactId() + "-" + artifact3.getVersion() + ".jar" ) );
artifact3.setArtifactHandler( artifactHandler );
artifacts.add( artifact3 );
@@ -758,10 +1081,10 @@
{
fail( "Cannot retrieve java.net.URL for file: " + file + " on the current test classpath." );
}
-
+
URI uri = new File( resource.getPath() ).toURI().normalize();
File result = new File( uri.getPath().replaceAll( "%20", " " ) );
-
+
return result;
}
}
Modified: maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MockArtifact.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MockArtifact.java?rev=697965&r1=697964&r2=697965&view=diff
==============================================================================
--- maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MockArtifact.java (original)
+++ maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MockArtifact.java Mon Sep 22 12:58:52 2008
@@ -56,6 +56,8 @@
private ArtifactHandler artifactHandler;
+ private boolean snapshot;
+
public String getGroupId()
{
return groupId;
@@ -75,6 +77,13 @@
{
this.version = string;
}
+
+ public void setSnapshotVersion( String snapshotVersion, String baseVersion )
+ {
+ snapshot = true;
+ version = snapshotVersion;
+ this.baseVersion = baseVersion;
+ }
public String getScope()
{
@@ -218,8 +227,7 @@
public boolean isSnapshot()
{
- // TODO
- return false; //To change body of implemented methods use File | Settings | File Templates.
+ return snapshot;
}
public void setResolved( boolean b )
Added: maven/shared/trunk/maven-archiver/src/test/resources/dummy1-1.1-20081022.112233-1.jar
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-archiver/src/test/resources/dummy1-1.1-20081022.112233-1.jar?rev=697965&view=auto
==============================================================================
Binary file - no diff available.
Propchange: maven/shared/trunk/maven-archiver/src/test/resources/dummy1-1.1-20081022.112233-1.jar
------------------------------------------------------------------------------
svn:executable = *
Propchange: maven/shared/trunk/maven-archiver/src/test/resources/dummy1-1.1-20081022.112233-1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream