You are viewing a plain text version of this content. The canonical link for it is here.
Posted to m2-dev@maven.apache.org by jv...@apache.org on 2004/06/14 19:07:16 UTC
cvs commit: maven-components/maven-artifact/src/test/java/org/apache/maven/project AbstractProjectTestCase.java
jvanzyl 2004/06/14 10:07:15
Modified: maven-artifact pom.xml
maven-artifact/src/main/java/org/apache/maven/artifact/downloader
DefaultArtifactDownloader.java
maven-artifact/src/main/java/org/apache/maven/artifact/resolver
DefaultArtifactResolver.java
maven-artifact/src/main/java/org/apache/maven/artifact/snapshot
DefaultSnapshotResolver.java
maven-artifact/src/main/resources/META-INF/plexus
components.xml
maven-artifact/src/test/java/org/apache/maven/artifact/downloader
DefaultArtifactDownloaderTest.java
maven-artifact/src/test/java/org/apache/maven/artifact/snapshot
DefaultSnapshotResolverTest.java
maven-artifact/src/test/java/org/apache/maven/project
AbstractProjectTestCase.java
Log:
o fully decoupling maven-artifact from maven-core
Revision Changes Path
1.2 +0 -5 maven-components/maven-artifact/pom.xml
Index: pom.xml
===================================================================
RCS file: /home/cvs/maven-components/maven-artifact/pom.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- pom.xml 11 Jun 2004 15:12:24 -0000 1.1
+++ pom.xml 14 Jun 2004 17:07:15 -0000 1.2
@@ -21,11 +21,6 @@
</dependency>
<dependency>
<groupId>maven</groupId>
- <artifactId>maven-project</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>maven</groupId>
<artifactId>wagon-api</artifactId>
<version>0.9-SNAPSHOT</version>
</dependency>
1.2 +1 -4 maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/downloader/DefaultArtifactDownloader.java
Index: DefaultArtifactDownloader.java
===================================================================
RCS file: /home/cvs/maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/downloader/DefaultArtifactDownloader.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultArtifactDownloader.java 11 Jun 2004 15:12:24 -0000 1.1
+++ DefaultArtifactDownloader.java 14 Jun 2004 17:07:15 -0000 1.2
@@ -6,7 +6,6 @@
import org.apache.maven.artifact.MavenArtifact;
import org.apache.maven.artifact.repository.RepositoryUtils;
-import org.apache.maven.artifact.factory.MavenArtifactFactory;
import org.apache.maven.wagon.ResourceDoesNotExistException;
import org.apache.maven.wagon.TransferFailedException;
import org.apache.maven.wagon.Wagon;
@@ -29,8 +28,6 @@
implements ArtifactDownloader
{
private WagonManager wagonManager;
-
- private MavenArtifactFactory artifactFactory;
public boolean getRemoteArtifact( MavenArtifact artifact, List repositories )
{
1.2 +42 -5 maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
Index: DefaultArtifactResolver.java
===================================================================
RCS file: /home/cvs/maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultArtifactResolver.java 11 Jun 2004 15:12:25 -0000 1.1
+++ DefaultArtifactResolver.java 14 Jun 2004 17:07:15 -0000 1.2
@@ -1,8 +1,8 @@
package org.apache.maven.artifact.resolver;
import org.apache.maven.artifact.MavenArtifact;
+import org.apache.maven.artifact.GenericMavenArtifact;
import org.apache.maven.artifact.downloader.ArtifactDownloader;
-import org.apache.maven.artifact.factory.MavenArtifactFactory;
import org.apache.maven.artifact.snapshot.SnapshotResolver;
import org.apache.maven.model.Dependency;
@@ -15,15 +15,13 @@
public class DefaultArtifactResolver
implements ArtifactResolver
{
- private MavenArtifactFactory artifactFactory;
-
private ArtifactDownloader artifactDownloader;
private SnapshotResolver snapshotResolver;
public MavenArtifact getArtifact( Dependency dependency, String localRepository, List repositories )
{
- MavenArtifact retValue = artifactFactory.createArtifact( dependency, localRepository );
+ MavenArtifact retValue = createArtifact( dependency, localRepository );
if ( retValue.isSnapshot() )
{
@@ -66,5 +64,44 @@
public MavenArtifact getPomArtifact( Dependency dependency, String localRepository, List repositories )
{
return getArtifact( dependency, "pom", localRepository, repositories );
+ }
+
+ public MavenArtifact createArtifact( Dependency dependency )
+ {
+ if ( dependency.getType() == null
+ || dependency.getType().trim().length() == 0
+ || dependency.getType().equals( "jar" )
+ || dependency.getType().equals( "test" ) )
+ {
+ dependency.setType( "jar" );
+ return new GenericMavenArtifact( dependency );
+ }
+ else
+ {
+ return new GenericMavenArtifact( dependency );
+ }
+ }
+
+ public MavenArtifact createArtifact( Dependency dependency, String mavenRepoLocal )
+ {
+
+ MavenArtifact retValue = null;
+
+ if ( dependency.getType() == null
+ || dependency.getType().trim().length() == 0
+ || dependency.getType().equals( "jar" )
+ || dependency.getType().equals( "test" ) )
+ {
+ dependency.setType( "jar" );
+ retValue = new GenericMavenArtifact( dependency );
+ }
+ else
+ {
+ retValue = new GenericMavenArtifact( dependency );
+ }
+
+ retValue.setPath( mavenRepoLocal + retValue.generatePath() );
+
+ return retValue;
}
}
1.2 +3 -1 maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/snapshot/DefaultSnapshotResolver.java
Index: DefaultSnapshotResolver.java
===================================================================
RCS file: /home/cvs/maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/snapshot/DefaultSnapshotResolver.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultSnapshotResolver.java 11 Jun 2004 15:12:25 -0000 1.1
+++ DefaultSnapshotResolver.java 14 Jun 2004 17:07:15 -0000 1.2
@@ -21,6 +21,8 @@
public class DefaultSnapshotResolver
implements SnapshotResolver
{
+ //@todo why do we need wagonManager and artifact downloader here?
+
private WagonManager wagonManager;
private ArtifactDownloader artifactDownloader;
1.2 +0 -38 maven-components/maven-artifact/src/main/resources/META-INF/plexus/components.xml
Index: components.xml
===================================================================
RCS file: /home/cvs/maven-components/maven-artifact/src/main/resources/META-INF/plexus/components.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- components.xml 11 Jun 2004 15:12:25 -0000 1.1
+++ components.xml 14 Jun 2004 17:07:15 -0000 1.2
@@ -1,44 +1,10 @@
<component-set>
<components>
<component>
- <role>org.apache.maven.project.MavenProjectBuilder</role>
- <implementation>org.apache.maven.project.DefaultMavenProjectBuilder</implementation>
- <requirements>
- <requirement>
- <role>org.apache.maven.project.ModelInheritanceAssembler</role>
- </requirement>
- <requirement>
- <role>org.apache.maven.artifact.collector.ArtifactCollector</role>
- </requirement>
- <requirement>
- <role>org.apache.maven.artifact.factory.MavenArtifactFactory</role>
- </requirement>
- <requirement>
- <role>org.apache.maven.wagon.manager.WagonManager</role>
- </requirement>
- </requirements>
- </component>
- <component>
- <role>org.apache.maven.artifact.factory.MavenArtifactFactory</role>
- <implementation>org.apache.maven.artifact.factory.DefaultMavenArtifactFactory</implementation>
- </component>
- <component>
- <role>org.apache.maven.artifact.collector.ArtifactCollector</role>
- <implementation>org.apache.maven.artifact.collector.DefaultArtifactCollector</implementation>
- <requirements>
- <requirement>
- <role>org.apache.maven.artifact.resolver.ArtifactResolver</role>
- </requirement>
- </requirements>
- </component>
- <component>
<role>org.apache.maven.artifact.resolver.ArtifactResolver</role>
<implementation>org.apache.maven.artifact.resolver.DefaultArtifactResolver</implementation>
<requirements>
<requirement>
- <role>org.apache.maven.artifact.factory.MavenArtifactFactory</role>
- </requirement>
- <requirement>
<role>org.apache.maven.artifact.downloader.ArtifactDownloader</role>
</requirement>
<requirement>
@@ -55,10 +21,6 @@
</requirement>
</requirements>
</component>
- <component>
- <role>org.apache.maven.project.ModelInheritanceAssembler</role>
- <implementation>org.apache.maven.project.DefaultModelInheritanceAssembler</implementation>
- </component>
<component>
<role>org.apache.maven.artifact.snapshot.SnapshotResolver</role>
<implementation>org.apache.maven.artifact.snapshot.DefaultSnapshotResolver</implementation>
1.2 +20 -33 maven-components/maven-artifact/src/test/java/org/apache/maven/artifact/downloader/DefaultArtifactDownloaderTest.java
Index: DefaultArtifactDownloaderTest.java
===================================================================
RCS file: /home/cvs/maven-components/maven-artifact/src/test/java/org/apache/maven/artifact/downloader/DefaultArtifactDownloaderTest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultArtifactDownloaderTest.java 11 Jun 2004 15:12:25 -0000 1.1
+++ DefaultArtifactDownloaderTest.java 14 Jun 2004 17:07:15 -0000 1.2
@@ -17,16 +17,14 @@
*/
import org.apache.maven.artifact.MavenArtifact;
-import org.apache.maven.artifact.factory.MavenArtifactFactory;
+import org.apache.maven.model.Model;
import org.apache.maven.project.AbstractProjectTestCase;
-import org.apache.maven.project.MavenProject;
import java.io.File;
import java.util.List;
/**
- *
- * @author <a href="mailto:mmaczka@interia.pl">Michal Maczka</a>
+ * @author <a href="mailto:mmaczka@interia.pl">Michal Maczka</a>
* @version $Id$
*/
public class DefaultArtifactDownloaderTest
@@ -34,8 +32,6 @@
{
private ArtifactDownloader artifactDownloader;
- private MavenArtifactFactory artifactFactory;
-
public DefaultArtifactDownloaderTest( String testName )
{
super( testName );
@@ -46,11 +42,9 @@
{
super.setUp();
- artifactDownloader = ( ArtifactDownloader ) lookup( ArtifactDownloader.ROLE );
+ artifactDownloader = (ArtifactDownloader) lookup( ArtifactDownloader.ROLE );
assertNotNull( "Test artifactDownloader can't be null!", artifactDownloader );
-
- artifactFactory = ( MavenArtifactFactory ) lookup( MavenArtifactFactory.ROLE );
}
public void testArtifactDownloading()
@@ -58,17 +52,17 @@
{
File f = new File( getLocalRepository(), "/maven-test/poms/maven-test-a-1.0.pom" );
+ Model model = getModel( f );
+
assertTrue( "Test file: '" + f.getAbsolutePath() + "' doesn't exist!", f.exists() );
initLocalRepository();
-
- MavenProject project = buildProject( f, true, false );
assertTrue( "Local repsoitory could not be crated", f.exists() );
- initRemoteRepositories( project );
+ List repos = initRemoteRepositories( model );
- List artifacts = project.getArtifacts();
+ List artifacts = getArtifacts( model );
//2 artifact
assertEquals( 2, artifacts.size() );
@@ -86,44 +80,37 @@
</dependency>
*/
- MavenArtifact artifactB = ( MavenArtifact ) artifacts.get( 0 );
+ MavenArtifact artifactB = (MavenArtifact) artifacts.get( 0 );
- MavenArtifact artifactZ = ( MavenArtifact ) artifacts.get( 1 );
+ MavenArtifact artifactZ = (MavenArtifact) artifacts.get( 1 );
- assertFalse( artifactB.exists() );
+ //assertFalse( artifactB.exists() );
- assertFalse( artifactZ.exists() );
+ //assertFalse( artifactZ.exists() );
// this one is in repo-1
- assertTrue( "B should have been downloaded", artifactDownloader
- .getRemoteArtifact( artifactB, project.getRepositories() ) );
+ assertTrue( "B should have been downloaded", artifactDownloader.getRemoteArtifact( artifactB, repos ) );
assertTrue( "B should have been downloaded", artifactB.exists() );
// this one is in repo-2
- assertTrue( "Z should have been downloaded: " + artifactZ.getFile() , artifactDownloader
- .getRemoteArtifact( artifactZ, project.getRepositories() ) );
-
+ assertTrue( "Z should have been downloaded: " + artifactZ.getFile(), artifactDownloader.getRemoteArtifact( artifactZ, repos ) );
+
assertTrue( "Z should have been downloaded", artifactZ.exists() );
// A has accompanying md5 file
- assertTrue( "MD5 file for B should have been downloaded", artifactB
- .getChecksumFile().exists() );
+ assertTrue( "MD5 file for B should have been downloaded", artifactB.getChecksumFile().exists() );
//Z does not have md5 file
- assertFalse(
- "MD5 file for Z does not exist in any repo and should not be downloaded. File : "
- + artifactZ.getChecksumFile() + " exists.", artifactZ
- .getChecksumFile().exists() );
+ assertFalse( "MD5 file for Z does not exist in any repo and should not be downloaded. File : "
+ + artifactZ.getChecksumFile() + " exists.", artifactZ
+ .getChecksumFile().exists() );
// try to crate bizzare artifact and download it. this should fail.
artifactB.getDependency().setGroupId( "bizzare" );
- assertFalse( "Not existing artifact cannot be downloaded",
- artifactDownloader.getRemoteArtifact( artifactB, project
- .getRepositories() ) );
-
+ assertFalse( "Not existing artifact cannot be downloaded", artifactDownloader.getRemoteArtifact( artifactB, repos ) );
}
}
1.2 +14 -15 maven-components/maven-artifact/src/test/java/org/apache/maven/artifact/snapshot/DefaultSnapshotResolverTest.java
Index: DefaultSnapshotResolverTest.java
===================================================================
RCS file: /home/cvs/maven-components/maven-artifact/src/test/java/org/apache/maven/artifact/snapshot/DefaultSnapshotResolverTest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultSnapshotResolverTest.java 11 Jun 2004 15:12:25 -0000 1.1
+++ DefaultSnapshotResolverTest.java 14 Jun 2004 17:07:15 -0000 1.2
@@ -16,14 +16,14 @@
* limitations under the License.
*/
-import java.io.File;
-import java.util.List;
-
import org.apache.maven.artifact.MavenArtifact;
+import org.apache.maven.model.Model;
import org.apache.maven.project.AbstractProjectTestCase;
-import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.FileUtils;
+import java.io.File;
+import java.util.List;
+
/**
* @author <a href="mailto:mmaczka@interia.pl">Michal Maczka</a>
* @version $Id$
@@ -49,6 +49,7 @@
snapshotResolver );
}
+
public void testSnapshotResolving()
throws Exception
{
@@ -58,21 +59,19 @@
System.setProperty( "maven.repo.local", getLocalRepository() );
- MavenProject project = buildProject( f );
-
- assertEquals( project.getLocalRepository(), getLocalRepository() );
+ Model model = getModel( f );
- List artifacts = project.getArtifacts();
+ List artifacts = getArtifacts( model );
assertEquals( 5, artifacts.size() );
- initRemoteRepositories( project );
+ List repos = initRemoteRepositories( model );
// 0 newer version of this snapshot is in remote repository
MavenArtifact a = (MavenArtifact) artifacts.get( 0 );
- snapshotResolver.resolveSnapshotArtifact( a, project.getRepositories() );
+ snapshotResolver.resolveSnapshotArtifact( a, repos );
assertEquals( "remote", getContent( a ) );
@@ -82,7 +81,7 @@
MavenArtifact b = (MavenArtifact) artifacts.get( 1 );
- snapshotResolver.resolveSnapshotArtifact( b, project.getRepositories() );
+ snapshotResolver.resolveSnapshotArtifact( b, repos );
assertEquals( "local", getContent( b ) );
@@ -92,7 +91,7 @@
MavenArtifact c = (MavenArtifact) artifacts.get( 2 );
- snapshotResolver.resolveSnapshotArtifact( c, project.getRepositories() );
+ snapshotResolver.resolveSnapshotArtifact( c, repos );
assertEquals( "remote", getContent( c ) );
@@ -102,7 +101,7 @@
MavenArtifact d = (MavenArtifact) artifacts.get( 3 );
- snapshotResolver.resolveSnapshotArtifact( d, project.getRepositories() );
+ snapshotResolver.resolveSnapshotArtifact( d, repos );
assertEquals( null, getContent( d ) );
@@ -112,7 +111,7 @@
MavenArtifact e = (MavenArtifact) artifacts.get( 4 );
- snapshotResolver.resolveSnapshotArtifact( e, project.getRepositories() );
+ snapshotResolver.resolveSnapshotArtifact( e, repos );
assertEquals( "local", getContent( e ) );
1.2 +44 -25 maven-components/maven-artifact/src/test/java/org/apache/maven/project/AbstractProjectTestCase.java
Index: AbstractProjectTestCase.java
===================================================================
RCS file: /home/cvs/maven-components/maven-artifact/src/test/java/org/apache/maven/project/AbstractProjectTestCase.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AbstractProjectTestCase.java 11 Jun 2004 15:12:25 -0000 1.1
+++ AbstractProjectTestCase.java 14 Jun 2004 17:07:15 -0000 1.2
@@ -1,16 +1,24 @@
package org.apache.maven.project;
import java.io.File;
+import java.io.FileReader;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Iterator;
import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.util.FileUtils;
+import org.apache.maven.model.Repository;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.apache.maven.artifact.GenericMavenArtifact;
+import org.apache.maven.artifact.MavenArtifact;
public class AbstractProjectTestCase
extends PlexusTestCase
{
- protected MavenProjectBuilder projectBuilder;
-
- private String localRepository = System.getProperty( "basedir" ) + "/target/test-classes/local-repo";
+ protected String localRepository = System.getProperty( "basedir" ) + "/target/test-classes/local-repo";
public AbstractProjectTestCase( String testName )
{
@@ -21,10 +29,6 @@
throws Exception
{
super.setUp();
-
- projectBuilder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
-
- assertNotNull( "Test projectBuilder can't be null!", projectBuilder );
}
public String getLocalRepository()
@@ -55,40 +59,55 @@
System.setProperty( "maven.repo.local", tempLocalRepository.getPath() );
}
- protected MavenProject buildProject( File f, boolean useParentPom, boolean followTransitiveDeps )
- throws Exception
+ protected Model getModel( File f )
+ throws Exception
{
- MavenProject project = null;
-
- project = projectBuilder.build( f, useParentPom, followTransitiveDeps );
+ MavenXpp3Reader reader = new MavenXpp3Reader();
- assertNotNull( "Project is null", project );
-
- return project;
+ Model model = reader.read( new FileReader( f ) );
+ return model;
}
- protected MavenProject buildProject( File f )
- throws Exception
+ protected List getArtifacts( Model model )
{
- return buildProject( f, true, false );
+ List artifacts = new ArrayList();
+
+ for ( Iterator i = model.getDependencies().iterator(); i.hasNext(); )
+ {
+ Dependency d = (Dependency) i.next();
+
+ MavenArtifact artifact = new GenericMavenArtifact( d );
+
+ artifact.setPath( localRepository + artifact.generatePath() );
+
+ artifacts.add( artifact );
+ }
+
+ return artifacts;
}
- protected void initRemoteRepositories( MavenProject project )
+ protected List initRemoteRepositories( Model model )
+ throws Exception
{
- //we will remove ibiblio
- project.getRepositories().clear();
+ List repositories = model.getRepositories();
File repo_1 = new File( basedir, "target/test-classes/remote-repo-1" );
File repo_2 = new File( basedir, "target/test-classes/remote-repo-2" );
- project.addRepository( "file://" + repo_1.getPath() );
+ Repository r = new Repository();
- project.addRepository( "file://" + repo_2.getPath() );
+ r.setUrl( "file://" + repo_1.getAbsolutePath());
- assertEquals( 2, project.getRepositories().size() );
- }
+ repositories.add( r );
+
+ r = new Repository();
+ r.setUrl( "file://" + repo_2.getAbsolutePath() );
+ repositories.add( r );
+
+ return repositories;
+ }
}