User: rinkrank
Date: 02/04/21 13:40:14
Modified: core/src/xdoclet DocletTask.java XDocletMain.java
XDocletTagSupport.java
Log:
-handled classloading issues in xjavadoc in stead of xdoclet
-some loader/module bugfixes
Revision Changes Path
1.39 +17 -180 xdoclet/core/src/xdoclet/DocletTask.java
Index: DocletTask.java
===================================================================
RCS file: /cvsroot/xdoclet/xdoclet/core/src/xdoclet/DocletTask.java,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -w -r1.38 -r1.39
--- DocletTask.java 18 Apr 2002 06:16:02 -0000 1.38
+++ DocletTask.java 21 Apr 2002 20:40:14 -0000 1.39
@@ -6,12 +6,7 @@
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.AntClassLoader;
import org.apache.tools.ant.Project;
-import org.apache.tools.ant.types.FileSet;
-import org.apache.tools.ant.types.Path;
-import org.apache.tools.ant.types.Reference;
import org.apache.log4j.Category;
import xdoclet.util.Translator;
@@ -21,6 +16,7 @@
import xjavadoc.SourceSet;
import xjavadoc.XJavaDoc;
+import xjavadoc.ant.XJavadocTask;
import java.io.*;
import java.util.HashMap;
@@ -36,9 +32,9 @@
* @author Ara Abrahamian ([EMAIL PROTECTED])
* @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created June 19, 2001
- * @version $Revision: 1.38 $
+ * @version $Revision: 1.39 $
*/
-public class DocletTask extends Task
+public class DocletTask extends XJavadocTask
{
// ant will replace the tag with the version propperty specified in build.xml
/**
@@ -46,73 +42,25 @@
*/
public final static String XDOCLET_VERSION = "@VERSION@";
+ private final static String _fileName = "xdoclet." + System.getProperty(
"user.name" ) + ".ser";
/**
* @todo-javadoc Describe the field
*/
- protected transient DocletContext context = null;
-
- /**
- * @todo-javadoc Describe the field
- */
- private final Vector filesets = new Vector();
-
- /**
- * @todo-javadoc Describe the field
- */
- private Path classpath;
- /**
- * @todo-javadoc Describe the field
- */
- private Reference classpathRef;
+ private final static File DEFAULT_TMP_FILE = new File( System.getProperty(
"java.io.tmpdir" ), _fileName );
- /**
- * @todo-javadoc Describe the field
- */
+ private static File _tmpFile = DEFAULT_TMP_FILE;
+ protected transient DocletContext context = null;
private File destDir;
- /**
- * @todo-javadoc Describe the field
- */
private File mergeDir;
-
- /**
- * @todo-javadoc Describe the field
- */
private String excludedTags = null;
-
- /**
- * @todo-javadoc Describe the field
- */
private boolean force = false;
-
private String addedTags;
-
- /**
- * @todo-javadoc Describe the field
- */
private ArrayList templates = new ArrayList();
- /**
- * @todo-javadoc Describe the field
- */
private ArrayList configParams = new ArrayList();
- /**
- * Gets the Classpath attribute of the DocletTask object
- *
- * @return The Classpath value
- */
- public Path getClasspath()
- {
- return classpath;
- }
-
- /**
- * Gets the ClasspathRef attribute of the DocletTask object
- *
- * @return The ClasspathRef value
- */
- public Reference getClasspathRef()
+ public DocletTask()
{
- return classpathRef;
+ setClassname( "xdoclet.XDocletMain" );
}
/**
@@ -180,48 +128,9 @@
return addedTags;
}
- /**
- * Sets the Classpath attribute of the DocletTask object
- *
- * @param src The new Classpath value
- */
- public void setClasspath( Path src )
- {
- if( classpath == null )
- {
- classpath = src;
- }
- else
- {
- classpath.append( src );
- }
- }
-
- /**
- * Sets the ClasspathRef attribute of the DocletTask object
- *
- * @param ref The new ClasspathRef value
- */
- public void setClasspathRef( org.apache.tools.ant.types.Reference ref )
- {
- this.classpathRef = ref;
- createClasspath().setRefid( ref );
- }
-
- /**
- * Sets the Sourcepath attribute of the DocletTask object
- *
- * @param path The new Sourcepath value
- */
- public void setSourcepath( Path path )
+ public void setXdoclettempfile( File tmpFile )
{
- log( "sourcepath is deprecated. The preferred way to design sources is
via nested <fileset>", Project.MSG_WARN );
-
- String dir = path.toString();
- FileSet fileSet = new FileSet();
-
- fileSet.setDir( new File( dir ) );
- fileSet.setIncludes( "**/*.java" );
+ _tmpFile = tmpFile;
}
/**
@@ -290,35 +199,6 @@
}
/**
- * Describe what the method does
- *
- * @return Describe the return value
- * @todo-javadoc Write javadocs for method
- * @todo-javadoc Write javadocs for return value
- */
- public Path createClasspath()
- {
- if( classpath == null )
- {
- classpath = new Path( project );
- }
-
- return classpath.createPath();
- }
-
- /**
- * Describe the method
- *
- * @param set Describe the method parameter
- * @todo-javadoc Describe the method
- * @todo-javadoc Describe the method parameter
- */
- public void addFileset( FileSet set )
- {
- filesets.addElement( set );
- }
-
- /**
* Describe the method
*
* @param subtask Describe the method parameter
@@ -354,49 +234,16 @@
configParams.add( config_param );
}
- /**
- * Describe what the method does
- *
- * @exception BuildException Describe the exception
- * @todo-javadoc Write javadocs for method
- * @todo-javadoc Write javadocs for exception
- */
public void execute() throws BuildException
{
try
{
- AntClassLoader loader = new AntClassLoader( project, classpath
);
-
- XJavaDoc.getInstance().reset();
- XJavaDoc.getInstance().setClassLoader( loader );
- XmlValidator.setInstance( new XmlValidator( loader ) );
-
// save the context and pass its filename as an arg to the main
- SourceSet[] sourceSets = new SourceSet[filesets.size()];
-
- for( int i = 0; i < filesets.size(); i++ )
- {
- FileSet fs = ( FileSet ) filesets.elementAt( i );
- File dir = fs.getDir( project );
-
- DirectoryScanner ds = fs.getDirectoryScanner( project
);
- String[] files = ds.getIncludedFiles();
-
- for( int j = 0; j < files.length; j++ )
- {
- log( "Adding " + dir + " " + files[j],
Project.MSG_VERBOSE );
- }
- sourceSets[i] = new SourceSet( dir, files );
- }
-
- for( int i = 0; i < sourceSets.length; i++ )
- {
- XJavaDoc.getInstance().addSourceSet( sourceSets[i] );
- }
-
- executeSubTasks();
+ save( getContext(), _tmpFile );
+ createArg().setValue( _tmpFile.getAbsolutePath() );
+ super.execute();
}
- catch( Exception e )
+ catch( IOException e )
{
e.printStackTrace();
throw new BuildException( e );
@@ -545,21 +392,11 @@
*/
protected void validateOptions() throws BuildException
{
- if( filesets.size() == 0 )
- {
- throw new BuildException( "At least one fileset must be
specified", location );
- }
-
+ super.validateOptions();
if( destDir == null )
{
throw new BuildException( Translator.getString(
"attribute_not_present_error", new String[]{"destDir"} ), location );
}
-
- if( classpath == null )
- {
- classpath = org.apache.tools.ant.types.Path.systemClasspath;
- }
-
validateSubTasks();
}
@@ -598,7 +435,7 @@
*
* @todo-javadoc Write javadocs for method
*/
- private void executeSubTasks()
+ private void executeSubTasksOLD()
{
Category cat = Log.getCategory( DocletTask.class, "executeSubTasks" );
1.7 +19 -9 xdoclet/core/src/xdoclet/XDocletMain.java
Index: XDocletMain.java
===================================================================
RCS file: /cvsroot/xdoclet/xdoclet/core/src/xdoclet/XDocletMain.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -w -r1.6 -r1.7
--- XDocletMain.java 11 Apr 2002 20:53:01 -0000 1.6
+++ XDocletMain.java 21 Apr 2002 20:40:14 -0000 1.7
@@ -14,8 +14,13 @@
import org.apache.log4j.Category;
/**
+ * This class serves as an entry-point for starting XDoclet. Whether or not
+ * XDoclet is run in forked mode, the start method will be called from our
+ * superclass' main method.
+ *
* @author Ara Abrahamian ([EMAIL PROTECTED])
* @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created April 30, 2001
*/
public class XDocletMain extends XJavaDocMain
@@ -23,13 +28,13 @@
/**
* Describe what the method does
*
- * @param docletContextFileName Describe what the parameter does
+ * @param args
* @exception Exception Describe the exception
* @todo-javadoc Write javadocs for method
* @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for exception
*/
- public void start( String docletContextFileName ) throws Exception
+ protected void start( String[] args ) throws Exception
{
// registers templates
new ModuleFinder().findModules();
@@ -39,7 +44,7 @@
try
{
- DocletContext dc = ( DocletContext ) loadAndDelete(
docletContextFileName );
+ DocletContext dc = ( DocletContext ) loadAndDelete( args[0] );
DocletContext.setSingleInstance( dc );
@@ -80,8 +85,13 @@
}
catch( XDocletException e )
{
- System.out.println( "Running XDoclet failed" );
- System.out.println( "<<" + e.getMessage() + ">>" );
+ cat.error( Translator.getString( "running_failed" ) );
+ cat.error( "<<" + e.getMessage() + ">>" );
+
+ if( e.getNestedException() != null )
+ {
+ e.getNestedException().printStackTrace();
+ }
if( e.getNestedException() instanceof TemplateException )
{
1.41 +7 -8 xdoclet/core/src/xdoclet/XDocletTagSupport.java
Index: XDocletTagSupport.java
===================================================================
RCS file: /cvsroot/xdoclet/xdoclet/core/src/xdoclet/XDocletTagSupport.java,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -w -r1.40 -r1.41
--- XDocletTagSupport.java 19 Apr 2002 16:36:47 -0000 1.40
+++ XDocletTagSupport.java 21 Apr 2002 20:40:14 -0000 1.41
@@ -39,7 +39,7 @@
*
* @author Dmitri Colebatch ([EMAIL PROTECTED])
* @created October 12, 2001
- * @version $Revision: 1.40 $
+ * @version $Revision: 1.41 $
*/
public abstract class XDocletTagSupport extends TemplateTagHandler
{
@@ -415,10 +415,11 @@
boolean superclasses = TypeConversionUtil.stringToBoolean(
attributes.getProperty( "superclasses" ), true );
boolean is_mandatory = TypeConversionUtil.stringToBoolean(
attributes.getProperty( "mandatory" ), false );
+ String tagValue = null;
if( for_type == FOR_METHOD && getCurrentMethodTag() != null &&
getCurrentMethodTag().name().equals( tag_name ) && Arrays.asList(
getCurrentMethodTag().attributeValueNames() ).contains( param_name ) )
{
- return getCurrentMethodTag().attributeValue( param_name );
+ tagValue = getCurrentMethodTag().attributeValue( param_name );
}
else if( for_type == FOR_METHOD && getCurrentMethodTag() != null &&
getCurrentMethodTag().name().equals( tag_name ) && ( param_name == null || param_num
== null ) )
{
@@ -428,7 +429,7 @@
}
else if( for_type == FOR_CLASS && getCurrentClassTag() != null )
{
- return getCurrentClassTag().attributeValue( param_name );
+ tagValue = getCurrentClassTag().attributeValue( param_name );
}
else
{
@@ -456,7 +457,6 @@
}
// Loop until we get a non-null tag/parameter or there aren't
any more alternatives
- String tagValue = null;
while( tagTokenizer.hasMoreTokens() && tagValue == null )
{
@@ -510,13 +510,11 @@
{
tagValue = tagValue.substring( 1,
tagValue.length() - 1 );
}
-
}
-
+ }
tagValue = delimit( tagValue, attributes );
return tagValue;
}
- }
/**
* Gets the TagValue attribute of the XDocletTagSupport class
@@ -783,6 +781,7 @@
// Optional Parameter
String delim = attributes.getProperty( "delimiter" );
String tokenNumberStr = attributes.getProperty( "tokenNumber" );
+
int tokenNumber = 0;
if( tokenNumberStr != null )
_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel