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 @@ +