You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by pg...@apache.org on 2009/05/04 22:20:18 UTC
svn commit: r771425 - in /maven/ant-tasks/branches/maven-ant-tasks-2.0.x: ./
src/main/java/org/apache/maven/artifact/ant/ src/site/apt/ src/test/
src/test/repo/it/ant-tasks/pom/ src/test/repo/it/ant-tasks/pom/1.1/
Author: pgier
Date: Mon May 4 20:20:18 2009
New Revision: 771425
URL: http://svn.apache.org/viewvc?rev=771425&view=rev
Log:
[MANTTASKS-87] Copy each repository defined in the ant tag to a profile to be used by the maven project builder.
Added:
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/pom-1.1.pom (with props)
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/pom-1.1.pom.md5
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/pom-1.1.pom.sha1
Modified:
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/sample.build.xml
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/Pom.java
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/reference.apt
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/pom-with-parent2.xml
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/maven-metadata.xml
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/maven-metadata.xml.md5
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/maven-metadata.xml.sha1
Modified: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/sample.build.xml
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/sample.build.xml?rev=771425&r1=771424&r2=771425&view=diff
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/sample.build.xml (original)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/sample.build.xml Mon May 4 20:20:18 2009
@@ -574,7 +574,7 @@
<artifact:pom file="${user.dir}/src/test/pom-with-parent2.xml" id="my.maven.project2">
<localRepository path="${basedir}/target/tmp"/>
</artifact:pom>
- <check.file.exists file="${basedir}/target/tmp/it/ant-tasks/pom/1.0/pom-1.0.pom" type="file"/>
+ <check.file.exists file="${basedir}/target/tmp/it/ant-tasks/pom/1.1/pom-1.1.pom" type="file"/>
</target>
<macrodef name="check.file.exists">
Modified: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/Pom.java
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/Pom.java?rev=771425&r1=771424&r2=771425&view=diff
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/Pom.java (original)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/Pom.java Mon May 4 20:20:18 2009
@@ -20,41 +20,28 @@
*/
import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
-import org.apache.maven.artifact.resolver.ArtifactResolutionException;
-import org.apache.maven.artifact.resolver.ArtifactResolver;
import org.apache.maven.model.Build;
import org.apache.maven.model.CiManagement;
import org.apache.maven.model.DependencyManagement;
import org.apache.maven.model.DistributionManagement;
import org.apache.maven.model.IssueManagement;
-import org.apache.maven.model.Model;
import org.apache.maven.model.Organization;
-import org.apache.maven.model.Parent;
import org.apache.maven.model.Reporting;
+import org.apache.maven.model.Repository;
import org.apache.maven.model.Scm;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.profiles.ProfileManager;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.MavenProjectHelper;
import org.apache.maven.project.ProjectBuildingException;
-import org.apache.maven.project.artifact.MavenMetadataSource;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.PropertyHelper;
-import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.introspection.ReflectionValueExtractor;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.File;
-import java.io.IOException;
-import java.io.Reader;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -176,7 +163,7 @@
// TODO: should this be in execute() too? Would that work when it is used as a type?
if ( file != null )
{
- checkParentPom();
+ addAntRepositoriesToProfileManager();
try
{
@@ -194,57 +181,6 @@
}
}
- private void checkParentPom()
- {
- Model model = null;
- try
- {
- Reader reader = ReaderFactory.newXmlReader( file );
- model = new MavenXpp3Reader().read( reader );
- }
- catch ( IOException e )
- {
- throw new BuildException( "IO error while reading pom: " + e.getMessage(), e );
- }
- catch ( XmlPullParserException e )
- {
- throw new BuildException( "Error parsing pom: " + e.getMessage(), e );
- }
-
- if ( model.getParent() != null && model.getParent().getRelativePath() != null )
- {
- // resolve parent pom
- Parent parent = model.getParent();
- String groupId = parent.getGroupId();
- String artifactId = parent.getArtifactId();
- String version = parent.getVersion();
-
- ArtifactFactory factory = (ArtifactFactory) lookup( ArtifactFactory.ROLE );
- Artifact parentArtifact = factory.createParentArtifact( groupId, artifactId, version );
-
- try
- {
- MavenMetadataSource metadataSource = (MavenMetadataSource) lookup( ArtifactMetadataSource.ROLE );
- ArtifactResolver resolver = (ArtifactResolver) lookup( ArtifactResolver.ROLE );
- List remoteRepositories = createRemoteArtifactRepositories( model.getRepositories() );
-
- resolver.resolveTransitively( Collections.singleton( parentArtifact ), createDummyArtifact(),
- createLocalArtifactRepository(), remoteRepositories, metadataSource,
- null );
- }
- catch ( ArtifactResolutionException e )
- {
- // MANTTASKS-87: don't fail if parent pom is not resolved immediately
- log( "Error downloading parent pom " + parent.getId() + ": " + e.getMessage(), Project.MSG_WARN );
- }
- catch ( ArtifactNotFoundException e )
- {
- throw new BuildException( "Unable to download parent pom " + parent.getId() + " in remote repository: "
- + e.getMessage(), e );
- }
- }
- }
-
protected MavenProject getMavenProject()
{
return getInstance().mavenProject;
@@ -459,6 +395,41 @@
}
+ /**
+ * The repositories defined in the ant "pom" task need to be added manually to the profile manager. Otherwise they
+ * won't be available when resolving the parent pom. MANTTASKS-87
+ */
+ private void addAntRepositoriesToProfileManager()
+ {
+ if ( this.getProfileManager() == null )
+ {
+ return;
+ }
+
+ List remoteRepositories = this.getRemoteRepositories();
+
+ if ( remoteRepositories == null || remoteRepositories.isEmpty() )
+ {
+ return;
+ }
+ org.apache.maven.model.Profile repositoriesProfile = new org.apache.maven.model.Profile();
+ repositoriesProfile.setId( "maven-ant-tasks-repo-profile" );
+
+ Iterator iter = remoteRepositories.iterator();
+ while ( iter.hasNext() )
+ {
+ RemoteRepository antRepo = (RemoteRepository) iter.next();
+ Repository mavenRepo = new Repository();
+ mavenRepo.setId( antRepo.getId() );
+ mavenRepo.setUrl( antRepo.getUrl() );
+ repositoriesProfile.addRepository( mavenRepo );
+ }
+ ProfileManager profMan = this.getProfileManager();
+ profMan.addProfile( repositoriesProfile );
+ profMan.explicitlyActivate( repositoriesProfile.getId() );
+
+ }
+
private ProfileManager getActivatedProfiles()
{
ProfileManager profileManager = getProfileManager();
Modified: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/reference.apt
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/reference.apt?rev=771425&r1=771424&r2=771425&view=diff
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/reference.apt (original)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/reference.apt Mon May 4 20:20:18 2009
@@ -228,6 +228,8 @@
*------------------+--------------------------------------------------------+--------------+
| <<<id>>> | The reference ID of this POM. | No |
*------------------+--------------------------------------------------------+--------------+
+| <<<settingsFile>>> | The settings file to use. Defaults to <<<$\{user.home\}/.ant/settings.xml>>> or if that doesn't exist <<<$\{user.home\}/.m2/settings.xml>>>. | No | 2.0.6 |
+*---------------------+--------------------------------------------------------------------------+-------------------------------------------------+-------------+
** <<<profile>>> <(since 2.0.10)>
Modified: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/pom-with-parent2.xml
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/pom-with-parent2.xml?rev=771425&r1=771424&r2=771425&view=diff
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/pom-with-parent2.xml (original)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/pom-with-parent2.xml Mon May 4 20:20:18 2009
@@ -3,7 +3,7 @@
<parent>
<artifactId>pom</artifactId>
<groupId>it.ant-tasks</groupId>
- <version>1.0</version>
+ <version>1.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>project-with-parent-pom</artifactId>
Added: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/pom-1.1.pom
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/pom-1.1.pom?rev=771425&view=auto
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/pom-1.1.pom (added)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/pom-1.1.pom Mon May 4 20:20:18 2009
@@ -0,0 +1,16 @@
+<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>it.ant-tasks</groupId>
+ <artifactId>pom</artifactId>
+ <packaging>pom</packaging>
+
+ <name>Maven Ant Tasks IT SNAPSHOT pom</name>
+ <version>1.1</version>
+
+ <distributionManagement>
+ <repository>
+ <id>repo</id>
+ <url>file://${user.dir}/repo</url>
+ </repository>
+ </distributionManagement>
+</project>
Propchange: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/pom-1.1.pom
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/pom-1.1.pom
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/pom-1.1.pom.md5
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/pom-1.1.pom.md5?rev=771425&view=auto
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/pom-1.1.pom.md5 (added)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/pom-1.1.pom.md5 Mon May 4 20:20:18 2009
@@ -0,0 +1 @@
+d016b01093d23fd2be73458553df5ea1
\ No newline at end of file
Added: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/pom-1.1.pom.sha1
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/pom-1.1.pom.sha1?rev=771425&view=auto
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/pom-1.1.pom.sha1 (added)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/1.1/pom-1.1.pom.sha1 Mon May 4 20:20:18 2009
@@ -0,0 +1 @@
+401796bed6bc9796aade7e68abd365f552695221
\ No newline at end of file
Modified: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/maven-metadata.xml
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/maven-metadata.xml?rev=771425&r1=771424&r2=771425&view=diff
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/maven-metadata.xml (original)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/maven-metadata.xml Mon May 4 20:20:18 2009
@@ -1,11 +1,13 @@
-<?xml version="1.0" encoding="UTF-8"?><metadata>
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
<groupId>it.ant-tasks</groupId>
<artifactId>pom</artifactId>
<version>1.0</version>
<versioning>
<versions>
<version>1.0</version>
+ <version>1.1</version>
</versions>
- <lastUpdated>20070618210615</lastUpdated>
+ <lastUpdated>20090504193934</lastUpdated>
</versioning>
-</metadata>
\ No newline at end of file
+</metadata>
Modified: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/maven-metadata.xml.md5
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/maven-metadata.xml.md5?rev=771425&r1=771424&r2=771425&view=diff
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/maven-metadata.xml.md5 (original)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/maven-metadata.xml.md5 Mon May 4 20:20:18 2009
@@ -1 +1 @@
-b81c9e896504fa17bcedddaa1e91c333
\ No newline at end of file
+99e9954719b82037e47ebe96ee96a3da
\ No newline at end of file
Modified: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/maven-metadata.xml.sha1
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/maven-metadata.xml.sha1?rev=771425&r1=771424&r2=771425&view=diff
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/maven-metadata.xml.sha1 (original)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/pom/maven-metadata.xml.sha1 Mon May 4 20:20:18 2009
@@ -1 +1 @@
-afd867c8bc9765a3e79bdbef5d738da151a2658f
\ No newline at end of file
+98ac2a2f9a09cdbec0ded4c7c6b6a5b509230db6
\ No newline at end of file