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