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