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