michal 2004/05/10 12:06:30
Modified: maven-project/src/main/resources/META-INF/plexus
components.xml
maven-project/src/main/java/org/apache/maven/artifact
MavenArtifact.java AbstractMavenArtifact.java
maven-project/src/main/java/org/apache/maven/artifact/resolver
DefaultArtifactResolver.java ArtifactResolver.java
maven-project/src/main/java/org/apache/maven/project
MavenProject.java
maven-project/src/test/java/org/apache/maven/project
AbstractProjectTestCase.java
maven-project/src/main/java/org/apache/maven/artifact/collector
DefaultArtifactCollector.java
maven-project/src/test/java/org/apache/maven/artifact/collector
DefaultArtifactCollectorTest.java
Added: maven-project/src/test/resources/local-repo/maven-test/jars
maven-test-c-1.0.jar maven-test-d-1.0.jar
maven-test-a-1.0.jar maven-test-b-1.0.jar
maven-project/src/test/java/org/apache/maven/artifact/downloader
DefaultArtifactDownloaderTest.java
maven-project/src/test/resources/remote-repo-1/maven-test/jars
maven-test-b-1.0.jar.md5 maven-test-b-1.0.jar
maven-project/src/test/resources/local-repo/maven-test/poms
maven-test-a-1.0.pom maven-test-b-1.0.pom
maven-test-d-1.1.pom maven-test-c-1.0.pom
maven-test-d-1.2.pom
maven-project/src/main/java/org/apache/maven/artifact/download
ArtifactDownloader.java
DefaultArtifactDownloader.java
maven-project/src/test/resources/remote-repo-2/maven-test/jars
maven-test-z-1.0.jar
maven-project/src/test/resources/remote-repo-1/maven-test/poms
maven-test-b-1.0.pom
Removed: maven-project/src/test/resources/maven-repo-local/maven-test/poms
maven-test-c-1.0.pom maven-test-a-1.0.pom
maven-test-b-1.0.pom maven-test-d-1.2.pom
maven-test-d-1.1.pom
maven-project/src/test/resources/maven-repo-local/maven-test/jars
maven-test-c-1.0.jar maven-test-a-1.0.jar
maven-test-b-1.0.jar maven-test-d-1.0.jar
Log:
integration of wagon with maven. I need to add special threatment for snapshot
artifacts and we are done with basic replacment of what was implemented in maven1.
There are some overlappings in the code (we should change ArtifactSatisfier as it
does not match well with new components). I will also add more tests soon.
Revision Changes Path
1.8 +13 -0
maven-components/maven-project/src/main/resources/META-INF/plexus/components.xml
Index: components.xml
===================================================================
RCS file:
/home/cvs/maven-components/maven-project/src/main/resources/META-INF/plexus/components.xml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- components.xml 8 May 2004 12:19:22 -0000 1.7
+++ components.xml 10 May 2004 19:06:29 -0000 1.8
@@ -44,11 +44,24 @@
<requirement>
<role>org.apache.maven.artifact.factory.MavenArtifactFactory</role>
</requirement>
+ <requirement>
+ <role>org.apache.maven.artifact.downloader.ArtifactDownloader</role>
+ </requirement>
</requirements>
</component>
<component>
+ <role>org.apache.maven.artifact.download.ArtifactDownloader</role>
+
<implementation>org.apache.maven.artifact.download.DefaultArtifactDownloader</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.maven.wagon.manager.WagonManager</role>
+ </requirement>
+ </requirements>
+ </component>
+ <component>
<role>org.apache.maven.project.ModelInheritanceAssembler</role>
<implementation>org.apache.maven.project.DefaultModelInheritanceAssembler</implementation>
</component>
+
</components>
</component-set>
1.1
maven-components/maven-project/src/test/resources/local-repo/maven-test/jars/maven-test-c-1.0.jar
Index: maven-test-c-1.0.jar
===================================================================
foo
1.1
maven-components/maven-project/src/test/resources/local-repo/maven-test/jars/maven-test-d-1.0.jar
Index: maven-test-d-1.0.jar
===================================================================
foo
1.1
maven-components/maven-project/src/test/resources/local-repo/maven-test/jars/maven-test-a-1.0.jar
Index: maven-test-a-1.0.jar
===================================================================
foo
1.1
maven-components/maven-project/src/test/resources/local-repo/maven-test/jars/maven-test-b-1.0.jar
Index: maven-test-b-1.0.jar
===================================================================
foo
1.4 +13 -3
maven-components/maven-project/src/main/java/org/apache/maven/artifact/MavenArtifact.java
Index: MavenArtifact.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-project/src/main/java/org/apache/maven/artifact/MavenArtifact.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- MavenArtifact.java 8 May 2004 12:19:22 -0000 1.3
+++ MavenArtifact.java 10 May 2004 19:06:29 -0000 1.4
@@ -29,12 +29,18 @@
void setPath( String path );
String getPath();
-
+
String generatePath();
+ String getChecksumPath();
+
+ String getSnapshotVersionPath();
+
String getUrlPath();
- String getChecksumUrl();
+ String getChecksumUrlPath();
+
+ String getSnapshotVersionUrlPath();
String getName();
@@ -43,8 +49,12 @@
boolean exists();
File getFile();
+
+ File getChecksumFile();
- File getFile( String localRepository );
+ File getSnapshotVersionFile();
String getExtension();
+
+
}
1.5 +35 -17
maven-components/maven-project/src/main/java/org/apache/maven/artifact/AbstractMavenArtifact.java
Index: AbstractMavenArtifact.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-project/src/main/java/org/apache/maven/artifact/AbstractMavenArtifact.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- AbstractMavenArtifact.java 8 May 2004 12:19:22 -0000 1.4
+++ AbstractMavenArtifact.java 10 May 2004 19:06:29 -0000 1.5
@@ -21,7 +21,7 @@
import java.io.File;
-public abstract class AbstractMavenArtifact
+public abstract class AbstractMavenArtifact
implements MavenArtifact
{
protected static final String ps = File.separator;
@@ -59,6 +59,19 @@
return path;
}
+
+ public String getSnapshotVersionPath()
+ {
+
+ return getPath() + ".snapshot-version";
+ }
+
+ public String getChecksumPath()
+ {
+
+ return getPath() + ".md5";
+ }
+
public String generatePath()
{
@@ -84,13 +97,17 @@
+ "/" + getArtifact( getDependency() );
}
- public String getChecksumUrl()
+ public String getChecksumUrlPath()
{
- return "/" + getArtifactDirectory( getDependency() )
- + "/" + getDependency().getType() + "s"
- + "/" + getArtifact( getDependency() )
- + ".md5";
+ return getUrlPath() + ".md5";
+ }
+
+ public String getSnapshotVersionUrlPath()
+ {
+ return getUrlPath() + ".snapshot-version";
}
+
+
public String getArtifactDirectory( Dependency d )
{
@@ -118,10 +135,6 @@
return getDependency().getArtifact();
}
- /**
- * @todo see comments added to getFile() method
- * @see org.apache.maven.artifact.MavenArtifact#exists()
- */
public boolean exists()
{
return getFile().exists();
@@ -132,23 +145,28 @@
return getDependency().getArtifact().indexOf( "SNAPSHOT" ) > 0;
}
- /**
- * @todo What for this method exits? getPath() returns realative path.
- * We need somehow append a path to local repository
- * @see org.apache.maven.artifact.MavenArtifact#getFile()
- */
public File getFile()
{
return new File( getPath() );
}
- public File getFile( String localRepository )
+
+ public File getChecksumFile()
{
- return new File( localRepository, getPath() );
+ return new File( getChecksumPath() );
}
+ public File getSnapshotVersionFile()
+ {
+ return new File( getSnapshotVersionPath() );
+ }
+
+
+
public String getExtension()
{
return dependency.getType();
}
+
+
}
1.2 +30 -5
maven-components/maven-project/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
Index: DefaultArtifactResolver.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-project/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 8 May 2004 12:19:22 -0000 1.1
+++ DefaultArtifactResolver.java 10 May 2004 19:06:29 -0000 1.2
@@ -1,6 +1,7 @@
package org.apache.maven.artifact.resolver;
import org.apache.maven.artifact.MavenArtifact;
+import org.apache.maven.artifact.download.ArtifactDownloader;
import org.apache.maven.artifact.factory.MavenArtifactFactory;
import org.apache.maven.model.Dependency;
import org.apache.maven.project.MavenProject;
@@ -17,19 +18,35 @@
*/
MavenArtifactFactory artifactFactory;
+ /**
+ * @requirement
+ */
+ ArtifactDownloader artifactDownloader;
+
+
+
public MavenArtifact getArtifact( Dependency dependency, MavenProject project )
{
MavenArtifact retValue = artifactFactory.createArtifact( dependency );
- String localRepository = project.getLocalRepository();
- if ( !retValue.getFile( localRepository ).exists() )
+ if ( retValue.isSnapshot() )
{
- //here we can try to fetch artifact using wagon
- retValue = null;
+ // for snapshots artifact we always have to try to check if newer version
exists
+
+ }
+ else if ( !retValue.getFile().exists() )
+ {
+ boolean downloaded = artifactDownloader.getRemoteArtifact( retValue,
project.getRepositories() );
+
+ if ( !downloaded )
+ {
+ retValue = null;
+ }
}
+
return retValue;
}
@@ -49,6 +66,14 @@
return getArtifact( d, project );
+
+ }
+
+
+ public MavenArtifact getPomArtifact( Dependency dependency, MavenProject
project )
+ {
+
+ return getArtifact( dependency, "pom", project );
}
1.2 +3 -1
maven-components/maven-project/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java
Index: ArtifactResolver.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-project/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ArtifactResolver.java 8 May 2004 12:19:22 -0000 1.1
+++ ArtifactResolver.java 10 May 2004 19:06:29 -0000 1.2
@@ -21,4 +21,6 @@
MavenArtifact getArtifact( Dependency dependency, MavenProject project );
MavenArtifact getArtifact( Dependency dependency, String type, MavenProject
project );
+
+ MavenArtifact getPomArtifact( Dependency dependency, MavenProject project );
}
1.6 +37 -4
maven-components/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
Index: MavenProject.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-project/src/main/java/org/apache/maven/project/MavenProject.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- MavenProject.java 8 May 2004 12:19:22 -0000 1.5
+++ MavenProject.java 10 May 2004 19:06:30 -0000 1.6
@@ -28,6 +28,7 @@
import org.apache.maven.model.Organization;
import org.apache.maven.model.Resource;
import org.apache.maven.model.Scm;
+import org.apache.maven.wagon.repository.Repository;
import org.codehaus.plexus.util.StringUtils;
import java.io.File;
@@ -76,6 +77,13 @@
/** Properties */
private Map properties;
+
+ private String FILE_SEPARATOR = "/";
+
+ private boolean alignedToBaseDirectory;
+
+ /**List of remote repositories which are visible for this project */
+ private List repositories = new ArrayList();
// ----------------------------------------------------------------------
// Accessors
@@ -762,9 +770,6 @@
return false;
}
- private String FILE_SEPARATOR = "/";
-
- private boolean alignedToBaseDirectory;
private void alignToBaseDirectory()
{
@@ -886,5 +891,33 @@
{
properties.put( "maven.repo.local", path );
}
+
+
+ public List getRepositories()
+ {
+ return repositories;
+ }
+
+
+ public void setRepositories( List remoteRepositories )
+ {
+ this.repositories = remoteRepositories;
+ }
+
+ public void addRepository( Repository repository )
+ {
+ repositories.add( repository );
+ }
+
+ public void addRepository( String url )
+ {
+ Repository repository = new Repository();
+
+ repository.setUrl( url );
+
+ addRepository( repository );
+
+ }
+
}
1.1
maven-components/maven-project/src/test/java/org/apache/maven/artifact/downloader/DefaultArtifactDownloaderTest.java
Index: DefaultArtifactDownloaderTest.java
===================================================================
package org.apache.maven.artifact.downloader;
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import org.apache.maven.artifact.MavenArtifact;
import org.apache.maven.artifact.download.ArtifactDownloader;
import org.apache.maven.artifact.factory.MavenArtifactFactory;
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:[EMAIL PROTECTED]">Michal Maczka</a>
* @version $Id: DefaultArtifactDownloaderTest.java,v 1.1 2004/05/10 19:06:30 michal
Exp $
*/
public class DefaultArtifactDownloaderTest
extends AbstractProjectTestCase
{
private ArtifactDownloader artifactDownloader;
private MavenArtifactFactory artifactFactory;
public DefaultArtifactDownloaderTest( String testName )
{
super( testName );
}
public void setUp() throws Exception
{
super.setUp();
artifactDownloader = ( ArtifactDownloader ) lookup( ArtifactDownloader.ROLE
);
assertNotNull( "Test artifactDownloader can't be null!", artifactDownloader
);
artifactFactory = ( MavenArtifactFactory ) lookup( MavenArtifactFactory.ROLE
);
}
public void testArtifactDownloading( )
{
File f = new File( getLocalRepository(),
"/maven-test/poms/maven-test-a-1.0.pom" );
assertTrue( "Test file: '" + f.getAbsolutePath() + "' doesn't exist!",
f.exists() );
File tempLocalRepository = new File( basedir, "target/repo-local" );
tempLocalRepository.mkdirs();
System.out.println( "Crated local repo: " + tempLocalRepository );
try
{
// that's the only was I can influence MavenProjectBuilder
System.setProperty( "maven.repo.local", tempLocalRepository.getPath() );
FileUtils.deleteDirectory( tempLocalRepository );
MavenProject project = projectBuilder.build( f );
assertNotNull( "Project is null", project );
assertTrue( "Local repsoitory could not be crated", f.exists() );
File repo_1 = new File( basedir, "src/test/resources/remote-repo-1" );
File repo_2 = new File( basedir, "src/test/resources/remote-repo-2" );
project.addRepository( "file://" + repo_1.getPath() );
project.addRepository( "file://" + repo_2.getPath() );
assertEquals( 2, project.getRepositories().size() );
List artifacts = project.getArtifacts();
assertEquals( 2, artifacts.size() );
/*we are using a POM which looks like follows:
<dependency>
<groupId>maven-test</groupId>
<artifactId>maven-test-b</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>maven-test</groupId>
<artifactId>maven-test-z</artifactId>
<version>1.0</version>
</dependency>
*/
MavenArtifact artifactB = ( MavenArtifact ) artifacts.get( 0 );
MavenArtifact artifactZ = ( MavenArtifact ) artifacts.get( 1 );
assertFalse( artifactB.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", artifactB.exists() );
// this one is in repo-2
assertTrue( "Z should have been downloaded",
artifactDownloader.getRemoteArtifact( artifactZ, project.getRepositories() ) );
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() );
// @todo: this is failing for me. there should be assertFalse in place
of assertTrue.
// there are two bugs here:
// a) file should not be created - and this is a problem of wagon
// b) I call file.delete() which is failing. is it a bug of jvm for ms
windows or output stream is not closed?
//Z does not have md5 file
assertTrue( "MD5 file for Z does not exist in any repo and should not be
downloaded: " + artifactZ.getChecksumFile() , 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() ) );
}
catch ( Exception e )
{
e.printStackTrace();
fail( e.getMessage() );
}
}
}
1.1
maven-components/maven-project/src/test/resources/remote-repo-1/maven-test/jars/maven-test-b-1.0.jar.md5
Index: maven-test-b-1.0.jar.md5
===================================================================
fix me: add real md5 checksum
1.1
maven-components/maven-project/src/test/resources/remote-repo-1/maven-test/jars/maven-test-b-1.0.jar
Index: maven-test-b-1.0.jar
===================================================================
foo
1.1
maven-components/maven-project/src/test/resources/local-repo/maven-test/poms/maven-test-a-1.0.pom
Index: maven-test-a-1.0.pom
===================================================================
<project>
<groupId>maven-test</groupId>
<artifactId>maven-test-a</artifactId>
<currentVersion>1.0</currentVersion>
<dependencies>
<dependency>
<groupId>maven-test</groupId>
<artifactId>maven-test-b</artifactId>
<version>1.0</version>
</dependency>
<!-- pom for this dependency is missing -->
<dependency>
<groupId>maven-test</groupId>
<artifactId>maven-test-z</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</project>
1.1
maven-components/maven-project/src/test/resources/local-repo/maven-test/poms/maven-test-b-1.0.pom
Index: maven-test-b-1.0.pom
===================================================================
<project>
<groupId>maven-test</groupId>
<artifactId>maven-test-b</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>maven-test</groupId>
<artifactId>maven-test-c</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>maven-test</groupId>
<artifactId>maven-test-d</artifactId>
<version>1.1</version>
</dependency>
</dependencies>
</project>
1.1
maven-components/maven-project/src/test/resources/local-repo/maven-test/poms/maven-test-d-1.1.pom
Index: maven-test-d-1.1.pom
===================================================================
<project>
<groupId>maven-test</groupId>
<artifactId>maven-test-d</artifactId>
<version>1.1</version>
</project>
1.1
maven-components/maven-project/src/test/resources/local-repo/maven-test/poms/maven-test-c-1.0.pom
Index: maven-test-c-1.0.pom
===================================================================
<project>
<groupId>maven-test</groupId>
<artifactId>maven-test-c</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>maven-test</groupId>
<artifactId>maven-test-d</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>maven-test</groupId>
<artifactId>maven-test-z</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</project>
1.1
maven-components/maven-project/src/test/resources/local-repo/maven-test/poms/maven-test-d-1.2.pom
Index: maven-test-d-1.2.pom
===================================================================
<project>
<groupId>maven-test</groupId>
<artifactId>maven-test-d/artifactId>
<version>1.1</version>
</project>
1.1
maven-components/maven-project/src/main/java/org/apache/maven/artifact/download/ArtifactDownloader.java
Index: ArtifactDownloader.java
===================================================================
package org.apache.maven.artifact.download;
import java.util.List;
import org.apache.maven.artifact.MavenArtifact;
import org.apache.maven.wagon.repository.Repository;
/**
* Component which downloads artifacts ([EMAIL PROTECTED]
org.apache.maven.artifact.MavenArtifact}) from
* remote repository (repositories) to the local repository
*
* @author <a href="mailto:[EMAIL PROTECTED]">Michal Maczka</a>
* @version $Id: ArtifactDownloader.java,v 1.1 2004/05/10 19:06:30 michal Exp $
*/
public interface ArtifactDownloader
{
/** Component role name*/
public static final String ROLE = ArtifactDownloader.class.getName( );
/**
* Downloads given <code>artifact</code> from the maven remote repositories
*
*
* @param artifact the artifact to retrieve from the repositories.
* @return true if the download is successful, <code>false</code> otherwise.
*/
public boolean getRemoteArtifact( MavenArtifact artifact, Repository
remoteRepository );
/**
*
* @param artifact
* @param repositories (List<Repository>)
* @return <code>true</code> if the from any of the repositories were succesful,
<code>false</code> otherwise
*/
public boolean getRemoteArtifact( MavenArtifact artifact, List repositories );
}
1.1
maven-components/maven-project/src/main/java/org/apache/maven/artifact/download/DefaultArtifactDownloader.java
Index: DefaultArtifactDownloader.java
===================================================================
package org.apache.maven.artifact.download;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.apache.maven.artifact.MavenArtifact;
import org.apache.maven.artifact.factory.MavenArtifactFactory;
import org.apache.maven.wagon.Wagon;
import org.apache.maven.wagon.manager.WagonManager;
import org.apache.maven.wagon.repository.Repository;
import org.codehaus.plexus.logging.AbstractLogEnabled;
/**
* Class resposible to download [EMAIL PROTECTED]
org.apache.maven.artifact.Artifact} from
* remote repository (repositories) to local repository
*
* @author <a href="mailto:[EMAIL PROTECTED]">Michal Maczka</a>
* @version $Id: DefaultArtifactDownloader.java,v 1.1 2004/05/10 19:06:30 michal Exp
$
*/
public class DefaultArtifactDownloader extends AbstractLogEnabled implements
ArtifactDownloader
{
private WagonManager wagonManager;
/**
*
*/
private MavenArtifactFactory artifactFactory;
/**
* @see
org.apache.maven.artifact.download.ArtifactDownloader#getRemoteArtifact(org.apache.maven.artifact.Artifact,
org.apache.maven.project.Project)
*/
public boolean getRemoteArtifact( MavenArtifact artifact, List repositories )
{
boolean downloaded = false;
for ( Iterator iter = repositories.iterator(); iter.hasNext(); )
{
try
{
Repository repository = ( Repository ) iter.next( );
downloaded = getRemoteArtifact( artifact, repository );
if ( downloaded )
{
break;
}
}
catch ( Exception e )
{
continue;
}
}
return downloaded;
}
/**
*
* @see
org.apache.maven.artifact.download.ArtifactDownloader#getRemoteArtifact(org.apache.maven.artifact.Artifact,
org.apache.maven.project.Project)
*/
public boolean getRemoteArtifact( MavenArtifact artifact, Repository repository
)
{
Wagon wagon = null;
try
{
wagon = wagonManager.getWagon( repository.getProtocol() );
wagon.connect( repository );
return get( wagon, artifact );
}
catch ( Exception e )
{
//@todo improve error handling and reporting
getLogger().info( "Failed to download: " + artifact.getUrlPath() + "
from " + repository.getUrl(), e );
return false;
}
finally
{
if ( wagon != null )
{
try
{
wagonManager.releaseWagon( wagon );
}
catch( Exception e )
{
getLogger().error( "Failed to release wagon", e );
}
}
}
}
/**
* @param wagon
* @param artifact
*/
private boolean get( Wagon wagon, MavenArtifact artifact )
{
getLogger().info( "Trying to download: " + artifact.getUrlPath() + " from "
+ wagon.getRepository().getUrl() );
String source = artifact.getUrlPath();
File file = artifact.getFile( );
try
{
wagon.get( source, file );
}
catch( Exception e)
{
getLogger().info( artifact.getUrlPath() + " was not found in " +
wagon.getRepository().getUrl() );
// that is imo bug in wagon.
//When wagon cannot download it should delete a file or even don't
attempt to create it
if ( file.exists() )
{
file.delete();
}
return false;
}
getLogger().info( artifact.getUrlPath() + " was found in " +
wagon.getRepository().getUrl() );
String checksum = artifact.getChecksumUrlPath();
File checksumFile = artifact.getChecksumFile( );
try
{
getLogger().info( "Trying to download md5 cheksum: " +
artifact.getChecksumUrlPath() + " from " + wagon.getRepository().getUrl() );
wagon.get( checksum, checksumFile );
}
catch ( Exception e )
{
//we can live without md5 checksum file
if ( checksumFile.exists() )
{
checksumFile.delete();
}
}
return true;
}
}
1.1
maven-components/maven-project/src/test/resources/remote-repo-2/maven-test/jars/maven-test-z-1.0.jar
Index: maven-test-z-1.0.jar
===================================================================
foo
1.4 +1 -1
maven-components/maven-project/src/test/java/org/apache/maven/project/AbstractProjectTestCase.java
Index: AbstractProjectTestCase.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-project/src/test/java/org/apache/maven/project/AbstractProjectTestCase.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AbstractProjectTestCase.java 8 May 2004 12:19:22 -0000 1.3
+++ AbstractProjectTestCase.java 10 May 2004 19:06:30 -0000 1.4
@@ -7,7 +7,7 @@
{
protected MavenProjectBuilder projectBuilder;
- private String localRepository = System.getProperty( "basedir" ) +
"/src/test/resources/maven-repo-local";
+ private String localRepository = System.getProperty( "basedir" ) +
"/src/test/resources/local-repo";
public AbstractProjectTestCase( String testName )
{
1.3 +3 -8
maven-components/maven-project/src/main/java/org/apache/maven/artifact/collector/DefaultArtifactCollector.java
Index: DefaultArtifactCollector.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-project/src/main/java/org/apache/maven/artifact/collector/DefaultArtifactCollector.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DefaultArtifactCollector.java 8 May 2004 12:19:23 -0000 1.2
+++ DefaultArtifactCollector.java 10 May 2004 19:06:30 -0000 1.3
@@ -60,8 +60,6 @@
List queue = new LinkedList();
queue.add( project );
-
- System.out.println( "size: " + queue.size() );
while ( !queue.isEmpty() )
{
@@ -147,11 +145,8 @@
//this shows that some settings should be detached from
project.
childProject.setLocalRepository(
currentProject.getLocalRepository() );
-
-
}
-
// the pom for given dependency exisit we will enqueue it
queue.add( childProject );
@@ -173,13 +168,13 @@
MavenProject retValue = null;
- MavenArtifact pomArtifact = artifactResolver.getArtifact( dependency,
"pom", project );
+ MavenArtifact pomArtifact = artifactResolver.getPomArtifact( dependency,
project );
if ( pomArtifact != null )
{
try
{
- retValue = projectBuilder.build( pomArtifact.getFile(
project.getLocalRepository() ) );
+ retValue = projectBuilder.build( pomArtifact.getFile( ) );
}
catch ( ProjectBuildingException e )
{
1.1
maven-components/maven-project/src/test/resources/remote-repo-1/maven-test/poms/maven-test-b-1.0.pom
Index: maven-test-b-1.0.pom
===================================================================
<project>
<groupId>maven-test</groupId>
<artifactId>maven-test-a</artifactId>
<currentVersion>1.0</currentVersion>
<dependencies>
<dependency>
<groupId>maven-test</groupId>
<artifactId>maven-test-b</artifactId>
<version>1.0</version>
</dependency>
<!-- pom for this dependency is missing -->
<dependency>
<groupId>maven-test</groupId>
<artifactId>maven-test-z</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</project>
1.2 +2 -4
maven-components/maven-project/src/test/java/org/apache/maven/artifact/collector/DefaultArtifactCollectorTest.java
Index: DefaultArtifactCollectorTest.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-project/src/test/java/org/apache/maven/artifact/collector/DefaultArtifactCollectorTest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultArtifactCollectorTest.java 8 May 2004 12:19:23 -0000 1.1
+++ DefaultArtifactCollectorTest.java 10 May 2004 19:06:30 -0000 1.2
@@ -32,9 +32,7 @@
public class DefaultArtifactCollectorTest
extends AbstractProjectTestCase
{
-
-
-
+
private ArtifactCollector artifactCollector;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]