diff --git a/maven-artifact-ant/pom.xml b/maven-artifact-ant/pom.xml
index 670313a525..25fadbd7a2 100755
--- a/maven-artifact-ant/pom.xml
+++ b/maven-artifact-ant/pom.xml
@@ -1,4 +1,4 @@
-
+
4.0.0
org.apache.maven
@@ -74,4 +74,4 @@
-
+
diff --git a/maven-artifact-ant/sample.build.xml b/maven-artifact-ant/sample.build.xml
index aa2e185a3b..a76290e168 100644
--- a/maven-artifact-ant/sample.build.xml
+++ b/maven-artifact-ant/sample.build.xml
@@ -1,10 +1,15 @@
-
-
+
+
+
+ Artifact ID = ${my.artifactid}
+
+
+ Artifact ID = ${my.parent.artifactid}
+
+
+
diff --git a/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java b/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java
index 231322bafb..db6aed32c5 100755
--- a/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java
+++ b/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java
@@ -19,10 +19,11 @@
import org.apache.maven.artifact.manager.WagonManager;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Server;
import org.apache.maven.settings.Settings;
-import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader;
+import org.apache.maven.project.MavenProjectBuilder;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
@@ -46,19 +47,30 @@
public abstract class AbstractArtifactTask
extends Task
{
- private Embedder embedder;
-
private Settings settings;
- protected ArtifactRepository createLocalArtifactRepository( LocalRepository repository )
+ private Embedder embedder;
+
+ private Pom pom;
+
+ private String pomRefId;
+
+ private LocalRepository localRepository;
+
+ protected ArtifactRepository createLocalArtifactRepository()
{
+ if ( localRepository == null )
+ {
+ localRepository = getDefaultLocalRepository();
+ }
+
ArtifactRepositoryLayout repositoryLayout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE,
- repository.getLayout() );
+ localRepository.getLayout() );
CustomWagonManager manager = (CustomWagonManager) lookup( WagonManager.ROLE );
- manager.setLocalRepository( repository.getLocation() );
+ manager.setLocalRepository( localRepository.getLocation() );
- return new ArtifactRepository( "local", "file://" + repository.getLocation(), repositoryLayout );
+ return new ArtifactRepository( "local", "file://" + localRepository.getLocation(), repositoryLayout );
}
protected ArtifactRepository createRemoteArtifactRepository( RemoteRepository repository )
@@ -95,53 +107,6 @@ protected ArtifactRepository createRemoteArtifactRepository( RemoteRepository re
return artifactRepository;
}
- protected Object lookup( String role )
- {
- try
- {
- return getEmbedder().lookup( role );
- }
- catch ( ComponentLookupException e )
- {
- throw new BuildException( "Unable to find component: " + role, e );
- }
- }
-
- private Object lookup( String role, String roleHint )
- {
- try
- {
- return getEmbedder().lookup( role, roleHint );
- }
- catch ( ComponentLookupException e )
- {
- throw new BuildException( "Unable to find component: " + role + "[" + roleHint + "]", e );
- }
- }
-
- private synchronized Embedder getEmbedder()
- {
- if ( embedder == null )
- {
- embedder = (Embedder) getProject().getReference( Embedder.class.getName() );
-
- if ( embedder == null )
- {
- embedder = new Embedder();
- try
- {
- embedder.start();
- }
- catch ( PlexusContainerException e )
- {
- throw new BuildException( "Unable to start embedder", e );
- }
- getProject().addReference( Embedder.class.getName(), embedder );
- }
- }
- return embedder;
- }
-
protected LocalRepository getDefaultLocalRepository()
{
Settings settings = getSettings();
@@ -226,4 +191,100 @@ protected RemoteRepository createAntRemoteRepository( org.apache.maven.model.Rep
return r;
}
+
+ protected Object lookup( String role )
+ {
+ try
+ {
+ return getEmbedder().lookup( role );
+ }
+ catch ( ComponentLookupException e )
+ {
+ throw new BuildException( "Unable to find component: " + role, e );
+ }
+ }
+
+ protected Object lookup( String role, String roleHint )
+ {
+ try
+ {
+ return getEmbedder().lookup( role, roleHint );
+ }
+ catch ( ComponentLookupException e )
+ {
+ throw new BuildException( "Unable to find component: " + role + "[" + roleHint + "]", e );
+ }
+ }
+
+ private synchronized Embedder getEmbedder()
+ {
+ if ( embedder == null )
+ {
+ embedder = (Embedder) getProject().getReference( Embedder.class.getName() );
+
+ if ( embedder == null )
+ {
+ embedder = new Embedder();
+ try
+ {
+ embedder.start();
+ }
+ catch ( PlexusContainerException e )
+ {
+ throw new BuildException( "Unable to start embedder", e );
+ }
+ getProject().addReference( Embedder.class.getName(), embedder );
+ }
+ }
+ return embedder;
+ }
+
+ public Pom buildPom( MavenProjectBuilder projectBuilder, ArtifactRepository localArtifactRepository )
+ {
+ if ( pomRefId != null && pom != null )
+ {
+ throw new BuildException( "You cannot specify both a POM element and a pomrefid element" );
+ }
+
+ Pom pom = this.pom;
+ if ( pomRefId != null )
+ {
+ pom = (Pom) getProject().getReference( pomRefId );
+ if ( pom == null )
+ {
+ throw new BuildException( "Reference '" + pomRefId + "' was not found." );
+ }
+ }
+
+ if ( pom != null )
+ {
+ pom.initialise( projectBuilder, localArtifactRepository );
+ }
+ return pom;
+ }
+
+ public void addPom( Pom pom )
+ {
+ this.pom = pom;
+ }
+
+ public String getPomRefId()
+ {
+ return pomRefId;
+ }
+
+ public void setPomRefId( String pomRefId )
+ {
+ this.pomRefId = pomRefId;
+ }
+
+ public LocalRepository getLocalRepository()
+ {
+ return localRepository;
+ }
+
+ public void addLocalRepository( LocalRepository localRepository )
+ {
+ this.localRepository = localRepository;
+ }
}
diff --git a/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java b/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
index 8f20f343ef..1d49d69c0c 100755
--- a/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
+++ b/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
@@ -47,24 +47,15 @@ public class DependenciesTask
{
private List dependencies = new ArrayList();
- private LocalRepository localRepository;
-
private List remoteRepositories = new ArrayList();
private String pathId;
private String filesetId;
- private Pom pom;
-
public void execute()
{
- if ( localRepository == null )
- {
- localRepository = getDefaultLocalRepository();
- }
-
- ArtifactRepository localRepo = createLocalArtifactRepository( localRepository );
+ ArtifactRepository localRepo = createLocalArtifactRepository();
ArtifactResolver resolver = (ArtifactResolver) lookup( ArtifactResolver.ROLE );
MavenProjectBuilder projectBuilder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
@@ -72,6 +63,7 @@ public void execute()
List dependencies = this.dependencies;
+ Pom pom = buildPom( projectBuilder, localRepo );
if ( pom != null )
{
if ( !dependencies.isEmpty() )
@@ -79,8 +71,6 @@ public void execute()
throw new BuildException( "You cannot specify both dependencies and a pom in the dependencies task" );
}
- pom.initialise( projectBuilder, localRepo );
-
dependencies = pom.getDependencies();
for ( Iterator i = pom.getRepositories().iterator(); i.hasNext(); )
@@ -120,7 +110,7 @@ public void execute()
}
FileList fileList = new FileList();
- fileList.setDir( localRepository.getLocation() );
+ fileList.setDir( getLocalRepository().getLocation() );
FileSet fileSet = new FileSet();
fileSet.setDir( fileList.getDir( getProject() ) );
@@ -196,16 +186,6 @@ public void addDependency( Dependency dependency )
dependencies.add( dependency );
}
- public LocalRepository getLocalRepository()
- {
- return localRepository;
- }
-
- public void addLocalRepository( LocalRepository localRepository )
- {
- this.localRepository = localRepository;
- }
-
public String getPathId()
{
return pathId;
@@ -225,14 +205,4 @@ public void setFilesetId( String filesetId )
{
this.filesetId = filesetId;
}
-
- public Pom getPom()
- {
- return pom;
- }
-
- public void addPom( Pom pom )
- {
- this.pom = pom;
- }
}
diff --git a/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DeployTask.java b/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DeployTask.java
index e3912f0f1e..a6d1d184ad 100755
--- a/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DeployTask.java
+++ b/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DeployTask.java
@@ -37,29 +37,22 @@
public class DeployTask
extends AbstractArtifactTask
{
- private Pom pom;
-
- private LocalRepository localRepository;
-
private RemoteRepository remoteRepository;
private File file;
public void execute()
{
- if ( localRepository == null )
- {
- localRepository = getDefaultLocalRepository();
- }
+ ArtifactRepository localRepo = createLocalArtifactRepository();
+ MavenProjectBuilder builder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
+
+ Pom pom = buildPom( builder, localRepo );
if ( pom == null )
{
throw new BuildException( "A POM element is required to deploy to the repository" );
}
- ArtifactRepository localRepo = createLocalArtifactRepository( localRepository );
- pom.initialise( (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE ), localRepo );
-
if ( remoteRepository == null )
{
if ( pom.getDistributionManagement() == null || pom.getDistributionManagement().getRepository() == null )
@@ -102,26 +95,6 @@ public void execute()
}
}
- public Pom getPom()
- {
- return pom;
- }
-
- public void addPom( Pom pom )
- {
- this.pom = pom;
- }
-
- public LocalRepository getLocalRepository()
- {
- return localRepository;
- }
-
- public void addLocalRepository( LocalRepository localRepository )
- {
- this.localRepository = localRepository;
- }
-
public RemoteRepository getRemoteRepository()
{
return remoteRepository;
diff --git a/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/InstallTask.java b/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/InstallTask.java
index d4ba6329fa..11cb991133 100755
--- a/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/InstallTask.java
+++ b/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/InstallTask.java
@@ -38,21 +38,14 @@
public class InstallTask
extends AbstractArtifactTask
{
- private Pom pom;
-
- private LocalRepository localRepository;
-
private File file;
public void execute()
{
- if ( localRepository == null )
- {
- localRepository = getDefaultLocalRepository();
- }
+ ArtifactRepository localRepo = createLocalArtifactRepository();
- ArtifactRepository localRepo = createLocalArtifactRepository( localRepository );
- pom.initialise( (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE ), localRepo );
+ MavenProjectBuilder builder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
+ Pom pom = buildPom( builder, localRepo );
Artifact artifact = new DefaultArtifact( pom.getGroupId(), pom.getArtifactId(), pom.getVersion(),
pom.getPackaging() );
@@ -82,27 +75,7 @@ public void execute()
throw new BuildException( "Error installing artifact", e );
}
}
-
- public Pom getPom()
- {
- return pom;
- }
-
- public void addPom( Pom pom )
- {
- this.pom = pom;
- }
-
- public LocalRepository getLocalRepository()
- {
- return localRepository;
- }
-
- public void addLocalRepository( LocalRepository localRepository )
- {
- this.localRepository = localRepository;
- }
-
+
public File getFile()
{
return file;
diff --git a/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Pom.java b/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Pom.java
index eac993b5a0..06f685f779 100755
--- a/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Pom.java
+++ b/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Pom.java
@@ -102,7 +102,7 @@ else if ( refid != null )
}
}
- private MavenProject getMavenProject()
+ protected MavenProject getMavenProject()
{
return getInstance().mavenProject;
}
@@ -202,12 +202,10 @@ public String getPackaging()
return getMavenProject().getPackaging();
} //-- String getPackaging()
-/* TODO: requires newer maven-core
public java.util.List getPluginRepositories()
{
- return getModel().getPluginRepositories();
+ return getMavenProject().getPluginRepositories();
} //-- java.util.List getPluginRepositories()
-*/
public Reports getReports()
{
diff --git a/maven-artifact-ant/src/main/resources/org/apache/maven/artifact/ant/antlib.xml b/maven-artifact-ant/src/main/resources/org/apache/maven/artifact/ant/antlib.xml
index df5ca9eaa2..b363938cb5 100755
--- a/maven-artifact-ant/src/main/resources/org/apache/maven/artifact/ant/antlib.xml
+++ b/maven-artifact-ant/src/main/resources/org/apache/maven/artifact/ant/antlib.xml
@@ -4,6 +4,7 @@
+