You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2007/05/31 20:04:32 UTC

svn commit: r543200 - in /maven/ant-tasks: branches/maven-ant-tasks-2.0.x/ branches/maven-ant-tasks-2.0.x/src/main/java/org/apache/maven/artifact/ant/ trunk/ trunk/src/main/java/org/apache/maven/artifact/ant/

Author: jvanzyl
Date: Thu May 31 11:04:31 2007
New Revision: 543200

URL: http://svn.apache.org/viewvc?view=rev&rev=543200
Log:
MANTTASKS-29 Add more powerful filesets
Submitted by: Herve Boutemy

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/DependenciesTask.java
    maven/ant-tasks/trunk/sample.build.xml
    maven/ant-tasks/trunk/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java

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=543200&r1=543199&r2=543200
==============================================================================
--- 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 Thu May 31 11:04:31 2007
@@ -22,13 +22,10 @@
 
   <target name="initTaskDefs">
   	<xmlproperty file="pom.xml" prefix="pom.xml" />
-    <path id="maven.classpath">
-      <pathelement location="target/maven-ant-tasks-${pom.xml.project.version}.jar" />
-    </path>
-
-    <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant">
-      <classpath refid="maven.classpath"/>
-    </typedef>
+
+    <path id="maven-ant-tasks.classpath" path="target/maven-ant-tasks-${pom.xml.project.version}.jar" />
+    <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant"
+             classpathref="maven-ant-tasks.classpath"/>
 
     <artifact:localRepository id="local.repository" path="${basedir}/target/local-repo" layout="default"/>
 
@@ -42,7 +39,7 @@
   </target>
   
   <target name="test-all-deps" description="All dependencies tests"
-    depends="test-pom,test-no-deps,test-deps,test-legacy-pom">
+    depends="test-pom,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>
 
@@ -85,11 +82,13 @@
   </target>
 
   <target name="test-deps" depends="initTaskDefs">
-    <artifact:dependencies pathId="dependency.classpath" filesetId="dependency.fileset" sourcesFilesetId="sources.fileset">
+    <artifact:dependencies pathId="dependency.classpath" filesetId="dependency.fileset" sourcesFilesetId="sources.fileset" verbose="true">
       <dependency groupId="org.apache.maven.wagon" artifactId="wagon-provider-test" version="1.0-alpha-4">
         <exclusion groupId="junit" artifactId="junit"/>
       </dependency>
-      <dependency groupId="org.apache.maven.archiva" artifactId="archiva-configuration" version="1.0-SNAPSHOT"/>
+      <dependency groupId="org.apache.maven.archiva" artifactId="archiva-configuration" version="1.0-SNAPSHOT">
+        <exclusion groupId="junit" artifactId="junit"/>
+      </dependency>
       <dependency groupId="org.apache.maven" artifactId="maven-core-it-support-old-location" version="1.1"/>
       <localRepository refid="local.repository"/>
       <remoteRepository url="http://repo1.maven.org/maven2" id="central" />
@@ -99,33 +98,52 @@
       </remoteRepository>
     </artifact:dependencies>
 
-    <copy todir="target/files">
+    <copy todir="target/files/binaries">
       <fileset refid="dependency.fileset"/>
     </copy>
     <copy todir="target/files/sources">
       <fileset refid="sources.fileset"/>
     </copy>
+    <available file="target/files/binaries/junit/junit" type="dir" property="exclusion.dependency"/>
+    <fail if="exclusion.dependency">excluded dependency junit:junit shouldn't be in target/files/binaries</fail>
+    <available file="target/files/binaries/org/apache/maven/archive/archiva-configuration" type="dir" property="snapshot.dependency"/>
+    <!-- MANTTASKS-18 -->
+    <fail unless="snapshot.dependency">SNAPSHOT dependency org.apache.maven.archiva:archiva-configuration:1.0-SNAPSHOT should be in target/files/binaries</fail>
+  </target>
 
-
-    <artifact:dependencies filesetId="my.dependency.fileset" verbose="true">
+  <target name="test-pom-deps" depends="initTaskDefs">
+    <artifact:dependencies filesetId="maven-ant-tasks.dependency.fileset">
       <pom refid="maven.project"/>
     </artifact:dependencies>
 
