You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2008/01/27 12:40:50 UTC

svn commit: r615580 - in /maven/ant-tasks/branches/maven-ant-tasks-2.0.x: ./ src/main/java/org/apache/maven/artifact/ant/ src/test/repo/it/ant-tasks/release/ src/test/repo/it/ant-tasks/release/2.0.7/

Author: hboutemy
Date: Sun Jan 27 03:40:42 2008
New Revision: 615580

URL: http://svn.apache.org/viewvc?rev=615580&view=rev
Log:
[MANTTASKS-88] added the ability to download javadoc dependencies, with much refactorings to avoid copy/paste of code (merged from trunk r615579)

Added:
    maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/
      - copied from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/
    maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/
      - copied from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/2.0.7/
    maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7-javadoc.jar   (props changed)
      - copied unchanged from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7-javadoc.jar
    maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7-javadoc.jar.md5
      - copied unchanged from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7-javadoc.jar.md5
    maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7-javadoc.jar.sha1
      - copied unchanged from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7-javadoc.jar.sha1
    maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7-sources.jar   (props changed)
      - copied unchanged from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7-sources.jar
    maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7-sources.jar.md5
      - copied unchanged from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7-sources.jar.md5
    maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7-sources.jar.sha1
      - copied unchanged from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7-sources.jar.sha1
    maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.jar   (props changed)
      - copied unchanged from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.jar
    maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.jar.md5
      - copied unchanged from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.jar.md5
    maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.jar.sha1
      - copied unchanged from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.jar.sha1
    maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.pom   (contents, props changed)
      - copied, changed from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.pom
    maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.pom.md5
      - copied unchanged from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.pom.md5
    maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.pom.sha1
      - copied unchanged from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.pom.sha1
    maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/maven-metadata.xml   (contents, props changed)
      - copied, changed from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/maven-metadata.xml
    maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/maven-metadata.xml.md5
      - copied unchanged from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/maven-metadata.xml.md5
    maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/maven-metadata.xml.sha1
      - copied unchanged from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/maven-metadata.xml.sha1
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

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?rev=615580&r1=615579&r2=615580&view=diff
==============================================================================
--- 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 Sun Jan 27 03:40:42 2008
@@ -40,7 +40,7 @@
   </target>
 
   <target name="test-all-deps" description="All dependencies tests"
-    depends="test-pom,test-pom-with-parent,test-no-deps,test-pom-deps,test-deps-two-repos,test-deps,test-legacy-pom,test-deps-mirror,test-deps-order,test-deps-sources-empty">
+    depends="test-pom,test-pom-with-parent,test-no-deps,test-pom-deps,test-deps-two-repos,test-deps,test-legacy-pom,test-deps-mirror,test-deps-order,test-deps-sources,test-deps-sources-empty">
     <echo>test-bad-dep and test-invalid-pom-ref must be run manually, since they are intended to fail</echo>
   </target>
 
@@ -103,7 +103,8 @@
   </target>
 
   <target name="test-deps" depends="initTaskDefs">
-    <artifact:dependencies pathId="dependency.classpath" filesetId="dependency.fileset" sourcesFilesetId="sources.fileset" verbose="true" versionsId="dependency.versions">
+    <artifact:dependencies pathId="dependency.classpath" filesetId="dependency.fileset"
+                           verbose="true" versionsId="dependency.versions">
       <dependency groupId="org.apache.maven.wagon" artifactId="wagon-provider-test" version="1.0-alpha-4">
         <exclusion groupId="junit" artifactId="junit"/>
       </dependency>
@@ -121,9 +122,6 @@
     <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/it/ant-tasks/snapshotUniqueFalse" type="dir" property="snapshot.dependency.uniqueFalse"/>
@@ -144,9 +142,6 @@
     <!-- MANTTASKS-33 -->
     <available file="${it.ant-tasks:snapshotUniqueTrue:jar}" property="propertySnapshotUniqueTrue"/>
     <fail unless="propertySnapshotUniqueTrue">property it.ant-tasks:snapshotUniqueFalse:jar should point to an existing file</fail>
-
-    <available file="${org.apache.maven:maven-core-it-support:java-source:sources}" property="propertySources"/>
-    <fail unless="propertySources">property org.apache.maven:maven-core-it-support:java-source:sources should point to an existing file</fail>
   </target>
 
   <target name="test-pom-deps" depends="initTaskDefs">
@@ -266,8 +261,40 @@
     <fail unless="pom.order.ok">order of dependencies defined in pom should be preserved in path: ${pom.order.property}</fail>
   </target>
 
