Author: jvanzyl
Date: Wed Jun 27 22:31:27 2007
New Revision: 551449
URL: http://svn.apache.org/viewvc?view=rev&rev=551449
Log:
merge from rev 551448 on trunk
Modified:
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/pom.xml
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/AbstractArtifactTask.java
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/InstallWagonProviderTask.java
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/Pom.java
Modified: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/pom.xml
URL:
http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/pom.xml?view=diff&rev=551449&r1=551448&r2=551449
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/pom.xml (original)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/pom.xml Wed Jun 27 22:31:27
2007
@@ -82,7 +82,7 @@
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
- <version>2.0.6</version>
+ <version>2.0.7</version>
<exclusions>
<exclusion>
<artifactId>junit</artifactId>
@@ -93,12 +93,12 @@
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-error-diagnostics</artifactId>
- <version>2.0.6</version>
+ <version>2.0.7</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-settings</artifactId>
- <version>2.0.6</version>
+ <version>2.0.7</version>
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
@@ -118,7 +118,7 @@
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact-manager</artifactId>
- <version>2.0.6</version>
+ <version>2.0.7</version>
<exclusions>
<exclusion>
<artifactId>junit</artifactId>
@@ -134,7 +134,7 @@
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
- <version>2.0.6</version>
+ <version>2.0.7</version>
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
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?view=diff&rev=551449&r1=551448&r2=551449
==============================================================================
--- 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 Wed Jun 27
22:31:27 2007
@@ -39,7 +39,7 @@
</target>
<target name="test-all-deps" description="All dependencies tests"
- depends="test-pom,test-no-deps,test-pom-deps,test-deps,test-legacy-pom">
+
depends="test-pom,test-pom-with-parent,test-no-deps,test-pom-deps,test-deps,test-legacy-pom">
<echo>test-bad-dep and test-invalid-pom-ref must be run manually, since
they are intended to fail</echo>
</target>
@@ -47,7 +47,7 @@
depends="test-deploy-spaces,test-deploy,test-no-dist-mgmt,test-install-attached,test-deploy-attached"/>
<target name="test-all" description="All tests"
- depends="test-all-deps,test-all-pubs">
+ depends="test-all-deps,test-all-pubs,test-install-provider">
<echo>test-scm not run, since it fails...</echo>
</target>
@@ -59,6 +59,11 @@
</copy>
</target>
+ <target name="test-empty-settings" depends="initTaskDefs">
+ <artifact:dependencies filesetId="runtime.fileset"
settingsFile="${basedir}/src/test/settings-empty.xml">
+ </artifact:dependencies>
+ </target>
+
<target name="test-bad-dep" depends="initTaskDefs">
<artifact:dependencies pathId="dependency.classpath"
filesetId="dependency.fileset">
<dependency groupId="foo" artifactId="foo" version="1.0-alpha-2"/>
@@ -266,5 +271,22 @@
<attach file="${basedir}/target/sample-build-test.pom.asc"
type="pom.asc"/>
</artifact:install>
</target>
-</project>
+ <target name="test-install-provider" depends="initTaskDefs">
+ <artifact:install-provider groupId="it.ant-tasks" artifactId="wagon-foo"
version="1.0-beta-2">
+ <localRepository refid="local.repository"/>
+ <remoteRepository url="file://${user.dir}/src/test/repo"/>
+ </artifact:install-provider>
+ </target>
+
+ <target name="test-pom-with-parent" depends="initTaskDefs">
+ <artifact:pom file="${user.dir}/src/test/pom-with-parent.xml"
id="my.maven.project">
+ <localRepository refid="local.repository"/>
+ <remoteRepository url="file://${user.dir}/src/test/repo"/>
+ </artifact:pom>
+
+ <echo>Artifact ID = ${my.maven.project.artifactId}</echo>
+
+ <echo>Parent Artifact ID = ${my.maven.project.parent.artifactId}</echo>
+ </target>
+</project>
Modified:
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.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/AbstractArtifactTask.java?view=diff&rev=551449&r1=551448&r2=551449
==============================================================================
---
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java
(original)
+++
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java
Wed Jun 27 22:31:27 2007
@@ -91,6 +91,11 @@
return new DefaultArtifactRepository( "local", "file://" +
localRepository.getPath(), repositoryLayout );
}
+ /**
+ * Create a core-Maven ArtifactRepository from a Maven Ant Tasks's
RemoteRepository definition.
+ * @param repository the remote repository as defined in Ant
+ * @return the corresponding ArtifactRepository
+ */
protected ArtifactRepository createRemoteArtifactRepository(
RemoteRepository repository )
{
ArtifactRepositoryLayout repositoryLayout =
@@ -177,8 +182,6 @@
{
if ( settings == null )
{
- settings = new Settings();
-
File settingsFile = new File( System.getProperty( "user.home" ),
".ant/settings.xml" );
if ( !settingsFile.exists() )
{
@@ -205,19 +208,19 @@
if ( settingsFile.exists() )
{
- loadSettings(settingsFile);
+ loadSettings( settingsFile );
}
-
- if ( StringUtils.isEmpty( settings.getLocalRepository() ) )
+ else
{
- String location = new File( System.getProperty( "user.home" ),
".m2/repository" ).getAbsolutePath();
- settings.setLocalRepository( location );
+ settings = new Settings();
+ checkSettingsLocalRepository();
}
}
return settings;
}
- private void loadSettings(File settingsFile) {
+ private void loadSettings( File settingsFile )
+ {
FileReader reader = null;
try
{
@@ -227,6 +230,8 @@
SettingsXpp3Reader modelReader = new SettingsXpp3Reader();
settings = modelReader.read( reader );
+
+ checkSettingsLocalRepository();
}
catch ( IOException e )
{
@@ -244,10 +249,20 @@
}
}
- public void setSettingsFile(File settingsFile) {
- if (!settingsFile.exists()) throw new BuildException("settingsFile
does not exist: " + settingsFile.getAbsolutePath());
- settings = new Settings();
- loadSettings(settingsFile);
+ private void checkSettingsLocalRepository()
+ {
+ if ( StringUtils.isEmpty( settings.getLocalRepository() ) )
+ {
+ String location = new File( System.getProperty( "user.home" ),
".m2/repository" ).getAbsolutePath();
+ settings.setLocalRepository( location );
+ }
+ }
+
+ public void setSettingsFile( File settingsFile )
+ {
+ if ( !settingsFile.exists() )
+ throw new BuildException( "settingsFile does not exist: " +
settingsFile.getAbsolutePath() );
+ loadSettings( settingsFile );
}
protected RemoteRepository createAntRemoteRepository(
org.apache.maven.model.Repository pomRepository )
@@ -320,18 +335,6 @@
{
throw new BuildException( "Unable to find component: " + role +
"[" + roleHint + "]", e );
}
- }
-
- protected static RemoteRepository getDefaultRemoteRepository()
- {
- // TODO: could we utilise the super POM for this?
- RemoteRepository remoteRepository = new RemoteRepository();
- remoteRepository.setId( "central" );
- remoteRepository.setUrl( "http://repo1.maven.org/maven2" );
- RepositoryPolicy snapshots = new RepositoryPolicy();
- snapshots.setEnabled( false );
- remoteRepository.addSnapshots( snapshots );
- return remoteRepository;
}
protected synchronized PlexusContainer getContainer()
Modified:
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.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/DependenciesTask.java?view=diff&rev=551449&r1=551448&r2=551449
==============================================================================
---
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
(original)
+++
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
Wed Jun 27 22:31:27 2007
@@ -63,12 +63,10 @@
* @version $Id$
*/
public class DependenciesTask
- extends AbstractArtifactTask
+ extends AbstractArtifactWithRepositoryTask
{
private List dependencies = new ArrayList();
- private List remoteRepositories = new ArrayList();
-
private String pathId;
private String filesetId;
@@ -134,12 +132,7 @@
ArtifactResolutionResult result;
Set artifacts;
- if ( getRemoteRepositories().isEmpty() )
- {
- addRemoteRepository( getDefaultRemoteRepository() );
- }
-
- List remoteArtifactRepositories = createRemoteArtifactRepositories(
getRemoteRepositories() );
+ List remoteArtifactRepositories = createRemoteArtifactRepositories();
try
{
@@ -196,7 +189,6 @@
{
throw new BuildException( "Reference ID " + pathId + " already
exists" );
}
- */
if ( filesetId != null && getProject().getReference( filesetId ) !=
null )
{
@@ -207,6 +199,7 @@
{
throw new BuildException( "Reference ID " + sourcesFilesetId + "
already exists" );
}
+ */
FileList fileList = new FileList();
fileList.setDir( getLocalRepository().getPath() );
@@ -300,49 +293,6 @@
String versionsValue = StringUtils.join( versions.iterator(),
File.pathSeparator );
getProject().setNewProperty( versionsId, versionsValue );
}
- }
-
- private static String statusAsString( RepositoryPolicy policy )
- {
- return (policy == null) || policy.isEnabled() ? "enabled" : "disabled";
- }
-
- private List createRemoteArtifactRepositories( List remoteRepositories )
- {
- log( "Using remote repositories:", Project.MSG_VERBOSE );
- List list = new ArrayList();
- for ( Iterator i = remoteRepositories.iterator(); i.hasNext(); )
- {
- RemoteRepository remoteRepository = (RemoteRepository) i.next();
-
- StringBuffer msg = new StringBuffer();
- msg.append( " - id=" + remoteRepository.getId() );
- msg.append( ", url=" + remoteRepository.getUrl() );
- msg.append( ", releases=" + statusAsString(
remoteRepository.getReleases() ) );
- msg.append( ", snapshots=" + statusAsString(
remoteRepository.getSnapshots() ) );
- if ( remoteRepository.getAuthentication() != null )
- {
- msg.append( ", authentication=" +
remoteRepository.getAuthentication().getUserName() );
- }
- if ( remoteRepository.getProxy() != null )
- {
- msg.append( ", proxy=" + remoteRepository.getProxy().getHost()
);
- }
- getProject().log( msg.toString(), Project.MSG_VERBOSE );
-
- list.add( createRemoteArtifactRepository( remoteRepository ) );
- }
- return list;
- }
-
- public List getRemoteRepositories()
- {
- return remoteRepositories;
- }
-
- public void addRemoteRepository( RemoteRepository remoteRepository )
- {
- remoteRepositories.add( remoteRepository );
}
public List getDependencies()
Modified:
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/InstallWagonProviderTask.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/InstallWagonProviderTask.java?view=diff&rev=551449&r1=551448&r2=551449
==============================================================================
---
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/InstallWagonProviderTask.java
(original)
+++
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/InstallWagonProviderTask.java
Wed Jun 27 22:31:27 2007
@@ -23,7 +23,6 @@
import org.apache.maven.artifact.ArtifactUtils;
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.ArtifactResolutionResult;
@@ -34,6 +33,7 @@
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.codehaus.plexus.PlexusContainerException;
+
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -45,9 +45,9 @@
* @version $Id$
*/
public class InstallWagonProviderTask
- extends AbstractArtifactTask
+ extends AbstractArtifactWithRepositoryTask
{
- private String groupId = "org.apache.maven.wagon";
+ private String groupId = "org.apache.maven.wagon";
private String artifactId;
@@ -86,12 +86,6 @@
public void doExecute()
throws BuildException
{
- MavenMetadataSource metadataSource = (MavenMetadataSource) lookup(
ArtifactMetadataSource.ROLE );
-
- ArtifactResolver resolver = (ArtifactResolver) lookup(
ArtifactResolver.ROLE );
- ArtifactRepository artifactRepository =
createRemoteArtifactRepository( getDefaultRemoteRepository() );
- List remoteRepositories = Collections.singletonList(
artifactRepository );
-
VersionRange versionRange;
try
{
@@ -110,6 +104,10 @@
ArtifactResolutionResult result;
try
{
+ MavenMetadataSource metadataSource = (MavenMetadataSource) lookup(
ArtifactMetadataSource.ROLE );
+ ArtifactResolver resolver = (ArtifactResolver) lookup(
ArtifactResolver.ROLE );
+ List remoteRepositories = createRemoteArtifactRepositories();
+
result = resolver.resolveTransitively( Collections.singleton(
providerArtifact ),
createArtifact(
createDummyPom() ), createLocalArtifactRepository(),
remoteRepositories,
metadataSource, null );
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?view=diff&rev=551449&r1=551448&r2=551449
==============================================================================
---
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
Wed Jun 27 22:31:27 2007
@@ -19,24 +19,42 @@
* under the License.
*/
+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.Scm;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
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.introspection.ReflectionValueExtractor;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.Collections;
+import java.util.List;
/**
* A POM typedef.
@@ -53,7 +71,7 @@
* @version $Id$
*/
public class Pom
- extends AbstractArtifactTask
+ extends AbstractArtifactWithRepositoryTask
{
private String refid;
@@ -123,6 +141,8 @@
// TODO: should this be in execute() too? Would that work when it is
used as a type?
if ( file != null )
{
+ checkParentPom();
+
try
{
// TODO: should the profiles be constructed and passed in
here? From Ant, or perhaps settings?
@@ -130,12 +150,62 @@
}
catch ( ProjectBuildingException e )
{
- throw new BuildException( "Unable to build project: " + file,
e );
+ throw new BuildException( "Unable to initialize POM " +
file.getName() + ": " + e.getMessage(), e );
}
}
else if ( refid != null )
{
getInstance().initialise( builder, localRepository );
+ }
+ }
+
+ private void checkParentPom()
+ {
+ Model model = null;
+ try
+ {
+ InputStream in = new FileInputStream( file );
+ Reader reader = new InputStreamReader( in, "UTF-8" );
+ 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();
+
+ resolver.resolveTransitively( Collections.singleton(
parentArtifact ),
+ createArtifact( createDummyPom()
), createLocalArtifactRepository(),
+ remoteRepositories,
metadataSource, null );
+ }
+ catch ( ArtifactResolutionException e )
+ {
+ throw new BuildException( "Error downloading parent pom: " +
e.getMessage(), e );
+ }
+ catch ( ArtifactNotFoundException e )
+ {
+ throw new BuildException( "Unable to download parent pom in
remote repository: " + e.getMessage(), e );
+ }
}
}