-    <copy todir="target/my-dependencies">
-      <fileset refid="my.dependency.fileset"/>
+    <copy todir="target/maven-ant-tasks-dependencies">
+      <fileset refid="maven-ant-tasks.dependency.fileset"/>
     </copy>
 
-    <artifact:dependencies filesetId="my.compile.dependency.fileset" useScope="compile">
+    <artifact:dependencies filesetId="maven-ant-tasks.compile.dependency.fileset" versionsId="maven-ant-tasks.compile.dependency.versions" useScope="compile">
       <pom refid="maven.project"/>
     </artifact:dependencies>
+    <echo>dependencies versions: ${maven-ant-tasks.compile.dependency.versions}</echo>
+
+    <copy todir="target/maven-ant-tasks-compile-dependencies/fileset">
+      <fileset refid="maven-ant-tasks.compile.dependency.fileset"/>
+    </copy>
+
+    <copy todir="target/maven-ant-tasks-compile-dependencies/versionMapper">
+      <fileset refid="maven-ant-tasks.compile.dependency.fileset"/>
+      <mapper classpathref="maven-ant-tasks.classpath" classname="org.apache.maven.artifact.ant.VersionMapper"
+              from="${maven-ant-tasks.compile.dependency.versions}" />
+    </copy>
 
-    <copy todir="target/my-compile-dependencies">
-      <fileset refid="my.compile.dependency.fileset"/>
+    <copy todir="target/maven-ant-tasks-compile-dependencies/versionMapperFlatten">
+      <fileset refid="maven-ant-tasks.compile.dependency.fileset"/>
+      <mapper classpathref="maven-ant-tasks.classpath" classname="org.apache.maven.artifact.ant.VersionMapper"
+              from="${maven-ant-tasks.compile.dependency.versions}" to="flatten" />
     </copy>
 
-    <copy todir="target/my-compile-dependencies/WEB-INF/lib">
-      <fileset refid="my.compile.dependency.fileset"/>
-      <mapper type="flatten" />
+    <copy todir="target/maven-ant-tasks-compile-dependencies/WEB-INF/lib">
+      <fileset refid="maven-ant-tasks.compile.dependency.fileset"/>
+      <mapper type="flatten"/>
     </copy>
   </target>
 

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=543200&r1=543199&r2=543200
==============================================================================
--- 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 Thu May 31 11:04:31 2007
@@ -42,11 +42,14 @@
 import org.apache.tools.ant.types.FileList;
 import org.apache.tools.ant.types.FileSet;
 import org.apache.tools.ant.types.Path;
+import org.codehaus.plexus.util.StringUtils;
 
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -71,6 +74,8 @@
     private String filesetId;
 
     private String sourcesFilesetId;
+    
+    private String versionsId;
 
     private String useScope;
 
@@ -216,6 +221,8 @@
         FileSet sourcesFileSet = new FileSet();
         sourcesFileSet.setDir( sourcesFileList.getDir( getProject() ) );
 