+  <target name="test-deps-sources" depends="initTaskDefs">
+    <artifact:dependencies filesetId="jar.fileset" sourcesFilesetId="sources.fileset" javadocsFilesetId="javadocs.fileset">
+      <dependency groupId="it.ant-tasks" artifactId="release" version="2.0.7"/>
+      <localRepository refid="local.repository"/>
+      <remoteRepository url="file://${user.dir}/src/test/repo" id="test.repo">
+        <snapshots enabled="false"/>
+        <releases enabled="true"/>
+      </remoteRepository>
+    </artifact:dependencies>
+
+    <delete dir="${basedir}/target/files/sources"/>
+    <copy todir="${basedir}/target/files/sources">
+      <fileset refid="sources.fileset"/>
+      <mapper type="flatten"/>
+    </copy>
+    <available file="${basedir}/target/files/sources/release-2.0.7-sources.jar" property="release-sources.jar"/>
+    <fail unless="release-sources.jar">release sources should have been found</fail>
+    <available file="${it.ant-tasks:release:java-source:sources}" property="propertySources"/>
+    <fail unless="propertySources">property it.ant-tasks:release:java-source:sources should point to an existing file in local repo</fail>
+
+    <delete dir="${basedir}/target/files/javadocs"/>
+    <copy todir="${basedir}/target/files/javadocs">
+      <fileset refid="javadocs.fileset"/>
+      <mapper type="flatten"/>
+    </copy>
+
+    <available file="${basedir}/target/files/javadocs/release-2.0.7-javadoc.jar" property="release-javadoc.jar"/>
+    <fail unless="release-javadoc.jar">release javadoc should have been found</fail>
+    <available file="${it.ant-tasks:release:java-source:javadoc}" property="propertyJavadoc"/>
+    <fail unless="propertyJavadoc">property it.ant-tasks:release:java-source:javadoc should point to an existing file in local repo</fail>
+  </target>
+
   <target name="test-deps-sources-empty" depends="initTaskDefs">
-    <artifact:dependencies sourcesFilesetId="sources.fileset" verbose="true" versionsId="dependency.versions">
+    <artifact:dependencies sourcesFilesetId="sources.fileset" javadocsFilesetId="javadocs.fileset">
       <dependency groupId="it.ant-tasks" artifactId="snapshotUniqueFalse" version="2.0.7-SNAPSHOT"/>
       <localRepository refid="local.repository"/>
       <remoteRepository url="file://${user.dir}/src/test/repo" id="test.repo">
@@ -281,9 +308,16 @@
       <fileset refid="sources.fileset"/>
       <mapper type="merge" to="sources.bin"/>
     </copy>
+    <copy todir="${basedir}/target/files/empty">
+      <fileset refid="javadocs.fileset"/>
+      <mapper type="merge" to="javadocs.bin"/>
+    </copy>
 
     <available file="${basedir}/target/files/empty/sources.bin" property="sources.bin"/>
     <fail if="sources.bin">no dependencies sources should have been found</fail>
+
+    <available file="${basedir}/target/files/empty/javadocs.bin" property="javadocs.bin"/>
+    <fail if="javadocs.bin">no dependencies javadocs should have been found</fail>
   </target>
 
   <target name="test-deploy-spaces" depends="initTaskDefs,installSshProvider">

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?rev=615580&r1=615579&r2=615580&view=diff
==============================================================================
--- 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 Sun Jan 27 03:40:42 2008
@@ -71,6 +71,8 @@
 
     private String sourcesFilesetId;
     
+    private String javadocsFilesetId;
+    
     private String versionsId;
 
     private String useScope;
@@ -205,47 +207,29 @@
         FileSet sourcesFileSet = new FileSet();
         sourcesFileSet.setDir( getLocalRepository().getPath() );
 
+        FileSet javadocsFileSet = new FileSet();
+        javadocsFileSet.setDir( getLocalRepository().getPath() );
+
         Set versions = new HashSet();
         
-        if ( result.getArtifacts().isEmpty() )
-        {
-            fileSet.createExclude().setName( "**/**" );
-            sourcesFileSet.createExclude().setName( "**/**" );
-        }
-        else
+        for ( Iterator i = result.getArtifacts().iterator(); i.hasNext(); )
         {
-            for ( Iterator i = result.getArtifacts().iterator(); i.hasNext(); )
-            {
-                Artifact artifact = (Artifact) i.next();
+            Artifact artifact = (Artifact) i.next();
 
-                addArtifactToResult( localRepo, artifact, fileSet, fileList );
+            addArtifactToResult( localRepo, artifact, fileSet, fileList );
 
-                versions.add( artifact.getVersion() );
+            versions.add( artifact.getVersion() );
 
-                if ( sourcesFilesetId != null )
-                {
-                    // get sources
-                    Artifact sourcesArtifact =
-                        artifactFactory.createArtifactWithClassifier( artifact.getGroupId(), artifact.getArtifactId(),
-                                                                      artifact.getVersion(), "java-source", "sources" );
-                    if ( sourcesArtifact != null )
-                    {
-                        try
-                        {
-                            resolver.resolve( sourcesArtifact, remoteArtifactRepositories, localRepo );
-
-                            addArtifactToResult( localRepo, sourcesArtifact, sourcesFileSet );
-                        }
-                        catch ( ArtifactResolutionException e )
-                        {
-                            throw new BuildException( "Unable to resolve artifact: " + e.getMessage(), e );
-                        }
-                        catch ( ArtifactNotFoundException e )
-                        {
-                            // no sources available: no problem
-                        }
-                    }
-                }
+            if ( sourcesFilesetId != null )
+            {
+                resolveSource( artifactFactory, resolver, remoteArtifactRepositories, localRepo,
+                               artifact, "sources", sourcesFileSet );
+            }
+
+            if ( javadocsFilesetId != null )
+            {
+                resolveSource( artifactFactory, resolver, remoteArtifactRepositories, localRepo,
+                               artifact, "javadoc", javadocsFileSet );
             }
         }
 
@@ -259,19 +243,11 @@
             getProject().addReference( pathId, path );
         }
 
