You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by vs...@apache.org on 2006/08/25 01:29:28 UTC
svn commit: r434560 - in /maven: plugins/trunk/maven-javadoc-plugin/
plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/
shared/trunk/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/stubs/
Author: vsiveton
Date: Thu Aug 24 16:29:27 2006
New Revision: 434560
URL: http://svn.apache.org/viewvc?rev=434560&view=rev
Log:
MJAVADOC-72: Aggregating javadocs doesn't work
Submitted by: Mathias Brökelmann
Reviewed by: Vincent Siveton
o patch applied with our code style
o bump to 1.0-beta-2-SNAPSHOT for maven-plugin-testing-harness
o return Collections.EMPTY_SET in the MavenProjectStub#createArtifacts() to prevent a String classcast exception
Modified:
maven/plugins/trunk/maven-javadoc-plugin/pom.xml
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java
maven/shared/trunk/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/stubs/MavenProjectStub.java
Modified: maven/plugins/trunk/maven-javadoc-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/pom.xml?rev=434560&r1=434559&r2=434560&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/pom.xml Thu Aug 24 16:29:27 2006
@@ -81,8 +81,8 @@
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-plugin-testing-harness</artifactId>
- <version>1.0-beta-1</version>
+ <version>1.0-beta-2-SNAPSHOT</version>
<scope>test</scope>
</dependency>
- </dependencies>
+ </dependencies>
</project>
Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java?rev=434560&r1=434559&r2=434560&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java Thu Aug 24 16:29:27 2006
@@ -16,20 +16,39 @@
* limitations under the License.
*/
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import java.util.StringTokenizer;
+
import org.apache.commons.lang.ClassUtils;
import org.apache.commons.lang.SystemUtils;
import org.apache.commons.lang.math.NumberUtils;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.AbstractArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.ArtifactResolver;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.javadoc.options.Group;
import org.apache.maven.plugin.javadoc.options.Tag;
import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.artifact.InvalidDependencyVersionException;
import org.apache.maven.reporting.MavenReportException;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
@@ -39,20 +58,6 @@
import org.codehaus.plexus.util.cli.Commandline;
import org.codehaus.plexus.util.cli.DefaultConsumer;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-import java.util.StringTokenizer;
-import java.util.Map;
-import java.util.HashMap;
-
/**
* Base class with majority of Javadoc functionality.
*
@@ -136,7 +141,7 @@
*
* @parameter
*/
-//TODO: May need to allow multiple artifacts
+ //TODO: May need to allow multiple artifacts
private DocletArtifact docletArtifact;
/**
@@ -603,6 +608,13 @@
*/
protected boolean aggregate;
+ /**
+ * Used to resolve artifacts of aggregated modules
+ *
+ * @component
+ */
+ private ArtifactMetadataSource artifactMetadataSource;
+
private static final float MIN_JAVA_VERSION = 1.4f;
/**
@@ -731,8 +743,8 @@
if ( StringUtils.isEmpty( doclet ) )
{
addArgIf( arguments, author, "-author" );
- addArgIfNotEmpty( arguments, "-bottom",
- quotedArgument( getBottomText( project.getModel().getInceptionYear() ) ) );
+ addArgIfNotEmpty( arguments, "-bottom", quotedArgument( getBottomText( project.getModel()
+ .getInceptionYear() ) ) );
addArgIf( arguments, breakiterator, "-breakiterator", MIN_JAVA_VERSION );
addArgIfNotEmpty( arguments, "-charset", quotedArgument( charset ) );
addArgIfNotEmpty( arguments, "-d", quotedPathArgument( javadocDirectory.toString() ) );
@@ -744,15 +756,15 @@
addArgIfNotEmpty( arguments, "-footer", quotedArgument( footer ) );
for ( int i = 0; i < groups.length; i++ )
{
- if ( groups[i] == null || StringUtils.isEmpty( groups[i].getTitle() ) ||
- StringUtils.isEmpty( groups[i].getPackages() ) )
+ if ( groups[i] == null || StringUtils.isEmpty( groups[i].getTitle() )
+ || StringUtils.isEmpty( groups[i].getPackages() ) )
{
getLog().info( "A group option is empty. Ignore this option." );
}
else
{
- addArgIfNotEmpty( arguments, "-group", quotedArgument( groups[i].getTitle() ) + " " +
- quotedArgument( groups[i].getPackages() ), true );
+ addArgIfNotEmpty( arguments, "-group", quotedArgument( groups[i].getTitle() ) + " "
+ + quotedArgument( groups[i].getPackages() ), true );
}
}
addArgIfNotEmpty( arguments, "-header", quotedArgument( header ) );
@@ -780,16 +792,15 @@
addArgIf( arguments, notree, "-notree" );
addArgIf( arguments, serialwarn, "-serialwarn" );
addArgIf( arguments, splitindex, "-splitindex" );
- addArgIfNotEmpty( arguments, "-stylesheetfile",
- quotedPathArgument( getStylesheetFile( javadocDirectory ) ) );
+ addArgIfNotEmpty( arguments, "-stylesheetfile", quotedPathArgument( getStylesheetFile( javadocDirectory ) ) );
addArgIfNotEmpty( arguments, "-taglet", quotedArgument( taglet ), MIN_JAVA_VERSION );
addArgIfNotEmpty( arguments, "-tagletpath", quotedPathArgument( tagletpath ), MIN_JAVA_VERSION );
for ( int i = 0; i < tags.length; i++ )
{
- if ( tags[i] == null || StringUtils.isEmpty( tags[i].getName() ) ||
- StringUtils.isEmpty( tags[i].getPlacement() ) )
+ if ( tags[i] == null || StringUtils.isEmpty( tags[i].getName() )
+ || StringUtils.isEmpty( tags[i].getPlacement() ) )
{
getLog().info( "A tag option is empty. Ignore this option." );
}
@@ -1057,12 +1068,32 @@
if ( aggregate && project.isExecutionRoot() )
{
- for ( Iterator i = reactorProjects.iterator(); i.hasNext(); )
+ try
{
- MavenProject subProject = (MavenProject) i.next();
-
- classpathElements.add( subProject.getBuild().getOutputDirectory() );
- populateCompileArtifactMap( compileArtifactMap, subProject.getCompileArtifacts() );
+ for ( Iterator i = reactorProjects.iterator(); i.hasNext(); )
+ {
+ MavenProject subProject = (MavenProject) i.next();
+ if ( subProject != project )
+ {
+ classpathElements.add( subProject.getBuild().getOutputDirectory() );
+ Set dependencyArtifacts = subProject.createArtifacts( factory, null, null );
+ if ( !dependencyArtifacts.isEmpty() )
+ {
+ ArtifactResolutionResult result = resolver
+ .resolveTransitively( dependencyArtifacts, subProject.getArtifact(), subProject
+ .getRemoteArtifactRepositories(), localRepository, artifactMetadataSource );
+ populateCompileArtifactMap( compileArtifactMap, getCompileArtifacts( result.getArtifacts() ) );
+ }
+ }
+ }
+ }
+ catch ( AbstractArtifactResolutionException e )
+ {
+ throw new MavenReportException( e.getMessage(), e );
+ }
+ catch ( InvalidDependencyVersionException e )
+ {
+ throw new MavenReportException( e.getMessage(), e );
}
}
@@ -1071,6 +1102,33 @@
}
/**
+ * Copy from {@link MavenProject#getCompileArtifacts()}
+ * @param artifacts
+ * @return
+ */
+ private List getCompileArtifacts( Set artifacts )
+ {
+ List list = new ArrayList( artifacts.size() );
+
+ for ( Iterator i = artifacts.iterator(); i.hasNext(); )
+ {
+ Artifact a = (Artifact) i.next();
+
+ // TODO: classpath check doesn't belong here - that's the other method
+ if ( a.getArtifactHandler().isAddedToClasspath() )
+ {
+ // TODO: let the scope handler deal with this
+ if ( Artifact.SCOPE_COMPILE.equals( a.getScope() ) || Artifact.SCOPE_PROVIDED.equals( a.getScope() )
+ || Artifact.SCOPE_SYSTEM.equals( a.getScope() ) )
+ {
+ list.add( a );
+ }
+ }
+ }
+ return list;
+ }
+
+ /**
* Method to put the artifacts in the hashmap.
*
* @param compileArtifactMap the hashmap that will contain the artifacts
@@ -1080,20 +1138,21 @@
private void populateCompileArtifactMap( Map compileArtifactMap, List artifactList )
throws MavenReportException
{
- if ( artifactList != null)
- {
- for ( Iterator i = artifactList.iterator(); i.hasNext(); )
+ if ( artifactList != null )
{
- Artifact a = (Artifact) i.next();
+ for ( Iterator i = artifactList.iterator(); i.hasNext(); )
+ {
+ Artifact a = (Artifact) i.next();
- File file = a.getFile();
+ File file = a.getFile();
- if ( file == null )
- {
- throw new MavenReportException( "Error in plugin descriptor - compile dependencies were not resolved" );
+ if ( file == null )
+ {
+ throw new MavenReportException(
+ "Error in plugin descriptor - compile dependencies were not resolved" );
+ }
+ compileArtifactMap.put( a.getDependencyConflictId(), file.getAbsolutePath() );
}
- compileArtifactMap.put( a.getDependencyConflictId(), file.getAbsolutePath() );
- }
}
}
@@ -1160,8 +1219,8 @@
private String getAccessLevel()
{
String accessLevel;
- if ( "public".equalsIgnoreCase( show ) || "protected".equalsIgnoreCase( show ) ||
- "package".equalsIgnoreCase( show ) || "private".equalsIgnoreCase( show ) )
+ if ( "public".equalsIgnoreCase( show ) || "protected".equalsIgnoreCase( show )
+ || "package".equalsIgnoreCase( show ) || "private".equalsIgnoreCase( show ) )
{
accessLevel = "-" + show;
}
@@ -1226,8 +1285,8 @@
}
else
{
- if ( NumberUtils.isDigits( memory.substring( 0, memory.length() - 1 ) ) &&
- memory.toLowerCase().endsWith( "m" ) )
+ if ( NumberUtils.isDigits( memory.substring( 0, memory.length() - 1 ) )
+ && memory.toLowerCase().endsWith( "m" ) )
{
cmd.createArgument().setValue( "-J" + arg + memory );
}
@@ -1433,14 +1492,14 @@
if ( !StringUtils.isEmpty( path ) )
{
path = path.replace( '\\', '/' );
- if( path.indexOf( "\'" ) != -1 )
+ if ( path.indexOf( "\'" ) != -1 )
{
String split[] = path.split( "\'" );
path = "";
- for( int i = 0; i < split.length; i++ )
+ for ( int i = 0; i < split.length; i++ )
{
- if( i != split.length - 1)
+ if ( i != split.length - 1 )
{
path = path + split[i] + "\\'";
}
@@ -1468,8 +1527,8 @@
for ( int i = 0; i < offlineLinks.size(); i++ )
{
OfflineLink offlineLink = (OfflineLink) offlineLinks.get( i );
- addArgIfNotEmpty( arguments, "-linkoffline", quotedPathArgument( offlineLink.getUrl() ) + " " +
- quotedPathArgument( offlineLink.getLocation().getAbsolutePath() ), true );
+ addArgIfNotEmpty( arguments, "-linkoffline", quotedPathArgument( offlineLink.getUrl() ) + " "
+ + quotedPathArgument( offlineLink.getLocation().getAbsolutePath() ), true );
}
}
}
@@ -1603,8 +1662,8 @@
{
int i = fileList[j].lastIndexOf( File.separatorChar );
String packageName = fileList[j].substring( 0, i + 1 );
- if ( packageName.equals( sourceDirectory + File.separatorChar + excludeName[0] ) &&
- fileList[j].substring( i ).indexOf( ".java" ) != -1 )
+ if ( packageName.equals( sourceDirectory + File.separatorChar + excludeName[0] )
+ && fileList[j].substring( i ).indexOf( ".java" ) != -1 )
{
include = true;
}
@@ -1643,15 +1702,15 @@
List files = new ArrayList();
for ( int i = 0; i < excludePackagenames.length; i++ )
{
- String[] fileList = FileUtils.getFilesFromExtension( sourceDirectory, new String[]{"java"} );
+ String[] fileList = FileUtils.getFilesFromExtension( sourceDirectory, new String[] { "java" } );
for ( int j = 0; j < fileList.length; j++ )
{
String[] excludeName = excludePackagenames[i].split( "[*]" );
int u = 0;
while ( u < excludeName.length )
{
- if ( !"".equals( excludeName[u].trim() ) && fileList[j].indexOf( excludeName[u] ) != -1 &&
- sourceDirectory.indexOf( excludeName[u] ) == -1 )
+ if ( !"".equals( excludeName[u].trim() ) && fileList[j].indexOf( excludeName[u] ) != -1
+ && sourceDirectory.indexOf( excludeName[u] ) == -1 )
{
files.add( fileList[j] );
}
@@ -1688,7 +1747,7 @@
*/
private void addFilesFromSource( List files, String sourceDirectory, String[] excludePackages )
{
- String[] fileList = FileUtils.getFilesFromExtension( sourceDirectory, new String[]{"java"} );
+ String[] fileList = FileUtils.getFilesFromExtension( sourceDirectory, new String[] { "java" } );
if ( fileList != null && fileList.length != 0 )
{
List tmpFiles = getIncludedFiles( sourceDirectory, fileList, excludePackages );
Modified: maven/shared/trunk/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/stubs/MavenProjectStub.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/stubs/MavenProjectStub.java?rev=434560&r1=434559&r2=434560&view=diff
==============================================================================
--- maven/shared/trunk/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/stubs/MavenProjectStub.java (original)
+++ maven/shared/trunk/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/stubs/MavenProjectStub.java Thu Aug 24 16:29:27 2006
@@ -16,79 +16,96 @@
* limitations under the License.
*/
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.model.Model;
-import org.apache.maven.project.artifact.InvalidDependencyVersionException;
-import org.apache.maven.model.DependencyManagement;
-import org.apache.maven.model.Prerequisites;
-import org.apache.maven.model.IssueManagement;
-import org.apache.maven.model.CiManagement;
-import org.apache.maven.model.DistributionManagement;
-import org.apache.maven.model.Organization;
-import org.apache.maven.model.Scm;
-import org.apache.maven.model.MailingList;
-import org.apache.maven.model.Developer;
-import org.apache.maven.model.Contributor;
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Resource;
-import org.apache.maven.model.Reporting;
-import org.apache.maven.model.License;
-import org.apache.maven.model.PluginManagement;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.DependencyResolutionRequiredException;
-import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
-import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
-import org.codehaus.plexus.PlexusTestCase;
-
-import java.io.IOException;
import java.io.File;
+import java.io.IOException;
import java.io.Writer;
+import java.util.Collections;
import java.util.List;
-import java.util.Set;
import java.util.Map;
import java.util.Properties;
-import java.util.Collections;
+import java.util.Set;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.model.Build;
+import org.apache.maven.model.CiManagement;
+import org.apache.maven.model.Contributor;
+import org.apache.maven.model.DependencyManagement;
+import org.apache.maven.model.Developer;
+import org.apache.maven.model.DistributionManagement;
+import org.apache.maven.model.IssueManagement;
+import org.apache.maven.model.License;
+import org.apache.maven.model.MailingList;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Organization;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.PluginManagement;
+import org.apache.maven.model.Prerequisites;
+import org.apache.maven.model.Reporting;
+import org.apache.maven.model.Resource;
+import org.apache.maven.model.Scm;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.artifact.InvalidDependencyVersionException;
+import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
/**
* very simple stub of maven project, going to take a lot of work to make it useful as a stub though
*/
-public class MavenProjectStub extends MavenProject
+public class MavenProjectStub
+ extends MavenProject
{
private String groupId;
+
private String artifactId;
+
private String name;
private Model model;
+
private MavenProject parent;
+
private File file;
- private Set artifacts;
- private Artifact parentArtifact;
- private Set pluginArtifacts;
- private List remoteArtifactRepositories;
+
private List collectedProjects;
+
private List attachedArtifacts;
- private MavenProject executionProject;
+
private List compileSourceRoots;
+
private List testCompileSourceRoots;
+
private List scriptSourceRoots;
+
private List pluginArtifactRepositories;
+
private ArtifactRepository releaseArtifactRepository;
+
private ArtifactRepository snapshotArtifactRepository;
+
private List activeProfiles;
+
private Set dependencyArtifacts;
+
private Artifact artifact;
+
private Map artifactMap;
+
private Model originalModel;
+
private Map pluginArtifactMap;
- private Set reportArtifacts;
+
private Map reportArtifactMap;
- private Set extensionArtifacts;
+
private Map extensionArtifactMap;
+
private Map projectReferences;
+
private Build buildOverlay;
+
private boolean executionRoot;
private List compileArtifacts;
@@ -98,17 +115,27 @@
private List systemDependencies;
private List testClasspathElements;
+
private List testDependencies;
+
private List systemClasspathElements;
+
private List systemArtifacts;
+
private List testArtifacts;
+
private List runtimeArtifacts;
+
private List runtimeDependencies;
+
private List runtimeClasspathElements;
private String modelVersion;
+
private String packaging;
+
private String inceptionYear;
+
private String url;
private String description;
@@ -117,21 +144,23 @@
private String defaultGoal;
-
- public MavenProjectStub() { super( (Model) null ); }
+ public MavenProjectStub()
+ {
+ super( (Model) null );
+ }
// kinda dangerous...
- public MavenProjectStub(Model model)
+ public MavenProjectStub( Model model )
{
- // super(model);
- super( (Model) null );
+ // super(model);
+ super( (Model) null );
}
// kinda dangerous...
- public MavenProjectStub(MavenProject project)
+ public MavenProjectStub( MavenProject project )
{
//super(project);
- super( (Model) null );
+ super( (Model) null );
}
public String getModulePathAdjustment( MavenProject mavenProject )
@@ -177,7 +206,7 @@
public boolean hasParent()
{
- if (parent != null)
+ if ( parent != null )
{
return true;
}
@@ -199,7 +228,7 @@
public File getBasedir()
{
- return new File(PlexusTestCase.getBasedir());
+ return new File( PlexusTestCase.getBasedir() );
}
public void setDependencies( List list )
@@ -479,7 +508,7 @@
public void setName( String string )
{
- this.name = string;
+ this.name = string;
}
public String getName()
@@ -924,7 +953,7 @@
public Set createArtifacts( ArtifactFactory artifactFactory, String string, ArtifactFilter artifactFilter )
throws InvalidDependencyVersionException
{
- return Collections.singleton( "" );
+ return Collections.EMPTY_SET;
}
public void addProjectReference( MavenProject mavenProject )
@@ -971,5 +1000,4 @@
{
return null;
}
-
}