You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/06/08 05:08:20 UTC

svn commit: r189505 - in /maven/components/trunk/maven-artifact-ant: ./ src/main/java/org/apache/maven/artifact/ant/ src/main/resources/org/apache/maven/artifact/ant/

Author: brett
Date: Tue Jun  7 20:08:20 2005
New Revision: 189505

URL: http://svn.apache.org/viewcvs?rev=189505&view=rev
Log:
PR: MNG-435

add a <artifact:setProperty property|ref="..." expression="project.*" pomRefId="..." /> tag for exposing the pom as variables


Modified:
    maven/components/trunk/maven-artifact-ant/pom.xml
    maven/components/trunk/maven-artifact-ant/sample.build.xml
    maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java
    maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
    maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DeployTask.java
    maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/InstallTask.java
    maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Pom.java
    maven/components/trunk/maven-artifact-ant/src/main/resources/org/apache/maven/artifact/ant/antlib.xml

Modified: maven/components/trunk/maven-artifact-ant/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/pom.xml?rev=189505&r1=189504&r2=189505&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-ant/pom.xml (original)
+++ maven/components/trunk/maven-artifact-ant/pom.xml Tue Jun  7 20:08:20 2005
@@ -1,4 +1,4 @@
-<model>
+<project>
   <modelVersion>4.0.0</modelVersion>
   <parent>
     <groupId>org.apache.maven</groupId>
@@ -74,4 +74,4 @@
       </plugin>
     </plugins>
   </build>
-</model>
+</project>

Modified: maven/components/trunk/maven-artifact-ant/sample.build.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/sample.build.xml?rev=189505&r1=189504&r2=189505&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-ant/sample.build.xml (original)
+++ maven/components/trunk/maven-artifact-ant/sample.build.xml Tue Jun  7 20:08:20 2005
@@ -1,10 +1,15 @@
 <project name="foo" xmlns:artifact="antlib:org.apache.maven.artifact.ant" default="foo">
-  <target name="foo">
-    <!--
-    TODO...
-    - read .m2/settings.xml
-    -->
+  <target name="test-pom">
+    <artifact:pom file="pom.xml" id="my.maven.project"/>
+
+    <artifact:setProperty property="my.artifactid" expression="project.artifactId" pomRefId="my.maven.project" />
+    <echo>Artifact ID = ${my.artifactid}</echo>
 
+    <artifact:setProperty property="my.parent.artifactid" expression="project.parent.artifactId" pomRefId="my.maven.project" />
+    <echo>Artifact ID = ${my.parent.artifactid}</echo>
+  </target>
+
+  <target name="foo">
     <artifact:localRepository id="local.repository" location="${basedir}/target/local-repo" layout="default"/>
 
     <artifact:remoteRepository id="deploy.repository" url="file://${basedir}/target/deployment-repo" layout="legacy"/>

Modified: maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java?rev=189505&r1=189504&r2=189505&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java (original)
+++ maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java Tue Jun  7 20:08:20 2005
@@ -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 Settings settings;
+
     private Embedder embedder;
 
-    private Settings settings;
+    private Pom pom;
 
-    protected ArtifactRepository createLocalArtifactRepository( LocalRepository repository )
+    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 @@
         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();
@@ -225,5 +190,101 @@
         r.setUrl( mirror.getUrl() );
 
         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;
     }
 }

Modified: maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java?rev=189505&r1=189504&r2=189505&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java (original)
+++ maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java Tue Jun  7 20:08:20 2005
@@ -47,24 +47,15 @@
 {
     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 @@
 
         List dependencies = this.dependencies;
 
+        Pom pom = buildPom( projectBuilder, localRepo );
         if ( pom != null )
         {
             if ( !dependencies.isEmpty() )
@@ -79,8 +71,6 @@
                 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 @@
         }
 
         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 @@
         dependencies.add( dependency );
     }
 
-    public LocalRepository getLocalRepository()
-    {
-        return localRepository;
-    }
-
-    public void addLocalRepository( LocalRepository localRepository )
-    {
-        this.localRepository = localRepository;
-    }
-
     public String getPathId()
     {
         return pathId;
@@ -224,15 +204,5 @@
     public void setFilesetId( String filesetId )
     {
         this.filesetId = filesetId;
-    }
-
-    public Pom getPom()
-    {
-        return pom;
-    }
-
-    public void addPom( Pom pom )
-    {
-        this.pom = pom;
     }
 }

Modified: maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DeployTask.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DeployTask.java?rev=189505&r1=189504&r2=189505&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DeployTask.java (original)
+++ maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DeployTask.java Tue Jun  7 20:08:20 2005
@@ -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 )
@@ -100,26 +93,6 @@
             // TODO: deployment exception that does not give a trace
             throw new BuildException( "Error deploying 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 RemoteRepository getRemoteRepository()

Modified: maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/InstallTask.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/InstallTask.java?rev=189505&r1=189504&r2=189505&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/InstallTask.java (original)
+++ maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/InstallTask.java Tue Jun  7 20:08:20 2005
@@ -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 @@
             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;

Modified: maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Pom.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Pom.java?rev=189505&r1=189504&r2=189505&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Pom.java (original)
+++ maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Pom.java Tue Jun  7 20:08:20 2005
@@ -102,7 +102,7 @@
         }
     }
 
-    private MavenProject getMavenProject()
+    protected MavenProject getMavenProject()
     {
         return getInstance().mavenProject;
     }
@@ -202,12 +202,10 @@
         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()
     {

Modified: maven/components/trunk/maven-artifact-ant/src/main/resources/org/apache/maven/artifact/ant/antlib.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/resources/org/apache/maven/artifact/ant/antlib.xml?rev=189505&r1=189504&r2=189505&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-ant/src/main/resources/org/apache/maven/artifact/ant/antlib.xml (original)
+++ maven/components/trunk/maven-artifact-ant/src/main/resources/org/apache/maven/artifact/ant/antlib.xml Tue Jun  7 20:08:20 2005
@@ -4,6 +4,7 @@
   <typedef name="dependencies" classname="org.apache.maven.artifact.ant.DependenciesTask"/>
   <typedef name="install" classname="org.apache.maven.artifact.ant.InstallTask"/>
   <typedef name="deploy" classname="org.apache.maven.artifact.ant.DeployTask"/>
+  <typedef name="setProperty" classname="org.apache.maven.artifact.ant.SetPropertyTask"/>
 
   <!-- Types -->
   <typedef name="localRepository" classname="org.apache.maven.artifact.ant.LocalRepository"/>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org