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/08/26 03:24:29 UTC
svn commit: r688932 [1/2] - in /maven/components/branches/maven-2.0.x: ./
apache-maven/ maven-artifact-manager/
maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/
maven-artifact-manager/src/test/java/org/apache/maven/artifact/manag...
Author: jdcasey
Date: Mon Aug 25 18:24:27 2008
New Revision: 688932
URL: http://svn.apache.org/viewvc?rev=688932&view=rev
Log:
Reinstating all changes since 2.0.9 that aren't associated with the two major changes related to concrete/dynamic build sections and POM interpolation.
Added:
maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/StringWagon.java
- copied, changed from r675074, maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/StringWagon.java
maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/WagonString.java
- copied unchanged from r675074, maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/WagonString.java
Modified:
maven/components/branches/maven-2.0.x/ (props changed)
maven/components/branches/maven-2.0.x/apache-maven/pom.xml
maven/components/branches/maven-2.0.x/maven-artifact-manager/pom.xml
maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java
maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java
maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/resources/org/apache/maven/artifact/manager/DefaultWagonManagerTest.xml
maven/components/branches/maven-2.0.x/maven-artifact-test/pom.xml
maven/components/branches/maven-2.0.x/maven-artifact-test/src/main/java/org/apache/maven/artifact/test/ArtifactTestCase.java
maven/components/branches/maven-2.0.x/maven-artifact/pom.xml
maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataSource.java
maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java
maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java
maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
maven/components/branches/maven-2.0.x/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java
maven/components/branches/maven-2.0.x/maven-core-it-runner/pom.xml
maven/components/branches/maven-2.0.x/maven-core/pom.xml
maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/MavenArtifactFilterManager.java
maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
maven/components/branches/maven-2.0.x/maven-core/src/main/resources/META-INF/plexus/components.xml
maven/components/branches/maven-2.0.x/maven-error-diagnostics/pom.xml
maven/components/branches/maven-2.0.x/maven-model/pom.xml
maven/components/branches/maven-2.0.x/maven-monitor/pom.xml
maven/components/branches/maven-2.0.x/maven-plugin-api/pom.xml
maven/components/branches/maven-2.0.x/maven-plugin-descriptor/pom.xml
maven/components/branches/maven-2.0.x/maven-plugin-parameter-documenter/pom.xml
maven/components/branches/maven-2.0.x/maven-plugin-registry/pom.xml
maven/components/branches/maven-2.0.x/maven-profile/pom.xml
maven/components/branches/maven-2.0.x/maven-project/pom.xml
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/ProjectUtils.java
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/TestArtifactResolver.java
maven/components/branches/maven-2.0.x/maven-reporting/maven-reporting-api/pom.xml
maven/components/branches/maven-2.0.x/maven-reporting/pom.xml
maven/components/branches/maven-2.0.x/maven-repository-metadata/pom.xml
maven/components/branches/maven-2.0.x/maven-script/maven-script-ant/pom.xml
maven/components/branches/maven-2.0.x/maven-script/maven-script-beanshell/pom.xml
maven/components/branches/maven-2.0.x/maven-script/pom.xml
maven/components/branches/maven-2.0.x/maven-settings/pom.xml
maven/components/branches/maven-2.0.x/maven-toolchain/pom.xml
maven/components/branches/maven-2.0.x/pom.xml
Propchange: maven/components/branches/maven-2.0.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Aug 25 18:24:27 2008
@@ -0,0 +1 @@
+/maven/components/branches/maven-2.0.x:533160,636838,645583,645642,647357,649903,657432,659677,662033,662251,669665,670358,673499,673905,674059,675074,675087,675096,675375,675380,680604,682055
Modified: maven/components/branches/maven-2.0.x/apache-maven/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/apache-maven/pom.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/apache-maven/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/apache-maven/pom.xml Mon Aug 25 18:24:27 2008
@@ -23,7 +23,7 @@
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
- <version>2.0.11-SNAPSHOT</version>
+ <version>2.0.10-SNAPSHOT</version>
</parent>
<artifactId>apache-maven</artifactId>
Modified: maven/components/branches/maven-2.0.x/maven-artifact-manager/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact-manager/pom.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact-manager/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact-manager/pom.xml Mon Aug 25 18:24:27 2008
@@ -23,7 +23,7 @@
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
- <version>2.0.11-SNAPSHOT</version>
+ <version>2.0.10-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-artifact-manager</artifactId>
Modified: maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java Mon Aug 25 18:24:27 2008
@@ -49,6 +49,7 @@
import org.apache.maven.wagon.events.TransferListener;
import org.apache.maven.wagon.observers.ChecksumObserver;
import org.apache.maven.wagon.proxy.ProxyInfo;
+import org.apache.maven.wagon.proxy.ProxyInfoProvider;
import org.apache.maven.wagon.repository.Repository;
import org.apache.maven.wagon.repository.RepositoryPermissions;
import org.codehaus.plexus.PlexusConstants;
@@ -239,7 +240,11 @@
}
}
- wagon.connect( artifactRepository, getAuthenticationInfo( repository.getId() ), getProxy( protocol ) );
+ wagon.connect( artifactRepository, getAuthenticationInfo( repository.getId() ), new ProxyInfoProvider(){
+ public ProxyInfo getProxyInfo(String protocol) {
+ return (ProxyInfo) proxies.get( protocol );
+ }
+ });
wagon.put( source, remotePath );
@@ -433,7 +438,11 @@
try
{
wagon.connect( new Repository( repository.getId(), repository.getUrl() ),
- getAuthenticationInfo( repository.getId() ), getProxy( protocol ) );
+ getAuthenticationInfo( repository.getId() ), new ProxyInfoProvider(){
+ public ProxyInfo getProxyInfo(String protocol) {
+ return (ProxyInfo) proxies.get( protocol );
+ }
+ });
boolean firstRun = true;
boolean retry = true;
@@ -465,10 +474,20 @@
downloaded = true;
}
}
- else
+ catch ( NoSuchAlgorithmException e )
+ {
+ throw new TransferFailedException( "Unable to add checksum methods: " + e.getMessage(), e );
+ }
+ finally
{
- wagon.get( remotePath, temp );
- downloaded = true;
+ if ( md5ChecksumObserver != null )
+ {
+ wagon.removeTransferListener( md5ChecksumObserver );
+ }
+ if ( sha1ChecksumObserver != null )
+ {
+ wagon.removeTransferListener( sha1ChecksumObserver );
+ }
}
if ( downloaded )
Modified: maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java Mon Aug 25 18:24:27 2008
@@ -19,14 +19,31 @@
* under the License.
*/
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DefaultArtifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
+import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.wagon.ResourceDoesNotExistException;
+import org.apache.maven.wagon.TransferFailedException;
import org.apache.maven.wagon.UnsupportedProtocolException;
import org.apache.maven.wagon.Wagon;
+import org.apache.maven.wagon.authorization.AuthorizationException;
+import org.apache.maven.wagon.events.TransferListener;
+import org.apache.maven.wagon.observers.Debug;
import org.apache.maven.wagon.repository.Repository;
import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.xml.Xpp3Dom;
+import org.easymock.MockControl;
/**
* @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
@@ -35,17 +52,57 @@
public class DefaultWagonManagerTest
extends PlexusTestCase
{
+ private DefaultWagonManager wagonManager;
+
+ private TransferListener transferListener = new Debug();
- private WagonManager wagonManager;
+ private ArtifactFactory artifactFactory;
protected void setUp()
throws Exception
{
super.setUp();
- wagonManager = (WagonManager) lookup( WagonManager.ROLE );
+ wagonManager = (DefaultWagonManager) lookup( WagonManager.ROLE );
+
+ artifactFactory = (ArtifactFactory) lookup( ArtifactFactory.ROLE );
+ }
+
+ private Artifact createTestPomArtifact( String directory )
+ throws IOException
+ {
+ File testData = getTestFile( directory );
+ FileUtils.deleteDirectory( testData );
+ testData.mkdirs();
+
+ Artifact artifact = artifactFactory.createProjectArtifact( "test", "test", "1.0" );
+ artifact.setFile( new File( testData, "test-1.0.pom" ) );
+ assertFalse( artifact.getFile().exists() );
+ return artifact;
+ }
+
+ public void testGetArtifactSha1MissingMd5Present()
+ throws IOException, UnsupportedProtocolException, TransferFailedException, ResourceDoesNotExistException
+ {
+ Artifact artifact = createTestPomArtifact( "target/test-data/get-remote-artifact" );
+
+ ArtifactRepository repo = createStringRepo();
+
+ StringWagon wagon = (StringWagon) wagonManager.getWagon( "string" );
+ wagon.addExpectedContent( repo.getLayout().pathOf( artifact ), "expected" );
+ wagon.addExpectedContent( repo.getLayout().pathOf( artifact ) + ".md5", "bad_checksum" );
+
+ wagonManager.getArtifact( artifact, repo );
+
+ assertTrue( artifact.getFile().exists() );
}
+ private ArtifactRepository createStringRepo()
+ {
+ ArtifactRepository repo =
+ new DefaultArtifactRepository( "id", "string://url", new ArtifactRepositoryLayoutStub() );
+ return repo;
+ }
/**
* checks the handling of urls
@@ -53,27 +110,26 @@
public void testExternalURL()
{
DefaultWagonManager mgr = new DefaultWagonManager();
- assertTrue(mgr.isExternalRepo( getRepo( "foo", "http://somehost" ) ));
- assertTrue(mgr.isExternalRepo( getRepo( "foo", "http://somehost:9090/somepath" ) ));
- assertTrue(mgr.isExternalRepo( getRepo( "foo", "ftp://somehost" ) ));
- assertTrue(mgr.isExternalRepo( getRepo( "foo", "http://192.168.101.1" ) ));
- assertTrue(mgr.isExternalRepo( getRepo( "foo", "http://" ) ));
- //these are local
- assertFalse(mgr.isExternalRepo( getRepo( "foo", "http://localhost:8080" ) ));
- assertFalse(mgr.isExternalRepo( getRepo( "foo", "http://127.0.0.1:9090" ) ));
- assertFalse(mgr.isExternalRepo( getRepo( "foo", "file://localhost/somepath" ) ));
- assertFalse(mgr.isExternalRepo( getRepo( "foo", "file://localhost/D:/somepath" ) ));
- assertFalse(mgr.isExternalRepo( getRepo( "foo", "http://localhost" ) ));
- assertFalse(mgr.isExternalRepo( getRepo( "foo", "http://127.0.0.1" ) ));
- assertFalse(mgr.isExternalRepo( getRepo( "foo", "file:///somepath" ) ));
- assertFalse(mgr.isExternalRepo( getRepo( "foo", "file://D:/somepath" ) ));
-
- //not a proper url so returns false;
- assertFalse(mgr.isExternalRepo( getRepo( "foo", "192.168.101.1" ) ));
- assertFalse(mgr.isExternalRepo( getRepo( "foo", "" ) ));
+ assertTrue( mgr.isExternalRepo( getRepo( "foo", "http://somehost" ) ) );
+ assertTrue( mgr.isExternalRepo( getRepo( "foo", "http://somehost:9090/somepath" ) ) );
+ assertTrue( mgr.isExternalRepo( getRepo( "foo", "ftp://somehost" ) ) );
+ assertTrue( mgr.isExternalRepo( getRepo( "foo", "http://192.168.101.1" ) ) );
+ assertTrue( mgr.isExternalRepo( getRepo( "foo", "http://" ) ) );
+ // these are local
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "http://localhost:8080" ) ) );
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "http://127.0.0.1:9090" ) ) );
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "file://localhost/somepath" ) ) );
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "file://localhost/D:/somepath" ) ) );
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "http://localhost" ) ) );
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "http://127.0.0.1" ) ) );
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "file:///somepath" ) ) );
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "file://D:/somepath" ) ) );
+
+ // not a proper url so returns false;
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "192.168.101.1" ) ) );
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "" ) ) );
}
-
/**
* Check that lookups with exact matches work and that no matches don't corrupt the repo.
*/
@@ -81,20 +137,19 @@
{
wagonManager.addMirror( "a", "a", "http://a" );
wagonManager.addMirror( "b", "b", "http://b" );
-
+
ArtifactRepository repo = null;
- repo = wagonManager.getMirrorRepository( getRepo("a","http://a.a" ));
+ repo = wagonManager.getMirrorRepository( getRepo( "a", "http://a.a" ) );
assertEquals( "http://a", repo.getUrl() );
-
- repo = wagonManager.getMirrorRepository( getRepo("b","http://a.a" ));
+
+ repo = wagonManager.getMirrorRepository( getRepo( "b", "http://a.a" ) );
assertEquals( "http://b", repo.getUrl() );
-
- repo = wagonManager.getMirrorRepository( getRepo("c","http://c.c") );
+
+ repo = wagonManager.getMirrorRepository( getRepo( "c", "http://c.c" ) );
assertEquals( "http://c.c", repo.getUrl() );
-
-
+
}
-
+
/**
* Check that wildcards don't override exact id matches.
*/
@@ -103,107 +158,104 @@
wagonManager.addMirror( "a", "a", "http://a" );
wagonManager.addMirror( "b", "b", "http://b" );
wagonManager.addMirror( "c", "*", "http://wildcard" );
-
+
ArtifactRepository repo = null;
- repo = wagonManager.getMirrorRepository( getRepo("a","http://a.a" ));
+ repo = wagonManager.getMirrorRepository( getRepo( "a", "http://a.a" ) );
assertEquals( "http://a", repo.getUrl() );
-
- repo = wagonManager.getMirrorRepository( getRepo("b","http://a.a" ));
+
+ repo = wagonManager.getMirrorRepository( getRepo( "b", "http://a.a" ) );
assertEquals( "http://b", repo.getUrl() );
-
- repo = wagonManager.getMirrorRepository( getRepo("c","http://c.c") );
- assertEquals( "http://wildcard", repo.getUrl() );
-
+
+ repo = wagonManager.getMirrorRepository( getRepo( "c", "http://c.c" ) );
+ assertEquals( "http://wildcard", repo.getUrl() );
+
}
/**
- * Check that patterns are processed correctly
- * Valid patterns:
- * * = everything
- * external:* = everything not on the localhost and not file based.
- * repo,repo1 = repo or repo1
- * *,!repo1 = everything except repo1
- *
+ * Check that patterns are processed correctly Valid patterns: * = everything external:* = everything not on the
+ * localhost and not file based. repo,repo1 = repo or repo1 *,!repo1 = everything except repo1
*/
public void testPatterns()
{
DefaultWagonManager mgr = new DefaultWagonManager();
-
- assertTrue(mgr.matchPattern( getRepo("a"), "*" ));
- assertTrue(mgr.matchPattern( getRepo("a"), "*," ));
- assertTrue(mgr.matchPattern( getRepo("a"), ",*," ));
- assertTrue(mgr.matchPattern( getRepo("a"), "*," ));
-
- assertTrue(mgr.matchPattern( getRepo("a"), "a" ));
- assertTrue(mgr.matchPattern( getRepo("a"), "a," ));
- assertTrue(mgr.matchPattern( getRepo("a"), ",a," ));
- assertTrue(mgr.matchPattern( getRepo("a"), "a," ));
-
- assertFalse(mgr.matchPattern( getRepo("b"), "a" ));
- assertFalse(mgr.matchPattern( getRepo("b"), "a," ));
- assertFalse(mgr.matchPattern( getRepo("b"), ",a" ));
- assertFalse(mgr.matchPattern( getRepo("b"), ",a," ));
-
- assertTrue(mgr.matchPattern( getRepo("a"), "a,b" ));
- assertTrue(mgr.matchPattern( getRepo("b"), "a,b" ));
-
- assertFalse(mgr.matchPattern( getRepo("c"), "a,b" ));
-
- assertTrue(mgr.matchPattern( getRepo("a"), "*" ));
- assertTrue(mgr.matchPattern( getRepo("a"), "*,b" ));
- assertTrue(mgr.matchPattern( getRepo("a"), "*,!b" ));
-
- assertFalse(mgr.matchPattern( getRepo("a"), "*,!a" ));
- assertFalse(mgr.matchPattern( getRepo("a"), "!a,*" ));
-
- assertTrue(mgr.matchPattern( getRepo("c"), "*,!a" ));
- assertTrue(mgr.matchPattern( getRepo("c"), "!a,*" ));
-
- assertFalse(mgr.matchPattern( getRepo("c"), "!a,!c" ));
- assertFalse(mgr.matchPattern( getRepo("d"), "!a,!c*" ));
+
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "*" ) );
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "*," ) );
+ assertTrue( mgr.matchPattern( getRepo( "a" ), ",*," ) );
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "*," ) );
+
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "a" ) );
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "a," ) );
+ assertTrue( mgr.matchPattern( getRepo( "a" ), ",a," ) );
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "a," ) );
+
+ assertFalse( mgr.matchPattern( getRepo( "b" ), "a" ) );
+ assertFalse( mgr.matchPattern( getRepo( "b" ), "a," ) );
+ assertFalse( mgr.matchPattern( getRepo( "b" ), ",a" ) );
+ assertFalse( mgr.matchPattern( getRepo( "b" ), ",a," ) );
+
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "a,b" ) );
+ assertTrue( mgr.matchPattern( getRepo( "b" ), "a,b" ) );
+
+ assertFalse( mgr.matchPattern( getRepo( "c" ), "a,b" ) );
+
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "*" ) );
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "*,b" ) );
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "*,!b" ) );
+
+ assertFalse( mgr.matchPattern( getRepo( "a" ), "*,!a" ) );
+ assertFalse( mgr.matchPattern( getRepo( "a" ), "!a,*" ) );
+
+ assertTrue( mgr.matchPattern( getRepo( "c" ), "*,!a" ) );
+ assertTrue( mgr.matchPattern( getRepo( "c" ), "!a,*" ) );
+
+ assertFalse( mgr.matchPattern( getRepo( "c" ), "!a,!c" ) );
+ assertFalse( mgr.matchPattern( getRepo( "d" ), "!a,!c*" ) );
}
-
+
/**
- * make sure the external if is fully exercised. We can assume file and ips are also handled because they
- * have a separate test above.
+ * make sure the external if is fully exercised. We can assume file and ips are also handled because they have a
+ * separate test above.
*/
public void testPatternsWithExternal()
{
DefaultWagonManager mgr = new DefaultWagonManager();
- assertTrue( mgr.matchPattern( getRepo( "a","http://localhost" ), "*" ) );
- assertFalse( mgr.matchPattern( getRepo( "a","http://localhost" ), "external:*" ) );
-
- assertTrue( mgr.matchPattern( getRepo( "a","http://localhost" ), "external:*,a" ) );
- assertFalse( mgr.matchPattern( getRepo( "a","http://localhost" ), "external:*,!a" ) );
- assertTrue( mgr.matchPattern( getRepo( "a","http://localhost" ), "a,external:*" ) );
- assertFalse( mgr.matchPattern( getRepo( "a","http://localhost" ), "!a,external:*" ) );
-
- assertFalse( mgr.matchPattern( getRepo( "c","http://localhost" ), "!a,external:*" ) );
- assertTrue( mgr.matchPattern( getRepo( "c","http://somehost" ), "!a,external:*" ) );
+ assertTrue( mgr.matchPattern( getRepo( "a", "http://localhost" ), "*" ) );
+ assertFalse( mgr.matchPattern( getRepo( "a", "http://localhost" ), "external:*" ) );
+
+ assertTrue( mgr.matchPattern( getRepo( "a", "http://localhost" ), "external:*,a" ) );
+ assertFalse( mgr.matchPattern( getRepo( "a", "http://localhost" ), "external:*,!a" ) );
+ assertTrue( mgr.matchPattern( getRepo( "a", "http://localhost" ), "a,external:*" ) );
+ assertFalse( mgr.matchPattern( getRepo( "a", "http://localhost" ), "!a,external:*" ) );
+
+ assertFalse( mgr.matchPattern( getRepo( "c", "http://localhost" ), "!a,external:*" ) );
+ assertTrue( mgr.matchPattern( getRepo( "c", "http://somehost" ), "!a,external:*" ) );
}
+
/**
* Build an ArtifactRepository object.
+ *
* @param id
* @param url
* @return
*/
- private ArtifactRepository getRepo (String id, String url)
+ private ArtifactRepository getRepo( String id, String url )
{
- return (ArtifactRepository) new DefaultArtifactRepository(id,url,new DefaultRepositoryLayout());
+ return new DefaultArtifactRepository( id, url, new DefaultRepositoryLayout() );
}
-
+
/**
* Build an ArtifactRepository object.
+ *
* @param id
- * @param url
* @return
*/
- private ArtifactRepository getRepo (String id)
+ private ArtifactRepository getRepo( String id )
{
- return getRepo(id,"http://something");
+ return getRepo( id, "http://something" );
}
-
+
public void testDefaultWagonManager()
throws Exception
{
@@ -215,6 +267,8 @@
assertWagon( "c" );
+ assertWagon( "string" );
+
try
{
assertWagon( "d" );
@@ -223,7 +277,7 @@
}
catch ( UnsupportedProtocolException e )
{
- //ok
+ // ok
assertTrue( true );
}
}
@@ -247,7 +301,7 @@
}
catch ( UnsupportedProtocolException e )
{
- //ok
+ // ok
assertTrue( true );
}
}
@@ -261,21 +315,121 @@
repository.setProtocol( null );
- Wagon wagon = (Wagon) wagonManager.getWagon( repository );
+ Wagon wagon = wagonManager.getWagon( repository );
fail( "Expected :" + UnsupportedProtocolException.class.getName() );
}
catch ( UnsupportedProtocolException e )
{
- //ok
+ // ok
assertTrue( true );
}
}
+ /**
+ * Checks the verification of checksums.
+ */
+ public void testChecksumVerification()
+ throws Exception
+ {
+ ArtifactRepositoryPolicy policy =
+ new ArtifactRepositoryPolicy( true, ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS,
+ ArtifactRepositoryPolicy.CHECKSUM_POLICY_FAIL );
+ ArtifactRepository repo =
+ new DefaultArtifactRepository( "id", "string://url", new ArtifactRepositoryLayoutStub(), policy, policy );
+
+ Artifact artifact =
+ new DefaultArtifact( "sample.group", "sample-art", VersionRange.createFromVersion( "1.0" ), "scope",
+ "jar", "classifier", null );
+ artifact.setFile( getTestFile( "target/sample-art" ) );
+
+ StringWagon wagon = (StringWagon) wagonManager.getWagon( "string" );
+
+ wagon.clearExpectedContent();
+ wagon.addExpectedContent( "path", "lower-case-checksum" );
+ wagon.addExpectedContent( "path.sha1", "2a25dc564a3b34f68237fc849066cbc7bb7a36a1" );
+
+ try
+ {
+ wagonManager.getArtifact( artifact, repo );
+ }
+ catch ( ChecksumFailedException e )
+ {
+ fail( "Checksum verification did not pass: " + e.getMessage() );
+ }
+
+ wagon.clearExpectedContent();
+ wagon.addExpectedContent( "path", "upper-case-checksum" );
+ wagon.addExpectedContent( "path.sha1", "B7BB97D7D0B9244398D9B47296907F73313663E6" );
+
+ try
+ {
+ wagonManager.getArtifact( artifact, repo );
+ }
+ catch ( ChecksumFailedException e )
+ {
+ fail( "Checksum verification did not pass: " + e.getMessage() );
+ }
+
+ wagon.clearExpectedContent();
+ wagon.addExpectedContent( "path", "expected-failure" );
+ wagon.addExpectedContent( "path.sha1", "b7bb97d7d0b9244398d9b47296907f73313663e6" );
+
+ try
+ {
+ wagonManager.getArtifact( artifact, repo );
+ fail( "Checksum verification did not fail" );
+ }
+ catch ( ChecksumFailedException e )
+ {
+ // expected
+ }
+
+ wagon.clearExpectedContent();
+ wagon.addExpectedContent( "path", "lower-case-checksum" );
+ wagon.addExpectedContent( "path.md5", "50b2cf50a103a965efac62b983035cac" );
+
+ try
+ {
+ wagonManager.getArtifact( artifact, repo );
+ }
+ catch ( ChecksumFailedException e )
+ {
+ fail( "Checksum verification did not pass: " + e.getMessage() );
+ }
+
+ wagon.clearExpectedContent();
+ wagon.addExpectedContent( "path", "upper-case-checksum" );
+ wagon.addExpectedContent( "path.md5", "842F568FCCFEB7E534DC72133D42FFDC" );
+
+ try
+ {
+ wagonManager.getArtifact( artifact, repo );
+ }
+ catch ( ChecksumFailedException e )
+ {
+ fail( "Checksum verification did not pass: " + e.getMessage() );
+ }
+
+ wagon.clearExpectedContent();
+ wagon.addExpectedContent( "path", "expected-failure" );
+ wagon.addExpectedContent( "path.md5", "b7bb97d7d0b9244398d9b47296907f73313663e6" );
+
+ try
+ {
+ wagonManager.getArtifact( artifact, repo );
+ fail( "Checksum verification did not fail" );
+ }
+ catch ( ChecksumFailedException e )
+ {
+ // expected
+ }
+ }
+
private void assertWagon( String protocol )
throws Exception
{
- Wagon wagon = (Wagon) wagonManager.getWagon( protocol );
+ Wagon wagon = wagonManager.getWagon( protocol );
assertNotNull( "Check wagon, protocol=" + protocol, wagon );
}
@@ -308,4 +462,23 @@
assertEquals( "Check configuration for wagon, protocol=" + protocol, s, wagon.getConfigurableField() );
}
+ private final class ArtifactRepositoryLayoutStub
+ implements ArtifactRepositoryLayout
+ {
+ public String pathOfRemoteRepositoryMetadata( ArtifactMetadata metadata )
+ {
+ return "path";
+ }
+
+ public String pathOfLocalRepositoryMetadata( ArtifactMetadata metadata, ArtifactRepository repository )
+ {
+ return "path";
+ }
+
+ public String pathOf( Artifact artifact )
+ {
+ return "path";
+ }
+ }
+
}
Copied: maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/StringWagon.java (from r675074, maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/StringWagon.java)
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/StringWagon.java?p2=maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/StringWagon.java&p1=maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/StringWagon.java&r1=675074&r2=688932&rev=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/StringWagon.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/StringWagon.java Mon Aug 25 18:24:27 2008
@@ -19,6 +19,8 @@
* under the License.
*/
+import java.io.File;
+import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
@@ -31,6 +33,7 @@
import org.apache.maven.wagon.authentication.AuthenticationException;
import org.apache.maven.wagon.authorization.AuthorizationException;
import org.apache.maven.wagon.resource.Resource;
+import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.StringInputStream;
import org.codehaus.plexus.util.StringOutputStream;
@@ -46,7 +49,7 @@
public String[] getSupportedProtocols()
{
- return new String[] { "noop" };
+ return new String[] { "string" };
}
public void closeConnection()
@@ -64,6 +67,7 @@
if ( content != null )
{
resource.setContentLength( content.length() );
+ resource.setLastModified( System.currentTimeMillis() );
inputData.setInputStream( new StringInputStream( content ) );
}
@@ -83,4 +87,9 @@
throws ConnectionException, AuthenticationException
{
}
+
+ public void clearExpectedContent()
+ {
+ expectedContent.clear();
+ }
}
Modified: maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java Mon Aug 25 18:24:27 2008
@@ -130,6 +130,14 @@
{
throw new UnsupportedOperationException( "Cannot get available versions in this test case" );
}
+
+ public Artifact retrieveRelocatedArtifact( Artifact artifact,
+ ArtifactRepository localRepository,
+ List remoteRepositories )
+ throws ArtifactMetadataRetrievalException
+ {
+ return artifact;
+ }
};
ArtifactResolutionResult result = artifactResolver.resolveTransitively( Collections.singleton( g ),
@@ -186,6 +194,14 @@
{
throw new UnsupportedOperationException( "Cannot get available versions in this test case" );
}
+
+ public Artifact retrieveRelocatedArtifact( Artifact artifact,
+ ArtifactRepository localRepository,
+ List remoteRepositories )
+ throws ArtifactMetadataRetrievalException
+ {
+ return artifact;
+ }
};
ArtifactResolutionResult result = artifactResolver.resolveTransitively( Collections.singleton( i ),
Modified: maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/resources/org/apache/maven/artifact/manager/DefaultWagonManagerTest.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/resources/org/apache/maven/artifact/manager/DefaultWagonManagerTest.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/resources/org/apache/maven/artifact/manager/DefaultWagonManagerTest.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/resources/org/apache/maven/artifact/manager/DefaultWagonManagerTest.xml Mon Aug 25 18:24:27 2008
@@ -40,8 +40,13 @@
<implementation>org.apache.maven.artifact.manager.WagonC</implementation>
</component>
<component>
+ <role>org.apache.maven.wagon.Wagon</role>
+ <role-hint>string</role-hint>
+ <implementation>org.apache.maven.artifact.manager.StringWagon</implementation>
+ </component>
+ <component>
<role>org.apache.maven.artifact.repository.authentication.AuthenticationInfoProvider</role>
<implementation>org.apache.maven.artifact.repository.authentication.DummyAuthenticationInfoProvider</implementation>
</component>
</components>
-</plexus>
\ No newline at end of file
+</plexus>
Modified: maven/components/branches/maven-2.0.x/maven-artifact-test/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact-test/pom.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact-test/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact-test/pom.xml Mon Aug 25 18:24:27 2008
@@ -23,7 +23,7 @@
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
- <version>2.0.11-SNAPSHOT</version>
+ <version>2.0.10-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-artifact-test</artifactId>
Modified: maven/components/branches/maven-2.0.x/maven-artifact-test/src/main/java/org/apache/maven/artifact/test/ArtifactTestCase.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact-test/src/main/java/org/apache/maven/artifact/test/ArtifactTestCase.java?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact-test/src/main/java/org/apache/maven/artifact/test/ArtifactTestCase.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact-test/src/main/java/org/apache/maven/artifact/test/ArtifactTestCase.java Mon Aug 25 18:24:27 2008
@@ -26,9 +26,9 @@
import org.apache.maven.settings.Settings;
import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader;
import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.util.ReaderFactory;
import java.io.File;
-import java.io.FileReader;
/**
* Test case that builds standard artifact stuff like repositories.
@@ -51,12 +51,16 @@
{
super.setUp();
- File settingsFile = new File( System.getProperty( "user.home" ), ".m2/settings.xml" );
- String localRepo = null;
- if ( settingsFile.exists() )
+ String localRepo = System.getProperty( "maven.repo.local" );
+
+ if ( localRepo == null )
{
- Settings settings = new SettingsXpp3Reader().read( new FileReader( settingsFile ) );
- localRepo = settings.getLocalRepository();
+ File settingsFile = new File( System.getProperty( "user.home" ), ".m2/settings.xml" );
+ if ( settingsFile.exists() )
+ {
+ Settings settings = new SettingsXpp3Reader().read( ReaderFactory.newXmlReader( settingsFile ) );
+ localRepo = settings.getLocalRepository();
+ }
}
if ( localRepo == null )
{
Modified: maven/components/branches/maven-2.0.x/maven-artifact/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact/pom.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact/pom.xml Mon Aug 25 18:24:27 2008
@@ -23,7 +23,7 @@
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
- <version>2.0.11-SNAPSHOT</version>
+ <version>2.0.10-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-artifact</artifactId>
Modified: maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataSource.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataSource.java?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataSource.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataSource.java Mon Aug 25 18:24:27 2008
@@ -28,7 +28,7 @@
/**
* Provides some metadata operations, like querying the remote repository for a list of versions available for an
* artifact.
- *
+ *
* @author <a href="mailto:jason@maven.org">Jason van Zyl </a>
* @version $Id$
*/
@@ -40,10 +40,16 @@
throws ArtifactMetadataRetrievalException;
/**
+ * Resolve all relocations in the POM for this artifact, and return the new artifact coordinate.
+ */
+ Artifact retrieveRelocatedArtifact( Artifact artifact, ArtifactRepository localRepository, List remoteRepositories )
+ throws ArtifactMetadataRetrievalException;
+
+ /**
* Get a list of available versions for an artifact in the remote repository
- *
+ *
* @param artifact artifact we are interested in. Only <code>groupid</code> and <code>artifactId</code>
- * are needed, for instance the following code will work
+ * are needed, for instance the following code will work
* <code>artifactFactory.createProjectArtifact( "org.apache.maven", "maven", "" )</code>
* @param localRepository local repository
* @param remoteRepositories remote repositories, {@link List} $lt; {@link ArtifactRepository} >
Modified: maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java Mon Aug 25 18:24:27 2008
@@ -45,7 +45,7 @@
private String classifier;
- private Artifact artifact;
+ private Artifact artifact;
private List remoteRepositories;
@@ -200,6 +200,7 @@
}
}
+ sb.append( LS );
sb.append( constructArtifactPath( path, "" ) );
sb.append( LS );
return sb.toString();
Modified: maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java Mon Aug 25 18:24:27 2008
@@ -33,8 +33,6 @@
import java.util.ArrayList;
import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
@@ -73,7 +71,7 @@
ManagedVersionMap versionMap = getManagedVersionsMap( originatingArtifact, managedVersions );
- recurse( root, resolvedArtifacts, versionMap, localRepository, remoteRepositories, source, filter,
+ recurse( originatingArtifact, root, resolvedArtifacts, versionMap, localRepository, remoteRepositories, source, filter,
listeners );
Set set = new LinkedHashSet();
@@ -142,7 +140,7 @@
return versionMap;
}
- private void recurse( ResolutionNode node, Map resolvedArtifacts, ManagedVersionMap managedVersions,
+ private void recurse( Artifact originatingArtifact, ResolutionNode node, Map resolvedArtifacts, ManagedVersionMap managedVersions,
ArtifactRepository localRepository, List remoteRepositories, ArtifactMetadataSource source,
ArtifactFilter filter, List listeners )
throws CyclicDependencyException, ArtifactResolutionException, OverConstrainedVersionException
@@ -150,7 +148,7 @@
fireEvent( ResolutionListener.TEST_ARTIFACT, listeners, node );
Object key = node.getKey();
-
+
// TODO: Does this check need to happen here? Had to add the same call
// below when we iterate on child nodes -- will that suffice?
if ( managedVersions.containsKey( key ))
@@ -192,7 +190,7 @@
for ( int j = 0; j < 2; j++ )
{
Artifact resetArtifact = resetNodes[j].getArtifact();
-
+
//MNG-2123: if the previous node was not a range, then it wouldn't have any available
//versions. We just clobbered the selected version above. (why? i have no idea.)
//So since we are here and this is ranges we must go figure out the version (for a third time...)
@@ -220,7 +218,7 @@
}
}
//end hack
-
+
//MNG-2861: match version can return null
ArtifactVersion selectedVersion = resetArtifact.getVersionRange().matchVersion( resetArtifact.getAvailableVersions() );
if (selectedVersion != null)
@@ -231,7 +229,7 @@
{
throw new OverConstrainedVersionException(" Unable to find a version in "+ resetArtifact.getAvailableVersions()+" to match the range "+ resetArtifact.getVersionRange(), resetArtifact);
}
-
+
fireEvent( ResolutionListener.SELECT_VERSION_FROM_RANGE, listeners, resetNodes[j] );
}
}
@@ -296,85 +294,101 @@
Artifact artifact = child.getArtifact();
try
{
- Object childKey = child.getKey();
- if ( managedVersions.containsKey( childKey ) )
+ Object childKey;
+ do
{
- // If this child node is a managed dependency, ensure
- // we are using the dependency management version
- // of this child if applicable b/c we want to use the
- // managed version's POM, *not* any other version's POM.
- // We retrieve the POM below in the retrieval step.
- manageArtifact( child, managedVersions, listeners );
-
- // Also, we need to ensure that any exclusions it presents are
- // added to the artifact before we retrieve the metadata
- // for the artifact; otherwise we may end up with unwanted
- // dependencies.
- Artifact ma = (Artifact) managedVersions.get( childKey );
- ArtifactFilter managedExclusionFilter = ma.getDependencyFilter();
- if ( null != managedExclusionFilter )
+ childKey = child.getKey();
+
+ if ( managedVersions.containsKey( childKey ) )
{
- if ( null != artifact.getDependencyFilter() )
- {
- AndArtifactFilter aaf = new AndArtifactFilter();
- aaf.add( artifact.getDependencyFilter() );
- aaf.add( managedExclusionFilter );
- artifact.setDependencyFilter( aaf );
- }
- else
+ // If this child node is a managed dependency, ensure
+ // we are using the dependency management version
+ // of this child if applicable b/c we want to use the
+ // managed version's POM, *not* any other version's POM.
+ // We retrieve the POM below in the retrieval step.
+ manageArtifact( child, managedVersions, listeners );
+
+ // Also, we need to ensure that any exclusions it presents are
+ // added to the artifact before we retrieve the metadata
+ // for the artifact; otherwise we may end up with unwanted
+ // dependencies.
+ Artifact ma = (Artifact) managedVersions.get( childKey );
+ ArtifactFilter managedExclusionFilter = ma.getDependencyFilter();
+ if ( null != managedExclusionFilter )
{
- artifact.setDependencyFilter( managedExclusionFilter );
+ if ( null != artifact.getDependencyFilter() )
+ {
+ AndArtifactFilter aaf = new AndArtifactFilter();
+ aaf.add( artifact.getDependencyFilter() );
+ aaf.add( managedExclusionFilter );
+ artifact.setDependencyFilter( aaf );
+ }
+ else
+ {
+ artifact.setDependencyFilter( managedExclusionFilter );
+ }
}
}
- }
- if ( artifact.getVersion() == null )
- {
- // set the recommended version
- // TODO: maybe its better to just pass the range through to retrieval and use a transformation?
- ArtifactVersion version;
- if ( artifact.isSelectedVersionKnown() )
- {
- version = artifact.getSelectedVersion();
- }
- else
+ if ( artifact.getVersion() == null )
{
- //go find the version
- List versions = artifact.getAvailableVersions();
- if ( versions == null )
+ // set the recommended version
+ // TODO: maybe its better to just pass the range through to retrieval and use a transformation?
+ ArtifactVersion version;
+ if ( artifact.isSelectedVersionKnown() )
{
- versions = source.retrieveAvailableVersions( artifact, localRepository,
- remoteRepositories );
- artifact.setAvailableVersions( versions );
+ version = artifact.getSelectedVersion();
}
-
- VersionRange versionRange = artifact.getVersionRange();
-
- version = versionRange.matchVersion( versions );
-
- if ( version == null )
+ else
{
- if ( versions.isEmpty() )
+ //go find the version
+ List versions = artifact.getAvailableVersions();
+ if ( versions == null )
{
- throw new OverConstrainedVersionException(
- "No versions are present in the repository for the artifact with a range " +
- versionRange, artifact, remoteRepositories );
+ versions = source.retrieveAvailableVersions( artifact, localRepository,
+ childRemoteRepositories );
+ artifact.setAvailableVersions( versions );
}
- else
+
+ Collections.sort( versions );
+
+ VersionRange versionRange = artifact.getVersionRange();
+
+ version = versionRange.matchVersion( versions );
+
+ if ( version == null )
{
+ // Getting the dependency trail so it can be logged in the exception
+ artifact.setDependencyTrail( node.getDependencyTrail() );
+
+ if ( versions.isEmpty() )
+ {
+ throw new OverConstrainedVersionException(
+ "No versions are present in the repository for the artifact with a range " +
+ versionRange, artifact, childRemoteRepositories );
+ }
+
throw new OverConstrainedVersionException( "Couldn't find a version in " +
versions + " to match range " + versionRange, artifact,
- remoteRepositories );
+ childRemoteRepositories );
}
}
+
+ //this is dangerous because artifact.getSelectedVersion() can
+ //return null. However it is ok here because we first check if the
+ //selected version is known. As currently coded we can't get a null here.
+ artifact.selectVersion( version.toString() );
+ fireEvent( ResolutionListener.SELECT_VERSION_FROM_RANGE, listeners, child );
}
- //this is dangerous because artifact.getSelectedVersion() can
- //return null. However it is ok here because we first check if the
- //selected version is known. As currently coded we can't get a null here.
- artifact.selectVersion( version.toString() );
- fireEvent( ResolutionListener.SELECT_VERSION_FROM_RANGE, listeners, child );
+ Artifact relocated = source.retrieveRelocatedArtifact( artifact, localRepository, childRemoteRepositories );
+ if ( !artifact.equals( relocated ) )
+ {
+ artifact = relocated;
+ child.setArtifact( artifact );
+ }
}
+ while( !childKey.equals( child.getKey() ) );
artifact.setDependencyTrail( node.getDependencyTrail() );
ResolutionGroup rGroup = source.retrieve( artifact, localRepository, remoteRepositories );
@@ -405,7 +419,7 @@
e );
}
- recurse( child, resolvedArtifacts, managedVersions, localRepository, remoteRepositories, source,
+ recurse( originatingArtifact, child, resolvedArtifacts, managedVersions, localRepository, remoteRepositories, source,
filter, listeners );
}
}
Modified: maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java Mon Aug 25 18:24:27 2008
@@ -19,6 +19,11 @@
* under the License.
*/
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.artifact.versioning.ArtifactVersion;
+import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
@@ -26,14 +31,9 @@
import java.util.List;
import java.util.Set;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
-import org.apache.maven.artifact.versioning.ArtifactVersion;
-import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
-
public class ResolutionNode
{
- private final Artifact artifact;
+ private Artifact artifact;
private List children;
@@ -53,22 +53,27 @@
{
this.artifact = artifact;
this.remoteRepositories = remoteRepositories;
- this.depth = 0;
- this.parents = Collections.EMPTY_LIST;
- this.parent = null;
+ depth = 0;
+ parents = Collections.EMPTY_LIST;
+ parent = null;
}
public ResolutionNode( Artifact artifact, List remoteRepositories, ResolutionNode parent )
{
this.artifact = artifact;
this.remoteRepositories = remoteRepositories;
- this.depth = parent.depth + 1;
- this.parents = new ArrayList();
- this.parents.addAll( parent.parents );
- this.parents.add( parent.getKey() );
+ depth = parent.depth + 1;
+ parents = new ArrayList();
+ parents.addAll( parent.parents );
+ parents.add( parent.getKey() );
this.parent = parent;
}
+ public void setArtifact( Artifact artifact )
+ {
+ this.artifact = artifact;
+ }
+
public Artifact getArtifact()
{
return artifact;
@@ -142,13 +147,13 @@
//MNG-2123: null is a valid response to getSelectedVersion, don't
//assume it won't ever be.
if (selected != null)
- {
+ {
artifact.selectVersion( selected.toString() );
}
else
{
throw new OverConstrainedVersionException("Unable to get a selected Version for "+ artifact.getArtifactId(),artifact);
- }
+ }
}
ids.add( 0, artifact );
@@ -191,7 +196,7 @@
public void enable()
{
- this.active = true;
+ active = true;
// TODO: if it was null, we really need to go find them now... or is this taken care of by the ordering?
if ( children != null )
{
@@ -205,7 +210,7 @@
public void disable()
{
- this.active = false;
+ active = false;
if ( children != null )
{
for ( Iterator i = children.iterator(); i.hasNext(); )
Modified: maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java Mon Aug 25 18:24:27 2008
@@ -183,6 +183,7 @@
else
{
boolean fallback = false;
+
StringTokenizer tok = new StringTokenizer( part1, "." );
try
{
@@ -199,6 +200,12 @@
{
fallback = true;
}
+
+ // string tokenzier won't detect these and ignores them
+ if ( part1.indexOf( ".." ) >= 0 || part1.startsWith( "." ) || part1.endsWith( "." ) )
+ {
+ fallback = true;
+ }
}
catch ( NumberFormatException e )
{
Modified: maven/components/branches/maven-2.0.x/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java Mon Aug 25 18:24:27 2008
@@ -1037,5 +1037,13 @@
artifactVersions.add( new DefaultArtifactVersion( spec.artifact.getVersion() ) );
}
}
+
+ public Artifact retrieveRelocatedArtifact( Artifact artifact,
+ ArtifactRepository localRepository,
+ List remoteRepositories )
+ throws ArtifactMetadataRetrievalException
+ {
+ return artifact;
+ }
}
}
Modified: maven/components/branches/maven-2.0.x/maven-core-it-runner/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-core-it-runner/pom.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-core-it-runner/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-core-it-runner/pom.xml Mon Aug 25 18:24:27 2008
@@ -20,9 +20,11 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
-
- <groupId>org.apache.maven</groupId>
- <version>2.0.11-SNAPSHOT</version>
+ <parent>
+ <artifactId>maven</artifactId>
+ <groupId>org.apache.maven</groupId>
+ <version>2.0.10-SNAPSHOT</version>
+ </parent>
<artifactId>maven-core-it-runner</artifactId>
<name>Integration Test Executor</name>
Modified: maven/components/branches/maven-2.0.x/maven-core/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-core/pom.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-core/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-core/pom.xml Mon Aug 25 18:24:27 2008
@@ -23,7 +23,7 @@
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
- <version>2.0.11-SNAPSHOT</version>
+ <version>2.0.10-SNAPSHOT</version>
</parent>
<artifactId>maven-core</artifactId>
Modified: maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/MavenArtifactFilterManager.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/MavenArtifactFilterManager.java?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/MavenArtifactFilterManager.java (original)
+++ maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/MavenArtifactFilterManager.java Mon Aug 25 18:24:27 2008
@@ -34,13 +34,36 @@
{
public static ArtifactFilter createStandardFilter()
{
+ Set artifacts = createBaseArtifactSet();
+
+ artifacts.add( "wagon-file" );
+ artifacts.add( "wagon-http-lightweight" );
+ artifacts.add( "wagon-webdav" );
+ artifacts.add( "wagon-ssh" );
+ artifacts.add( "wagon-ssh-external" );
+
+ return new ExclusionSetFilter( artifacts );
+ }
+
+ public static ArtifactFilter createExtensionFilter()
+ {
+ Set artifacts = createBaseArtifactSet();
+
+ // It should be safe to include wagon implementations, and since this is used by the extension manager they would
+ // get filtered out otherwise
+
+ return new ExclusionSetFilter( artifacts );
+ }
+
+ private static Set createBaseArtifactSet()
+ {
// TODO: configure this from bootstrap or scan lib
Set artifacts = new HashSet();
artifacts.add( "classworlds" );
artifacts.add( "commons-cli" );
artifacts.add( "doxia-sink-api" );
- artifacts.add( "jsch" );
+ artifacts.add( "doxia-logging-api" );
artifacts.add( "maven-artifact" );
artifacts.add( "maven-artifact-manager" );
artifacts.add( "maven-core" );
@@ -58,20 +81,8 @@
artifacts.add( "maven-settings" );
artifacts.add( "plexus-container-default" );
artifacts.add( "plexus-interactivity-api" );
- //adding shared/maven-toolchain project here, even though not part of the default
- //distro yet.
artifacts.add( "maven-toolchain" );
- //artifacts.add( "plexus-utils" );
artifacts.add( "wagon-provider-api" );
-
- // It should be safe to include implementations, and since this is used by the extension manager they would
- // get filtered out otherwise
- //artifacts.add( "wagon-file" );
- //artifacts.add( "wagon-http-lightweight" );
- //artifacts.add( "wagon-webdav" );
- //artifacts.add( "wagon-ssh" );
- //artifacts.add( "wagon-ssh-external" );
-
- return new ExclusionSetFilter( artifacts );
+ return artifacts;
}
}
Modified: maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java (original)
+++ maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java Mon Aug 25 18:24:27 2008
@@ -82,7 +82,7 @@
private DefaultPlexusContainer container;
- private ArtifactFilter artifactFilter = MavenArtifactFilterManager.createStandardFilter();
+ private ArtifactFilter artifactFilter = MavenArtifactFilterManager.createExtensionFilter();
private WagonManager wagonManager;
@@ -270,7 +270,7 @@
}
catch ( ComponentLookupException e )
{
- // now wagons found in the extension
+ // no wagons found in the extension
}
}
}
@@ -332,7 +332,7 @@
}
catch( Exception e )
{
- // do nothingls
+ // do nothing
}
return false;
Modified: maven/components/branches/maven-2.0.x/maven-core/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-core/src/main/resources/META-INF/plexus/components.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-core/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-core/src/main/resources/META-INF/plexus/components.xml Mon Aug 25 18:24:27 2008
@@ -583,5 +583,38 @@
</requirement>
</requirements>
</component>
+
+ <component>
+ <role>org.apache.maven.wagon.Wagon</role>
+ <role-hint>http</role-hint>
+ <implementation>org.apache.maven.wagon.providers.http.LightweightHttpWagon</implementation>
+ <instantiation-strategy>per-lookup</instantiation-strategy>
+ <description>LightweightHttpWagon</description>
+ <isolated-realm>false</isolated-realm>
+ <configuration>
+ <httpHeaders>
+ <property>
+ <name>User-Agent</name>
+ <value>Apache Maven/${project.version}</value>
+ </property>
+ </httpHeaders>
+ </configuration>
+ </component>
+ <component>
+ <role>org.apache.maven.wagon.Wagon</role>
+ <role-hint>https</role-hint>
+ <implementation>org.apache.maven.wagon.providers.http.LightweightHttpsWagon</implementation>
+ <instantiation-strategy>per-lookup</instantiation-strategy>
+ <description>LIghtweightHttpsWagon</description>
+ <isolated-realm>false</isolated-realm>
+ <configuration>
+ <httpHeaders>
+ <property>
+ <name>User-Agent</name>
+ <value>Apache Maven/${project.version}</value>
+ </property>
+ </httpHeaders>
+ </configuration>
+ </component>
</components>
</component-set>
Modified: maven/components/branches/maven-2.0.x/maven-error-diagnostics/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-error-diagnostics/pom.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-error-diagnostics/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-error-diagnostics/pom.xml Mon Aug 25 18:24:27 2008
@@ -23,7 +23,7 @@
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
- <version>2.0.11-SNAPSHOT</version>
+ <version>2.0.10-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-error-diagnostics</artifactId>
Modified: maven/components/branches/maven-2.0.x/maven-model/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-model/pom.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-model/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-model/pom.xml Mon Aug 25 18:24:27 2008
@@ -23,7 +23,7 @@
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
- <version>2.0.11-SNAPSHOT</version>
+ <version>2.0.10-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-model</artifactId>
Modified: maven/components/branches/maven-2.0.x/maven-monitor/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-monitor/pom.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-monitor/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-monitor/pom.xml Mon Aug 25 18:24:27 2008
@@ -23,7 +23,7 @@
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
- <version>2.0.11-SNAPSHOT</version>
+ <version>2.0.10-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-monitor</artifactId>
Modified: maven/components/branches/maven-2.0.x/maven-plugin-api/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-plugin-api/pom.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-plugin-api/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-plugin-api/pom.xml Mon Aug 25 18:24:27 2008
@@ -23,7 +23,7 @@
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
- <version>2.0.11-SNAPSHOT</version>
+ <version>2.0.10-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-plugin-api</artifactId>
Modified: maven/components/branches/maven-2.0.x/maven-plugin-descriptor/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-plugin-descriptor/pom.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-plugin-descriptor/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-plugin-descriptor/pom.xml Mon Aug 25 18:24:27 2008
@@ -23,7 +23,7 @@
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
- <version>2.0.11-SNAPSHOT</version>
+ <version>2.0.10-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-plugin-descriptor</artifactId>
Modified: maven/components/branches/maven-2.0.x/maven-plugin-parameter-documenter/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-plugin-parameter-documenter/pom.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-plugin-parameter-documenter/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-plugin-parameter-documenter/pom.xml Mon Aug 25 18:24:27 2008
@@ -23,7 +23,7 @@
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
- <version>2.0.11-SNAPSHOT</version>
+ <version>2.0.10-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-plugin-parameter-documenter</artifactId>
Modified: maven/components/branches/maven-2.0.x/maven-plugin-registry/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-plugin-registry/pom.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-plugin-registry/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-plugin-registry/pom.xml Mon Aug 25 18:24:27 2008
@@ -21,7 +21,7 @@
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
- <version>2.0.11-SNAPSHOT</version>
+ <version>2.0.10-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven</groupId>
Modified: maven/components/branches/maven-2.0.x/maven-profile/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-profile/pom.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-profile/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-profile/pom.xml Mon Aug 25 18:24:27 2008
@@ -23,7 +23,7 @@
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
- <version>2.0.11-SNAPSHOT</version>
+ <version>2.0.10-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-profile</artifactId>
Modified: maven/components/branches/maven-2.0.x/maven-project/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/pom.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-project/pom.xml Mon Aug 25 18:24:27 2008
@@ -23,7 +23,7 @@
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
- <version>2.0.11-SNAPSHOT</version>
+ <version>2.0.10-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-project</artifactId>
Modified: maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/ProjectUtils.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/ProjectUtils.java?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/ProjectUtils.java (original)
+++ maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/ProjectUtils.java Mon Aug 25 18:24:27 2008
@@ -96,6 +96,16 @@
String id = repo.getId();
String url = repo.getUrl();
+ if ( id == null || id.trim().length() < 1 )
+ {
+ throw new InvalidRepositoryException( "Repository ID must not be empty (URL is: " + url + ").", new IllegalArgumentException( "repository.id" ) );
+ }
+
+ if ( url == null || url.trim().length() < 1 )
+ {
+ throw new InvalidRepositoryException( "Repository URL must not be empty (ID is: " + id + ").", new IllegalArgumentException( "repository.url" ) );
+ }
+
// TODO: make this a map inside the factory instead, so no lookup needed
ArtifactRepositoryLayout layout = getRepositoryLayout( repo, container );
Modified: maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java (original)
+++ maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java Mon Aug 25 18:24:27 2008
@@ -78,11 +78,52 @@
private MavenProject superProject;
/**
- * Retrieve the metadata for the project from the repository.
- * Uses the ProjectBuilder, to enable post-processing and inheritance calculation before retrieving the
- * associated artifacts.
+ * Resolve all relocations in the POM for this artifact, and return the new artifact coordinate.
*/
- public ResolutionGroup retrieve( Artifact artifact, ArtifactRepository localRepository, List remoteRepositories )
+ public Artifact retrieveRelocatedArtifact( Artifact artifact, ArtifactRepository localRepository, List remoteRepositories )
+ throws ArtifactMetadataRetrievalException
+ {
+ if ( artifact instanceof ActiveProjectArtifact )
+ {
+ return artifact;
+ }
+
+ MavenProject project = retrieveRelocatedProject( artifact, localRepository, remoteRepositories );
+
+ if ( project == null || getRelocationKey( artifact ).equals( getRelocationKey( project.getArtifact() ) ) )
+ {
+ return artifact;
+ }
+
+ Artifact result = null;
+ if ( artifact.getClassifier() != null )
+ {
+ result = artifactFactory.createArtifactWithClassifier( project.getGroupId(), project.getArtifactId(), project.getVersion(), artifact.getType(), artifact.getClassifier() );
+ }
+ else
+ {
+ result = artifactFactory.createArtifact( project.getGroupId(), project.getArtifactId(), project.getVersion(), artifact.getScope(), artifact.getType() );
+ }
+
+ result.setResolved( artifact.isResolved() );
+ result.setFile( artifact.getFile() );
+
+ result.setScope( artifact.getScope() );
+ result.setArtifactHandler( artifact.getArtifactHandler() );
+ result.setDependencyFilter( artifact.getDependencyFilter() );
+ result.setDependencyTrail( artifact.getDependencyTrail() );
+ result.setOptional( artifact.isOptional() );
+ result.setRelease( artifact.isRelease() );
+
+ return result;
+ }
+
+ private String getRelocationKey( Artifact artifact )
+ {
+ return artifact.getGroupId() + ":" + artifact.getArtifactId() + ":" + artifact.getVersion();
+ }
+
+ private MavenProject retrieveRelocatedProject( Artifact artifact, ArtifactRepository localRepository, List remoteRepositories )
throws ArtifactMetadataRetrievalException
{
MavenProject project = null;
@@ -154,15 +195,18 @@
if ( relocation.getGroupId() != null )
{
artifact.setGroupId( relocation.getGroupId() );
+ project.setGroupId( relocation.getGroupId() );
}
if ( relocation.getArtifactId() != null )
{
artifact.setArtifactId( relocation.getArtifactId() );
+ project.setArtifactId( relocation.getArtifactId() );
}
if ( relocation.getVersion() != null )
{
//note: see MNG-3454. This causes a problem, but fixing it may break more.
artifact.setVersionRange( VersionRange.createFromVersion( relocation.getVersion() ) );
+ project.setVersion( relocation.getVersion() );
}
if ( artifact.getDependencyFilter() != null &&
@@ -213,8 +257,34 @@
}
while ( !done );
+ return project;
+ }
+
+ /**
+ * Retrieve the metadata for the project from the repository.
+ * Uses the ProjectBuilder, to enable post-processing and inheritance calculation before retrieving the
+ * associated artifacts.
+ */
+ public ResolutionGroup retrieve( Artifact artifact, ArtifactRepository localRepository, List remoteRepositories )
+ throws ArtifactMetadataRetrievalException
+ {
+ MavenProject project = retrieveRelocatedProject( artifact, localRepository, remoteRepositories );
+ Artifact pomArtifact;
+ if ( project != null )
+ {
+ pomArtifact = project.getArtifact();
+ }
+ else
+ {
+ pomArtifact = artifactFactory.createProjectArtifact( artifact.getGroupId(),
+ artifact.getArtifactId(),
+ artifact.getVersion(),
+ artifact.getScope() );
+ }
+
+
// last ditch effort to try to get this set...
- if ( artifact.getDownloadUrl() == null )
+ if ( artifact.getDownloadUrl() == null && pomArtifact != null )
{
// TODO: this could come straight from the project, negating the need to set it in the project itself?
artifact.setDownloadUrl( pomArtifact.getDownloadUrl() );
Modified: maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/TestArtifactResolver.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/TestArtifactResolver.java?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/TestArtifactResolver.java (original)
+++ maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/TestArtifactResolver.java Mon Aug 25 18:24:27 2008
@@ -178,6 +178,14 @@
return projectArtifacts;
}
+
+ public Artifact retrieveRelocatedArtifact( Artifact artifact,
+ ArtifactRepository localRepository,
+ List remoteRepositories )
+ throws ArtifactMetadataRetrievalException
+ {
+ return artifact;
+ }
}
public Source source()
@@ -215,7 +223,7 @@
public void contextualize( Context context )
throws ContextException
{
- this.container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
+ container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
}
}
\ No newline at end of file
Modified: maven/components/branches/maven-2.0.x/maven-reporting/maven-reporting-api/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-reporting/maven-reporting-api/pom.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-reporting/maven-reporting-api/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-reporting/maven-reporting-api/pom.xml Mon Aug 25 18:24:27 2008
@@ -23,7 +23,7 @@
<parent>
<artifactId>maven-reporting</artifactId>
<groupId>org.apache.maven.reporting</groupId>
- <version>2.0.11-SNAPSHOT</version>
+ <version>2.0.10-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-reporting-api</artifactId>
Modified: maven/components/branches/maven-2.0.x/maven-reporting/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-reporting/pom.xml?rev=688932&r1=688931&r2=688932&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-reporting/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-reporting/pom.xml Mon Aug 25 18:24:27 2008
@@ -23,7 +23,7 @@
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
- <version>2.0.11-SNAPSHOT</version>
+ <version>2.0.10-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.reporting</groupId>