+        Set versions = new HashSet();
+        
         if ( result.getArtifacts().isEmpty() )
         {
             fileSet.createExclude().setName( "**/**" );
@@ -233,6 +240,8 @@
                 fileList.addConfiguredFile( file );
 
                 fileSet.createInclude().setName( filename );
+                
+                versions.add( artifact.getBaseVersion() );
 
                 if ( sourcesFilesetId != null )
                 {
@@ -284,6 +293,12 @@
         {
             getProject().addReference( sourcesFilesetId, sourcesFileSet );
         }
+        
+        if ( versionsId != null )
+        {
+            String versionsValue = StringUtils.join( versions.iterator(), File.pathSeparator );
+            getProject().setNewProperty( versionsId, versionsValue );
+        }
     }
 
     private static String statusAsString( RepositoryPolicy policy )
@@ -367,6 +382,16 @@
     public void setFilesetId( String filesetId )
     {
         this.filesetId = filesetId;
+    }
+
+    public String getVersionsId()
+    {
+        return versionsId;
+    }
+
+    public void setVersionsId( String versionsId )
+    {
+        this.versionsId = versionsId;
     }
 
     public void setVerbose( boolean verbose )

Modified: maven/ant-tasks/trunk/sample.build.xml
URL: http://svn.apache.org/viewvc/maven/ant-tasks/trunk/sample.build.xml?view=diff&rev=543200&r1=543199&r2=543200
==============================================================================
--- maven/ant-tasks/trunk/sample.build.xml (original)
+++ maven/ant-tasks/trunk/sample.build.xml Thu May 31 11:04:31 2007
@@ -22,13 +22,10 @@
 
   <target name="initTaskDefs">
   	<xmlproperty file="pom.xml" prefix="pom.xml" />
-    <path id="maven.classpath">
-      <pathelement location="target/maven-ant-tasks-${pom.xml.project.version}.jar" />
-    </path>
-
-    <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant">
-      <classpath refid="maven.classpath"/>
-    </typedef>
+
+    <path id="maven-ant-tasks.classpath" path="target/maven-ant-tasks-${pom.xml.project.version}.jar" />
+    <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant"
+             classpathref="maven-ant-tasks.classpath"/>
 
     <artifact:localRepository id="local.repository" path="${basedir}/target/local-repo" layout="default"/>
 
@@ -42,7 +39,7 @@
   </target>
   
   <target name="test-all-deps" description="All dependencies tests"
-    depends="test-pom,test-no-deps,test-deps,test-legacy-pom">
+    depends="test-pom,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>
 
@@ -85,11 +82,13 @@
   </target>
 
   <target name="test-deps" depends="initTaskDefs">
-    <artifact:dependencies pathId="dependency.classpath" filesetId="dependency.fileset" sourcesFilesetId="sources.fileset">
+    <artifact:dependencies pathId="dependency.classpath" filesetId="dependency.fileset" sourcesFilesetId="sources.fileset" verbose="true">
       <dependency groupId="org.apache.maven.wagon" artifactId="wagon-provider-test" version="1.0-alpha-4">
         <exclusion groupId="junit" artifactId="junit"/>
       </dependency>
-      <dependency groupId="org.apache.maven.archiva" artifactId="archiva-configuration" version="1.0-SNAPSHOT"/>
+      <dependency groupId="org.apache.maven.archiva" artifactId="archiva-configuration" version="1.0-SNAPSHOT">
+        <exclusion groupId="junit" artifactId="junit"/>
+      </dependency>
       <dependency groupId="org.apache.maven" artifactId="maven-core-it-support-old-location" version="1.1"/>
       <localRepository refid="local.repository"/>
       <remoteRepository url="http://repo1.maven.org/maven2" id="central" />
@@ -99,33 +98,52 @@
       </remoteRepository>
     </artifact:dependencies>
 
-    <copy todir="target/files">
+    <copy todir="target/files/binaries">
       <fileset refid="dependency.fileset"/>
     </copy>
     <copy todir="target/files/sources">
       <fileset refid="sources.fileset"/>
     </copy>
+    <available file="target/files/binaries/junit/junit" type="dir" property="exclusion.dependency"/>
+    <fail if="exclusion.dependency">excluded dependency junit:junit shouldn't be in target/files/binaries</fail>
+    <available file="target/files/binaries/org/apache/maven/archive/archiva-configuration" type="dir" property="snapshot.dependency"/>
+    <!-- MANTTASKS-18 -->
+    <fail unless="snapshot.dependency">SNAPSHOT dependency org.apache.maven.archiva:archiva-configuration:1.0-SNAPSHOT should be in target/files/binaries</fail>
+  </target>
 
-
-    <artifact:dependencies filesetId="my.dependency.fileset" verbose="true">
+  <target name="test-pom-deps" depends="initTaskDefs">
+    <artifact:dependencies filesetId="maven-ant-tasks.dependency.fileset">
       <pom refid="maven.project"/>
     </artifact:dependencies>
 
-    <copy todir="target/my-dependencies">
-      <fileset refid="my.dependency.fileset"/>
+    <copy todir="target/maven-ant-tasks-dependencies">
+      <fileset refid="maven-ant-tasks.dependency.fileset"/>
     </copy>
 
-    <artifact:dependencies filesetId="my.compile.dependency.fileset" useScope="compile">
+    <artifact:dependencies filesetId="maven-ant-tasks.compile.dependency.fileset" versionsId="maven-ant-tasks.compile.dependency.versions" useScope="compile">
       <pom refid="maven.project"/>
     </artifact:dependencies>
+    <echo>dependencies versions: ${maven-ant-tasks.compile.dependency.versions}</echo>
+
+    <copy todir="target/maven-ant-tasks-compile-dependencies/fileset">
+      <fileset refid="maven-ant-tasks.compile.dependency.fileset"/>
+    </copy>
+
+    <copy todir="target/maven-ant-tasks-compile-dependencies/versionMapper">
+      <fileset refid="maven-ant-tasks.compile.dependency.fileset"/>
+      <mapper classpathref="maven-ant-tasks.classpath" classname="org.apache.maven.artifact.ant.VersionMapper"
+              from="${maven-ant-tasks.compile.dependency.versions}" />
+    </copy>
 
-    <copy todir="target/my-compile-dependencies">
-      <fileset refid="my.compile.dependency.fileset"/>
+    <copy todir="target/maven-ant-tasks-compile-dependencies/versionMapperFlatten">
+      <fileset refid="maven-ant-tasks.compile.dependency.fileset"/>
+      <mapper classpathref="maven-ant-tasks.classpath" classname="org.apache.maven.artifact.ant.VersionMapper"
+              from="${maven-ant-tasks.compile.dependency.versions}" to="flatten" />
     </copy>
 
-    <copy todir="target/my-compile-dependencies/WEB-INF/lib">
-      <fileset refid="my.compile.dependency.fileset"/>
-      <mapper type="flatten" />
+    <copy todir="target/maven-ant-tasks-compile-dependencies/WEB-INF/lib">
+      <fileset refid="maven-ant-tasks.compile.dependency.fileset"/>
+      <mapper type="flatten"/>
     </copy>
   </target>
 

Modified: maven/ant-tasks/trunk/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
URL: http://svn.apache.org/viewvc/maven/ant-tasks/trunk/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java?view=diff&rev=543200&r1=543199&r2=543200
==============================================================================
--- maven/ant-tasks/trunk/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java (original)
+++ maven/ant-tasks/trunk/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java Thu May 31 11:04:31 2007
@@ -42,11 +42,14 @@
 import org.apache.tools.ant.types.FileList;
 import org.apache.tools.ant.types.FileSet;
 import org.apache.tools.ant.types.Path;
+import org.codehaus.plexus.util.StringUtils;
 
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -71,6 +74,8 @@
     private String filesetId;
 
     private String sourcesFilesetId;
+    
+    private String versionsId;
 
     private String useScope;
 
@@ -216,6 +221,8 @@
         FileSet sourcesFileSet = new FileSet();
         sourcesFileSet.setDir( sourcesFileList.getDir( getProject() ) );
 
+        Set versions = new HashSet();
+        
         if ( result.getArtifacts().isEmpty() )
         {
             fileSet.createExclude().setName( "**/**" );
@@ -233,6 +240,8 @@
                 fileList.addConfiguredFile( file );
 
                 fileSet.createInclude().setName( filename );
+                
+                versions.add( artifact.getBaseVersion() );
 
                 if ( sourcesFilesetId != null )
                 {
@@ -284,6 +293,12 @@
         {
             getProject().addReference( sourcesFilesetId, sourcesFileSet );
         }
+        
+        if ( versionsId != null )
+        {
+            String versionsValue = StringUtils.join( versions.iterator(), File.pathSeparator );
+            getProject().setNewProperty( versionsId, versionsValue );
+        }
     }
 
     private static String statusAsString( RepositoryPolicy policy )
@@ -367,6 +382,16 @@
     public void setFilesetId( String filesetId )
     {
         this.filesetId = filesetId;
+    }
+
+    public String getVersionsId()
+    {
+        return versionsId;
+    }
+
+    public void setVersionsId( String versionsId )
+    {
+        this.versionsId = versionsId;
     }
 
     public void setVerbose( boolean verbose )