@@ -19,15 +19,14 @@ import org.apache.aut.nativelib.ExecOutputHandler;
import org.apache.aut.nativelib.Os;
import org.apache.aut.nativelib.Os;
import org.apache.myrmidon.api.AbstractTask;
import org.apache.myrmidon.api.AbstractTask;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Execute;
import org.apache.myrmidon.framework.Pattern;
import org.apache.myrmidon.framework.nativelib.Execute;
import org.apache.myrmidon.framework.FileSet;
import org.apache.myrmidon.framework.FileSet;
import org.apache.tools.todo.types.Commandline;
import org.apache.tools.todo.types.DirectoryScanner;
import org.apache.myrmidon.framework.file.Path;
import org.apache.myrmidon.framework.Pattern;
import org.apache.myrmidon.framework.file.FileListUtil;
import org.apache.myrmidon.framework.file.FileListUtil;
import org.apache.myrmidon.framework.file.Path;
import org.apache.myrmidon.framework.nativelib.ArgumentList;
import org.apache.tools.todo.types.DirectoryScanner;
import org.apache.tools.todo.types.ScannerUtil;
import org.apache.tools.todo.types.ScannerUtil;
import org.apache.tools.todo.types.ArgumentList;
/**
/**
* This task makes it easy to generate Javadoc documentation for a collection of
* This task makes it easy to generate Javadoc documentation for a collection of
@@ -66,7 +65,7 @@ public class Javadoc
extends AbstractTask
extends AbstractTask
implements ExecOutputHandler
implements ExecOutputHandler
{
{
private ArgumentList m_command = new ArgumentList ();
private Execute m_command = new Execute ();
private Path m_sourcePath;
private Path m_sourcePath;
private File m_destDir;
private File m_destDir;
@@ -83,10 +82,6 @@ public class Javadoc
private ArrayList m_links = new ArrayList( 2 );
private ArrayList m_links = new ArrayList( 2 );
private ArrayList m_groups = new ArrayList( 2 );
private ArrayList m_groups = new ArrayList( 2 );
private boolean m_useDefaultExcludes = true;
private boolean m_useDefaultExcludes = true;
private Html m_doctitle;
private Html m_header;
private Html m_footer;
private Html m_bottom;
private boolean m_useExternalFile;
private boolean m_useExternalFile;
private File m_tmpList;
private File m_tmpList;
@@ -158,8 +153,6 @@ public class Javadoc
public void setDestdir( File dir )
public void setDestdir( File dir )
{
{
m_destDir = dir;
m_destDir = dir;
m_command.addArgument( "-d" );
m_command.addArgument( m_destDir );
}
}
public void setDocencoding( String enc )
public void setDocencoding( String enc )
@@ -433,12 +426,14 @@ public class Javadoc
public void addBottom( Html text )
public void addBottom( Html text )
{
{
m_bottom = text;
m_command.addArgument( "-bottom" );
m_command.addArgument( text.getText() );
}
}
public void addDoctitle( Html text )
public void addDoctitle( Html text )
{
{
m_doctitle = text;
m_command.addArgument( "-doctitle" );
m_command.addArgument( text.getText() );
}
}
public void addExcludePackage( PackageName pn )
public void addExcludePackage( PackageName pn )
@@ -448,12 +443,14 @@ public class Javadoc
public void addFooter( Html text )
public void addFooter( Html text )
{
{
m_footer = text;
m_command.addArgument( "-footer" );
m_command.addArgument( text.getText() );
}
}
public void addHeader( Html text )
public void addHeader( Html text )
{
{
m_header = text;
m_command.addArgument( "-header" );
m_command.addArgument( text.getText() );
}
}
public void addPackage( PackageName pn )
public void addPackage( PackageName pn )
@@ -537,29 +534,7 @@ public class Javadoc
getContext().info( "Generating Javadoc" );
getContext().info( "Generating Javadoc" );
if( m_doctitle != null )
{
m_command.addArgument( "-doctitle" );
m_command.addArgument( m_doctitle.getText() );
}
if( m_header != null )
{
m_command.addArgument( "-header" );
m_command.addArgument( m_header.getText() );
}
if( m_footer != null )
{
m_command.addArgument( "-footer" );
m_command.addArgument( m_footer.getText() );
}
if( m_bottom != null )
{
m_command.addArgument( "-bottom" );
m_command.addArgument( m_bottom.getText() );
}
Commandline cmd = new Commandline();//(Commandline)m_command.clone();
cmd.setExecutable( getJavadocExecutableName() );
m_command.setExecutable( getJavadocExecutableName() );
// ------------------------------------------------ general javadoc arguments
// ------------------------------------------------ general javadoc arguments
@@ -570,16 +545,16 @@ public class Javadoc
{
{
classpath.add( m_classpath );
classpath.add( m_classpath );
}
}
cmd.addArgument( "-classpath" );
cmd.addArgument( FileListUtil.formatPath( classpath, getContext() ) );
m_ co mman d.addArgument( "-classpath" );
m_ co mman d.addArgument( FileListUtil.formatPath( classpath, getContext() ) );
if( m_version && m_doclet == null )
if( m_version && m_doclet == null )
{
{
cmd.addArgument( "-version" );
m_ co mman d.addArgument( "-version" );
}
}
if( m_author && m_doclet == null )
if( m_author && m_doclet == null )
{
{
cmd.addArgument( "-author" );
m_ co mman d.addArgument( "-author" );
}
}
if( m_doclet == null )
if( m_doclet == null )
@@ -590,6 +565,11 @@ public class Javadoc
throw new TaskException( msg );
throw new TaskException( msg );
}
}
}
}
if( m_destDir != null )
{
m_command.addArgument( "-d" );
m_command.addArgument( m_destDir );
}
// --------------------------------- javadoc2 arguments for default doclet
// --------------------------------- javadoc2 arguments for default doclet
@@ -603,12 +583,12 @@ public class Javadoc
}
}
else
else
{
{
cmd.addArgument( "-doclet" );
cmd.addArgument( m_doclet.getName() );
m_ co mman d.addArgument( "-doclet" );
m_ co mman d.addArgument( m_doclet.getName() );
if( m_doclet.getPath() != null )
if( m_doclet.getPath() != null )
{
{
cmd.addArgument( "-docletpath" );
cmd.addArgument( FileListUtil.formatPath( m_doclet.getPath(), getContext() ) );
m_ co mman d.addArgument( "-docletpath" );
m_ co mman d.addArgument( FileListUtil.formatPath( m_doclet.getPath(), getContext() ) );
}
}
for( Iterator e = m_doclet.getParams(); e.hasNext(); )
for( Iterator e = m_doclet.getParams(); e.hasNext(); )
{
{
@@ -618,18 +598,18 @@ public class Javadoc
throw new TaskException( "Doclet parameters must have a name" );
throw new TaskException( "Doclet parameters must have a name" );
}
}
cmd.addArgument( param.getName() );
m_ co mman d.addArgument( param.getName() );
if( param.getValue() != null )
if( param.getValue() != null )
{
{
cmd.addArgument( param.getValue() );
m_ co mman d.addArgument( param.getValue() );
}
}
}
}
}
}
if( m_bootclasspath != null )
if( m_bootclasspath != null )
{
{
cmd.addArgument( "-bootclasspath" );
cmd.addArgument( FileListUtil.formatPath( m_bootclasspath, getContext() ) );
m_ co mman d.addArgument( "-bootclasspath" );
m_ co mman d.addArgument( FileListUtil.formatPath( m_bootclasspath, getContext() ) );
}
}
// add the links arguments
// add the links arguments
@@ -655,9 +635,9 @@ public class Javadoc
File packageList = new File( packageListLocation, "package-list" );
File packageList = new File( packageListLocation, "package-list" );
if( packageList.exists() )
if( packageList.exists() )
{
{
cmd.addArgument( "-linkoffline" );
cmd.addArgument( la.getHref() );
cmd.addArgument( packageListLocation.getAbsolutePath() );
m_ co mman d.addArgument( "-linkoffline" );
m_ co mman d.addArgument( la.getHref() );
m_ co mman d.addArgument( packageListLocation.getAbsolutePath() );
}
}
else
else
{
{
@@ -666,8 +646,8 @@ public class Javadoc
}
}
else
else
{
{
cmd.addArgument( "-link" );
cmd.addArgument( la.getHref() );
m_ co mman d.addArgument( "-link" );
m_ co mman d.addArgument( la.getHref() );
}
}
}
}
}
}
@@ -694,9 +674,9 @@ public class Javadoc
{
{
String name = grp.substring( 0, space );
String name = grp.substring( 0, space );
String pkgList = grp.substring( space + 1 );
String pkgList = grp.substring( space + 1 );
cmd.addArgument( "-group" );
cmd.addArgument( name );
cmd.addArgument( pkgList );
m_ co mman d.addArgument( "-group" );
m_ co mman d.addArgument( name );
m_ co mman d.addArgument( pkgList );
}
}
}
}
}
}
@@ -713,9 +693,9 @@ public class Javadoc
{
{
throw new TaskException( "The title and packages must be specified for group elements." );
throw new TaskException( "The title and packages must be specified for group elements." );
}
}
cmd.addArgument( "-group" );
cmd.addArgument( title );
cmd.addArgument( packages );
m_ co mman d.addArgument( "-group" );
m_ co mman d.addArgument( title );
m_ co mman d.addArgument( packages );
}
}
}
}
@@ -736,7 +716,7 @@ public class Javadoc
}
}
else
else
{
{
cmd.addArgument( name );
m_ co mman d.addArgument( name );
}
}
}
}
@@ -752,7 +732,7 @@ public class Javadoc
}
}
if( packages.size() > 0 )
if( packages.size() > 0 )
{
{
evaluatePackages( cmd, m_sourcePath, packages, excludePackages );
evaluatePackages( m_ co mman d, m_sourcePath, packages, excludePackages );
}
}
}
}
@@ -770,7 +750,7 @@ public class Javadoc
if( m_tmpList == null )
if( m_tmpList == null )
{
{
m_tmpList = File.createTempFile( "javadoc", "", getBaseDirectory() );
m_tmpList = File.createTempFile( "javadoc", "", getBaseDirectory() );
cmd.addArgument( "@" + m_tmpList.getAbsolutePath() );
m_ co mman d.addArgument( "@" + m_tmpList.getAbsolutePath() );
}
}
srcListWriter = new PrintWriter( new FileWriter( m_tmpList.getAbsolutePath(),
srcListWriter = new PrintWriter( new FileWriter( m_tmpList.getAbsolutePath(),
true ) );
true ) );
@@ -787,7 +767,7 @@ public class Javadoc
}
}
else
else
{
{
cmd.addArgument( sourceFileName );
m_ co mman d.addArgument( sourceFileName );
}
}
}
}
@@ -807,17 +787,14 @@ public class Javadoc
if( m_packageList != null )
if( m_packageList != null )
{
{
cmd.addArgument( "@" + m_packageList );
m_ co mman d.addArgument( "@" + m_packageList );
}
}
getContext().debug( "Javadoc args: " + cmd );
final Execute exe = new Execute();
exe.setExecOutputHandler( this );
getContext().debug( "Javadoc args: " + m_command );
exe.setCommandline( cmd );
m_command.setExecOutputHandler( this );
try
try
{
{
exe .execute( getContext() );
m_command .execute( getContext() );
}
}
finally
finally
{
{