-        if ( filesetId != null )
-        {
-            getProject().addReference( filesetId, fileSet );
-        }
+        defineFilesetReference( filesetId, fileSet );
 
-        if ( sourcesFilesetId != null )
-        {
-            if ( !sourcesFileSet.hasPatterns() )
-            {
-                sourcesFileSet.createExclude().setName( "**/**" );
-            }
-            getProject().addReference( sourcesFilesetId, sourcesFileSet );
-        }
+        defineFilesetReference( sourcesFilesetId, sourcesFileSet );
+        
+        defineFilesetReference( javadocsFilesetId, javadocsFileSet );
         
         if ( versionsId != null )
         {
@@ -280,6 +256,18 @@
         }
     }
 
+    private void defineFilesetReference( String id, FileSet fileSet )
+    {
+        if ( id != null )
+        {
+            if ( !fileSet.hasPatterns() )
+            {
+                fileSet.createExclude().setName( "**/**" );
+            }
+            getProject().addReference( id, fileSet );
+        }
+    }
+
     private void addArtifactToResult( ArtifactRepository localRepo, Artifact artifact, FileSet toFileSet )
     {
         addArtifactToResult( localRepo, artifact, toFileSet, null );
@@ -290,6 +278,8 @@
     {
         String filename = localRepo.pathOf( artifact );
 
+        toFileSet.createInclude().setName( filename );
+
         if ( toFileList != null)
         {
             FileList.FileName file = new FileList.FileName();
@@ -298,11 +288,32 @@
             toFileList.addConfiguredFile( file );
         }
 
-        toFileSet.createInclude().setName( filename );
-
         getProject().setProperty( artifact.getDependencyConflictId(), artifact.getFile().getAbsolutePath() );
     }
 
+    private void resolveSource( ArtifactFactory artifactFactory, ArtifactResolver resolver,
+                                List remoteArtifactRepositories, ArtifactRepository localRepo,
+                                Artifact artifact, String classifier, FileSet sourcesFileSet )
+    {
+        Artifact sourceArtifact =
+            artifactFactory.createArtifactWithClassifier( artifact.getGroupId(), artifact.getArtifactId(),
+                                                          artifact.getVersion(), "java-source", classifier );
+        try
+        {
+            resolver.resolve( sourceArtifact, remoteArtifactRepositories, localRepo );
+
+            addArtifactToResult( localRepo, sourceArtifact, sourcesFileSet );
+        }
+        catch ( ArtifactResolutionException e )
+        {
+            throw new BuildException( "Unable to resolve artifact: " + e.getMessage(), e );
+        }
+        catch ( ArtifactNotFoundException e )
+        {
+            // no source available: no problem, it's optional
+        }
+    }
+
     public List getDependencies()
     {
         return dependencies;
@@ -336,6 +347,16 @@
     public String getSourcesFilesetId()
     {
         return sourcesFilesetId;
+    }
+
+    public void setJavadocsFilesetId( String filesetId )
+    {
+        this.javadocsFilesetId = filesetId;
+    }
+
+    public String getJavadocsFilesetId()
+    {
+        return javadocsFilesetId;
     }
 
     public void setFilesetId( String filesetId )

Propchange: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7-javadoc.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Propchange: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7-sources.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Propchange: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Copied: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.pom (from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.pom)
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.pom?p2=maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.pom&p1=maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.pom&r1=615579&r2=615580&rev=615580&view=diff
==============================================================================
    (empty)

Propchange: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/2.0.7/release-2.0.7.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/maven-metadata.xml (from r615579, maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/maven-metadata.xml)
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/maven-metadata.xml?p2=maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/maven-metadata.xml&p1=maven/ant-tasks/trunk/src/test/repo/it/ant-tasks/release/maven-metadata.xml&r1=615579&r2=615580&rev=615580&view=diff
==============================================================================
    (empty)

Propchange: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/repo/it/ant-tasks/release/maven-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native