[kaffe] CVS kaffe (robilad): Resynced with gjdoc

Kaffe CVS cvs-commits at kaffe.org
Wed Dec 8 17:32:17 PST 2004


PatchSet 5578 
Date: 2004/12/09 01:28:00
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
Resynced with gjdoc

Members: 
	ChangeLog:1.3124->1.3125 
	configure:1.396->1.397 
	configure.ac:1.91->1.92 
	tools/gjdoc/javalib/Makefile.am:1.5->1.6 
	tools/gjdoc/javalib/Makefile.in:1.32->1.33 
	tools/gjdoc/javalib/com/sun/javadoc/ClassDoc.java:1.1->1.2 
	tools/gjdoc/javalib/com/sun/javadoc/FieldDoc.java:1.1->1.2 
	tools/gjdoc/javalib/gnu/classpath/tools/FileSystemClassLoader.java:1.1->1.2 
	tools/gjdoc/javalib/gnu/classpath/tools/doclets/AbstractDoclet.java:1.1->1.2 
	tools/gjdoc/javalib/gnu/classpath/tools/doclets/htmldoclet/CssClass.java:1.1->1.2 
	tools/gjdoc/javalib/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java:1.1->1.2 
	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/AbstractTagImpl.java:1.1->1.2 
	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/ClassDocImpl.java:1.2->1.3 
	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/ClassDocProxy.java:1.3->1.4 
	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/DocImpl.java:1.2->1.3 
	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java:1.2->1.3 
	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/FieldDocImpl.java:1.2->1.3 
	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/Main.java:1.3->1.4 
	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/MemberDocImpl.java:1.2->1.3 
	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/MethodDocImpl.java:1.2->1.3 
	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/PackageDocImpl.java:1.2->1.3 
	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/ParamTagImpl.java:1.1->1.2 
	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/Parser.java:1.2->1.3 
	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/RootDocImpl.java:1.2->1.3 
	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/SeeTagImpl.java:1.2->1.3 
	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java:1.2->1.3 
	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/TagImpl.java:1.1->1.2 
	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java:1.1->1.2 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.3124 kaffe/ChangeLog:1.3125
--- kaffe/ChangeLog:1.3124	Wed Dec  8 22:58:25 2004
+++ kaffe/ChangeLog	Thu Dec  9 01:28:00 2004
@@ -28,6 +28,187 @@
 	
 2004-12-08  Dalibor Topic  <robilad at kaffe.org>
 
+	* tools/gjdoc/javalib/gnu/classpath/tools/StringToolkit.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/TagContainer.java:
+	tools/gjdoc/javalib/com/sun/javadoc/ClassDoc.java,
+	tools/gjdoc/javalib/com/sun/javadoc/FieldDoc.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/FileSystemClassLoader.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/doclets/AbstractDoclet.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/doclets/htmldoclet/CssClass.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/AbstractTagImpl.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/ClassDocImpl.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/ClassDocProxy.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/DocImpl.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/FieldDocImpl.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/Main.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/MemberDocImpl.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/MethodDocImpl.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/PackageDocImpl.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/ParamTagImpl.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/Parser.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/RootDocImpl.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/SeeTagImpl.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/TagImpl.java,
+	tools/gjdoc/javalib/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java:
+	Resyned with gjdoc.
+
+	* configure.ac:
+	Build gjdoc by default.
+
+	* configure,
+	tools/gjdoc/javalib/Makefile.am,
+	tools/gjdoc/javalib/Makefile.in:
+	Regenerated.
+
+	
+	2004-12-08  Julian Scheid <julian at sektor37.de>
+
+	* src/gnu/classpath/tools/doclets/AbstractDoclet.java: allow run()
+	to throw DocletConfigurationException; use printError() instead of
+	System.err.println() for error message output.
+
+	* src/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java:
+	generate package-list file; implement options -link, -linkoffset.
+
+	* src/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java:
+	initial version.
+
+	2004-12-08  Julian Scheid <julian at sektor37.de>
+
+	* src/gnu/classpath/tools/StringToolkit.java: initial version.
+
+	2004-12-08  Julian Scheid <julian at sektor37.de>
+
+	* src/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java:
+	implement tag {@docRoot}.
+
+	* src/gnu/classpath/tools/gjdoc/DocImpl.java: fix handling of
+	generic inline tags.
+
+	2004-12-08  Julian Scheid <julian at sektor37.de>
+
+	* src/gnu/classpath/tools/doclets/AbstractDoclet.java: omit unnamed
+	package from index; add method getAllPackages().
+
+	* src/gnu/classpath/tools/doclets/htmldoclet/CssClass.java: add
+	new CSS classes for overriding information.
+
+	* src/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java: show
+	overriding information; show field type; properly handle classes
+	in the unnamed package; add link to package overview page to
+	package class list; use getAllPackages() instead of
+	rootDoc.specifiedPackages() for package menu and overview page;
+	handle case when source files are not located in the proper
+	package directory.
+
+	* src/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java:
+	remove dead code.
+
+	* src/gnu/classpath/tools/gjdoc/Main.java: emit warning when -J
+	option is ignored; simulate option -JD (set system property);
+	allow user to specify Java source files on the command line.
+
+	* src/gnu/classpath/tools/gjdoc/PackageDocImpl.java: use TreeSet
+	instead of ArrayList for set of all classes.
+
+	* src/gnu/classpath/tools/gjdoc/Parser.java: have
+	processSourceFile() return the resulting ClassDoc.
+
+	* src/gnu/classpath/tools/gjdoc/RootDocImpl.java: handle source
+	files specified on command line.
+
+	* src/gnu/classpath/tools/FileSystemClassLoader.java: remove debug
+	output and dead code.
+
+	2004-12-07  Julian Scheid <julian at sektor37.de>
+
+	* src/gnu/classpath/tools/gjdoc/Parser.java: sort methods, fields,
+	and constructors.
+
+	* src/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java: fix
+	problems with final parameters and whitespace within array
+	dimension specifiers.
+	
+	2004-12-07  Julian Scheid <julian at sektor37.de>
+
+	* src/com/sun/javadoc/ClassDoc.java: add methods fields(boolean),
+	methods(boolean) and constructors(boolean).
+
+	* src/com/sun/javadoc/FieldDoc.java: add method constantValue().
+
+	* src/gnu/classpath/tools/FileSystemClassLoader.java: consider
+	Class-Path manifest attribute in jar files; add support for
+	finding resources.
+
+	* src/gnu/classpath/tools/doclets/htmldoclet/CssClass.java: add
+	classes for return type and specifying interfaces.
+
+	* src/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java: show
+	return type, specifying interfaces. output arbitrary inline tags.
+
+	* src/gnu/classpath/tools/gjdoc/AbstractTagImpl.java:
+	implement interface TagContainer; pass context member and context
+	tag to tag parser.
+
+	* src/gnu/classpath/tools/gjdoc/ClassDocImpl.java: add support for
+	unfiltered method, field and constructor arrays; implement
+	methods(boolean), fields(boolean) and constructors(boolean);
+	implement getFieldDoc, getMethodDoc, getConstructorDoc.
+
+	* src/gnu/classpath/tools/gjdoc/ClassDocProxy.java: implement
+	methods(boolean), fields(boolean) and constructors(boolean).
+
+	* src/gnu/classpath/tools/gjdoc/DocImpl.java: consider context
+	member and context tag in tag parser; add support for comment
+	inheritance.
+
+	* src/gnu/classpath/tools/gjdoc/FieldDocImpl.java: add dummy
+	implementation for constantValue().
+
+	* src/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java: initial
+	version.
+
+	* src/gnu/classpath/tools/gjdoc/Main.java: ignore options starting
+	with -J; properly support -docletpath option.
+
+	* src/gnu/classpath/tools/gjdoc/MemberDocImpl.java: override
+	resolveComments() with support for automatic comment inheritance.
+
+	* src/gnu/classpath/tools/gjdoc/MethodDocImpl.java: remove
+	special-case handling of comment inheritance.
+
+	* src/gnu/classpath/tools/gjdoc/PackageDocImpl.java: pass null
+	context member and context tag to tag parser.
+
+	* src/gnu/classpath/tools/gjdoc/ParamTagImpl.java: support context
+	member and context tag.
+
+	* src/gnu/classpath/tools/gjdoc/Parser.java: support unfiltered
+	fields, methods and constructors.
+
+	* src/gnu/classpath/tools/gjdoc/RootDocImpl.java: don't close
+	rawCommentCache before doclet has run.
+
+	* src/gnu/classpath/tools/gjdoc/SeeTagImpl.java: remove debug
+	code.
+
+	* src/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java: support
+	for context member and context tag.
+
+	* src/gnu/classpath/tools/gjdoc/TagImpl.java: likewise.
+
+	* src/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java: likewise.
+
+	* src/gnu/classpath/tools/gjdoc/TagContainer.java: initial
+	version.
+
+2004-12-08  Dalibor Topic  <robilad at kaffe.org>
+
 	* libraries/javalib/gnu/xml/dom/DomAttr.java,
 	libraries/javalib/gnu/xml/dom/DomCharacterData.java,
 	libraries/javalib/gnu/xml/dom/DomDoctype.java,
Index: kaffe/configure
diff -u kaffe/configure:1.396 kaffe/configure:1.397
--- kaffe/configure:1.396	Wed Dec  1 02:41:43 2004
+++ kaffe/configure	Thu Dec  9 01:28:02 2004
@@ -1094,7 +1094,7 @@
   --enable-libxmlj        Enable building of libxmlj
   --disable-xmltest       Do not try to compile and run a test LIBXML program
   --disable-xslttest       Do not try to compile and run a test LIBXSLT program
-  --enable-gjdoc          Enable building of gjdoc
+  --disable-gjdoc         Disable building of gjdoc
   --enable-binreloc       compile with binary relocation support
                           (default=enable when available)
 
@@ -56133,6 +56133,8 @@
 if test "${enable_gjdoc+set}" = set; then
   enableval="$enable_gjdoc"
 
+else
+  enable_gjdoc=yes
 fi;
 
 
Index: kaffe/configure.ac
diff -u kaffe/configure.ac:1.91 kaffe/configure.ac:1.92
--- kaffe/configure.ac:1.91	Wed Dec  1 02:41:46 2004
+++ kaffe/configure.ac	Thu Dec  9 01:28:08 2004
@@ -1909,8 +1909,10 @@
 dnl -------------------------------------------------------------------------
 
 AC_ARG_ENABLE([gjdoc],
-		AS_HELP_STRING([--enable-gjdoc],
-				[Enable building of gjdoc]))
+		AS_HELP_STRING([--disable-gjdoc],
+				[Disable building of gjdoc]),
+		[],
+		[enable_gjdoc=yes])
 
 AM_CONDITIONAL([COND_GJDOC], [test x"$enable_gjdoc" = x"yes"])
 
Index: kaffe/tools/gjdoc/javalib/Makefile.am
diff -u kaffe/tools/gjdoc/javalib/Makefile.am:1.5 kaffe/tools/gjdoc/javalib/Makefile.am:1.6
--- kaffe/tools/gjdoc/javalib/Makefile.am:1.5	Sun Dec  5 18:26:36 2004
+++ kaffe/tools/gjdoc/javalib/Makefile.am	Thu Dec  9 01:28:09 2004
@@ -19,98 +19,103 @@
 toolslib_DATA = $(CLASSFILE)
 
 gjdoc_jar_SRCS = \
-        com/sun/javadoc/ClassDoc.java \
-        com/sun/javadoc/ConstructorDoc.java \
-        com/sun/javadoc/Doc.java \
-        com/sun/javadoc/DocErrorReporter.java \
-        com/sun/javadoc/Doclet.java \
-        com/sun/javadoc/ExecutableMemberDoc.java \
-        com/sun/javadoc/FieldDoc.java \
-        com/sun/javadoc/MemberDoc.java \
-        com/sun/javadoc/MethodDoc.java \
-        com/sun/javadoc/PackageDoc.java \
-        com/sun/javadoc/ParamTag.java \
-        com/sun/javadoc/Parameter.java \
-        com/sun/javadoc/ProgramElementDoc.java \
-        com/sun/javadoc/RootDoc.java \
-        com/sun/javadoc/SeeTag.java \
-        com/sun/javadoc/SerialFieldTag.java \
+	com/sun/javadoc/ClassDoc.java \
+	com/sun/javadoc/ConstructorDoc.java \
+	com/sun/javadoc/Doc.java \
+	com/sun/javadoc/DocErrorReporter.java \
+	com/sun/javadoc/Doclet.java \
+	com/sun/javadoc/ExecutableMemberDoc.java \
+	com/sun/javadoc/FieldDoc.java \
+	com/sun/javadoc/MemberDoc.java \
+	com/sun/javadoc/MethodDoc.java \
+	com/sun/javadoc/PackageDoc.java \
+	com/sun/javadoc/ParamTag.java \
+	com/sun/javadoc/Parameter.java \
+	com/sun/javadoc/ProgramElementDoc.java \
+	com/sun/javadoc/RootDoc.java \
+	com/sun/javadoc/SeeTag.java \
+	com/sun/javadoc/SerialFieldTag.java \
+	com/sun/javadoc/Tag.java \
+	com/sun/javadoc/ThrowsTag.java \
+	com/sun/javadoc/Type.java \
 	com/sun/javadoc/SourcePosition.java \
-        com/sun/javadoc/Tag.java \
-        com/sun/javadoc/ThrowsTag.java \
-        com/sun/javadoc/Type.java \
-        com/sun/tools/doclets/Taglet.java \
-        gnu/classpath/tools/FileSystemClassLoader.java \
-        gnu/classpath/tools/IOToolkit.java \
-        gnu/classpath/tools/doclets/AbstractDoclet.java \
-        gnu/classpath/tools/doclets/DocletConfigurationException.java \
-        gnu/classpath/tools/doclets/DocletOption.java \
-        gnu/classpath/tools/doclets/DocletOptionColonSeparated.java \
-        gnu/classpath/tools/doclets/DocletOptionFile.java \
-        gnu/classpath/tools/doclets/DocletOptionFlag.java \
-        gnu/classpath/tools/doclets/DocletOptionString.java \
-        gnu/classpath/tools/doclets/InvalidPackageWildcardException.java \
-        gnu/classpath/tools/doclets/PackageGroup.java \
-        gnu/classpath/tools/doclets/PackageMatcher.java \
-        gnu/classpath/tools/doclets/StandardTaglet.java \
-        gnu/classpath/tools/doclets/TagletPrinter.java \
-        gnu/classpath/tools/doclets/htmldoclet/CssClass.java \
-        gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java \
-        gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java \
-        gnu/classpath/tools/doclets/xmldoclet/Driver.java \
-        gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java \
-        gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java \
-        gnu/classpath/tools/doclets/xmldoclet/TargetContext.java \
-        gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java \
-        gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java \
-        gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java \
-        gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java \
-        gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java \
-        gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java \
-        gnu/classpath/tools/gjdoc/AbstractTagImpl.java \
-        gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java \
-        gnu/classpath/tools/gjdoc/ClassDocImpl.java \
-        gnu/classpath/tools/gjdoc/ClassDocProxy.java \
-        gnu/classpath/tools/gjdoc/ConstructorDocImpl.java \
-        gnu/classpath/tools/gjdoc/Debug.java \
-        gnu/classpath/tools/gjdoc/DirectoryTree.java \
-        gnu/classpath/tools/gjdoc/DocImpl.java \
-        gnu/classpath/tools/gjdoc/ErrorReporter.java \
-        gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java \
-        gnu/classpath/tools/gjdoc/FieldDocImpl.java \
-        gnu/classpath/tools/gjdoc/GjdocPackageDoc.java \
-        gnu/classpath/tools/gjdoc/GjdocRootDoc.java \
-        gnu/classpath/tools/gjdoc/JavadocWrapper.java \
-        gnu/classpath/tools/gjdoc/LinkTagImpl.java \
-        gnu/classpath/tools/gjdoc/Main.java \
-        gnu/classpath/tools/gjdoc/MemberDocImpl.java \
-        gnu/classpath/tools/gjdoc/MethodDocImpl.java \
-        gnu/classpath/tools/gjdoc/PackageDocImpl.java \
-        gnu/classpath/tools/gjdoc/ParamTagImpl.java \
-        gnu/classpath/tools/gjdoc/ParameterImpl.java \
-        gnu/classpath/tools/gjdoc/ParseException.java \
-        gnu/classpath/tools/gjdoc/Parser.java \
-        gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java \
-        gnu/classpath/tools/gjdoc/RootDocImpl.java \
-        gnu/classpath/tools/gjdoc/SeeTagImpl.java \
-        gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java \
-        gnu/classpath/tools/gjdoc/SourcePositionImpl.java \
-        gnu/classpath/tools/gjdoc/TagImpl.java \
-        gnu/classpath/tools/gjdoc/TemporaryStore.java \
-        gnu/classpath/tools/gjdoc/TextTagImpl.java \
-        gnu/classpath/tools/gjdoc/ThrowsTagImpl.java \
-        gnu/classpath/tools/gjdoc/Timer.java \
-        gnu/classpath/tools/gjdoc/TimerDoclet.java \
-        gnu/classpath/tools/gjdoc/TypeImpl.java \
-        gnu/classpath/tools/gjdoc/WritableType.java \
-        gnu/classpath/tools/java2xhtml/Java2xhtml.java \
-        gnu/classpath/tools/taglets/AuthorTaglet.java \
-        gnu/classpath/tools/taglets/CopyrightTaglet.java \
-        gnu/classpath/tools/taglets/DeprecatedTaglet.java \
-        gnu/classpath/tools/taglets/GenericTaglet.java \
-        gnu/classpath/tools/taglets/SinceTaglet.java \
-        gnu/classpath/tools/taglets/TagletContext.java \
-        gnu/classpath/tools/taglets/VersionTaglet.java
+	com/sun/tools/doclets/Taglet.java \
+	gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java \
+	gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java \
+	gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java \
+	gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java \
+	gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java \
+	gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java \
+	gnu/classpath/tools/doclets/xmldoclet/Driver.java \
+	gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java \
+	gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java \
+	gnu/classpath/tools/doclets/xmldoclet/TargetContext.java \
+	gnu/classpath/tools/doclets/htmldoclet/CssClass.java \
+	gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java \
+	gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java \
+	gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java \
+	gnu/classpath/tools/doclets/AbstractDoclet.java \
+	gnu/classpath/tools/doclets/DocletConfigurationException.java \
+	gnu/classpath/tools/doclets/DocletOption.java \
+	gnu/classpath/tools/doclets/DocletOptionColonSeparated.java \
+	gnu/classpath/tools/doclets/DocletOptionFile.java \
+	gnu/classpath/tools/doclets/DocletOptionFlag.java \
+	gnu/classpath/tools/doclets/DocletOptionString.java \
+	gnu/classpath/tools/doclets/InvalidPackageWildcardException.java \
+	gnu/classpath/tools/doclets/PackageGroup.java \
+	gnu/classpath/tools/doclets/PackageMatcher.java \
+	gnu/classpath/tools/doclets/StandardTaglet.java \
+	gnu/classpath/tools/doclets/TagletPrinter.java \
+	gnu/classpath/tools/gjdoc/AbstractTagImpl.java \
+	gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java \
+	gnu/classpath/tools/gjdoc/ClassDocImpl.java \
+	gnu/classpath/tools/gjdoc/ClassDocProxy.java \
+	gnu/classpath/tools/gjdoc/ConstructorDocImpl.java \
+	gnu/classpath/tools/gjdoc/Debug.java \
+	gnu/classpath/tools/gjdoc/DirectoryTree.java \
+	gnu/classpath/tools/gjdoc/DocImpl.java \
+	gnu/classpath/tools/gjdoc/ErrorReporter.java \
+	gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java \
+	gnu/classpath/tools/gjdoc/FieldDocImpl.java \
+	gnu/classpath/tools/gjdoc/JavadocWrapper.java \
+	gnu/classpath/tools/gjdoc/LinkTagImpl.java \
+	gnu/classpath/tools/gjdoc/Main.java \
+	gnu/classpath/tools/gjdoc/MemberDocImpl.java \
+	gnu/classpath/tools/gjdoc/MethodDocImpl.java \
+	gnu/classpath/tools/gjdoc/PackageDocImpl.java \
+	gnu/classpath/tools/gjdoc/ParamTagImpl.java \
+	gnu/classpath/tools/gjdoc/ParameterImpl.java \
+	gnu/classpath/tools/gjdoc/ParseException.java \
+	gnu/classpath/tools/gjdoc/Parser.java \
+	gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java \
+	gnu/classpath/tools/gjdoc/RootDocImpl.java \
+	gnu/classpath/tools/gjdoc/SeeTagImpl.java \
+	gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java \
+	gnu/classpath/tools/gjdoc/TagImpl.java \
+	gnu/classpath/tools/gjdoc/TemporaryStore.java \
+	gnu/classpath/tools/gjdoc/TextTagImpl.java \
+	gnu/classpath/tools/gjdoc/ThrowsTagImpl.java \
+	gnu/classpath/tools/gjdoc/Timer.java \
+	gnu/classpath/tools/gjdoc/TimerDoclet.java \
+	gnu/classpath/tools/gjdoc/TypeImpl.java \
+	gnu/classpath/tools/gjdoc/WritableType.java \
+	gnu/classpath/tools/gjdoc/GjdocPackageDoc.java \
+	gnu/classpath/tools/gjdoc/GjdocRootDoc.java \
+	gnu/classpath/tools/gjdoc/SourcePositionImpl.java \
+	gnu/classpath/tools/gjdoc/InheritDocTagImpl.java \
+	gnu/classpath/tools/gjdoc/TagContainer.java \
+	gnu/classpath/tools/taglets/CopyrightTaglet.java \
+	gnu/classpath/tools/taglets/AuthorTaglet.java \
+	gnu/classpath/tools/taglets/DeprecatedTaglet.java \
+	gnu/classpath/tools/taglets/GenericTaglet.java \
+	gnu/classpath/tools/taglets/SinceTaglet.java \
+	gnu/classpath/tools/taglets/TagletContext.java \
+	gnu/classpath/tools/taglets/VersionTaglet.java \
+	gnu/classpath/tools/java2xhtml/Java2xhtml.java \
+	gnu/classpath/tools/FileSystemClassLoader.java \
+	gnu/classpath/tools/IOToolkit.java \
+	gnu/classpath/tools/StringToolkit.java 
+
 
 ## Do not delete the previous blank line; update-class-list depends on it
 
Index: kaffe/tools/gjdoc/javalib/Makefile.in
diff -u kaffe/tools/gjdoc/javalib/Makefile.in:1.32 kaffe/tools/gjdoc/javalib/Makefile.in:1.33
--- kaffe/tools/gjdoc/javalib/Makefile.in:1.32	Mon Dec  6 13:17:13 2004
+++ kaffe/tools/gjdoc/javalib/Makefile.in	Thu Dec  9 01:28:09 2004
@@ -358,98 +358,102 @@
 SRCDIRS = com gnu
 toolslib_DATA = $(CLASSFILE)
 gjdoc_jar_SRCS = \
-        com/sun/javadoc/ClassDoc.java \
-        com/sun/javadoc/ConstructorDoc.java \
-        com/sun/javadoc/Doc.java \
-        com/sun/javadoc/DocErrorReporter.java \
-        com/sun/javadoc/Doclet.java \
-        com/sun/javadoc/ExecutableMemberDoc.java \
-        com/sun/javadoc/FieldDoc.java \
-        com/sun/javadoc/MemberDoc.java \
-        com/sun/javadoc/MethodDoc.java \
-        com/sun/javadoc/PackageDoc.java \
-        com/sun/javadoc/ParamTag.java \
-        com/sun/javadoc/Parameter.java \
-        com/sun/javadoc/ProgramElementDoc.java \
-        com/sun/javadoc/RootDoc.java \
-        com/sun/javadoc/SeeTag.java \
-        com/sun/javadoc/SerialFieldTag.java \
+	com/sun/javadoc/ClassDoc.java \
+	com/sun/javadoc/ConstructorDoc.java \
+	com/sun/javadoc/Doc.java \
+	com/sun/javadoc/DocErrorReporter.java \
+	com/sun/javadoc/Doclet.java \
+	com/sun/javadoc/ExecutableMemberDoc.java \
+	com/sun/javadoc/FieldDoc.java \
+	com/sun/javadoc/MemberDoc.java \
+	com/sun/javadoc/MethodDoc.java \
+	com/sun/javadoc/PackageDoc.java \
+	com/sun/javadoc/ParamTag.java \
+	com/sun/javadoc/Parameter.java \
+	com/sun/javadoc/ProgramElementDoc.java \
+	com/sun/javadoc/RootDoc.java \
+	com/sun/javadoc/SeeTag.java \
+	com/sun/javadoc/SerialFieldTag.java \
+	com/sun/javadoc/Tag.java \
+	com/sun/javadoc/ThrowsTag.java \
+	com/sun/javadoc/Type.java \
 	com/sun/javadoc/SourcePosition.java \
-        com/sun/javadoc/Tag.java \
-        com/sun/javadoc/ThrowsTag.java \
-        com/sun/javadoc/Type.java \
-        com/sun/tools/doclets/Taglet.java \
-        gnu/classpath/tools/FileSystemClassLoader.java \
-        gnu/classpath/tools/IOToolkit.java \
-        gnu/classpath/tools/doclets/AbstractDoclet.java \
-        gnu/classpath/tools/doclets/DocletConfigurationException.java \
-        gnu/classpath/tools/doclets/DocletOption.java \
-        gnu/classpath/tools/doclets/DocletOptionColonSeparated.java \
-        gnu/classpath/tools/doclets/DocletOptionFile.java \
-        gnu/classpath/tools/doclets/DocletOptionFlag.java \
-        gnu/classpath/tools/doclets/DocletOptionString.java \
-        gnu/classpath/tools/doclets/InvalidPackageWildcardException.java \
-        gnu/classpath/tools/doclets/PackageGroup.java \
-        gnu/classpath/tools/doclets/PackageMatcher.java \
-        gnu/classpath/tools/doclets/StandardTaglet.java \
-        gnu/classpath/tools/doclets/TagletPrinter.java \
-        gnu/classpath/tools/doclets/htmldoclet/CssClass.java \
-        gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java \
-        gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java \
-        gnu/classpath/tools/doclets/xmldoclet/Driver.java \
-        gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java \
-        gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java \
-        gnu/classpath/tools/doclets/xmldoclet/TargetContext.java \
-        gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java \
-        gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java \
-        gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java \
-        gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java \
-        gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java \
-        gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java \
-        gnu/classpath/tools/gjdoc/AbstractTagImpl.java \
-        gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java \
-        gnu/classpath/tools/gjdoc/ClassDocImpl.java \
-        gnu/classpath/tools/gjdoc/ClassDocProxy.java \
-        gnu/classpath/tools/gjdoc/ConstructorDocImpl.java \
-        gnu/classpath/tools/gjdoc/Debug.java \
-        gnu/classpath/tools/gjdoc/DirectoryTree.java \
-        gnu/classpath/tools/gjdoc/DocImpl.java \
-        gnu/classpath/tools/gjdoc/ErrorReporter.java \
-        gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java \
-        gnu/classpath/tools/gjdoc/FieldDocImpl.java \
-        gnu/classpath/tools/gjdoc/GjdocPackageDoc.java \
-        gnu/classpath/tools/gjdoc/GjdocRootDoc.java \
-        gnu/classpath/tools/gjdoc/JavadocWrapper.java \
-        gnu/classpath/tools/gjdoc/LinkTagImpl.java \
-        gnu/classpath/tools/gjdoc/Main.java \
-        gnu/classpath/tools/gjdoc/MemberDocImpl.java \
-        gnu/classpath/tools/gjdoc/MethodDocImpl.java \
-        gnu/classpath/tools/gjdoc/PackageDocImpl.java \
-        gnu/classpath/tools/gjdoc/ParamTagImpl.java \
-        gnu/classpath/tools/gjdoc/ParameterImpl.java \
-        gnu/classpath/tools/gjdoc/ParseException.java \
-        gnu/classpath/tools/gjdoc/Parser.java \
-        gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java \
-        gnu/classpath/tools/gjdoc/RootDocImpl.java \
-        gnu/classpath/tools/gjdoc/SeeTagImpl.java \
-        gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java \
-        gnu/classpath/tools/gjdoc/SourcePositionImpl.java \
-        gnu/classpath/tools/gjdoc/TagImpl.java \
-        gnu/classpath/tools/gjdoc/TemporaryStore.java \
-        gnu/classpath/tools/gjdoc/TextTagImpl.java \
-        gnu/classpath/tools/gjdoc/ThrowsTagImpl.java \
-        gnu/classpath/tools/gjdoc/Timer.java \
-        gnu/classpath/tools/gjdoc/TimerDoclet.java \
-        gnu/classpath/tools/gjdoc/TypeImpl.java \
-        gnu/classpath/tools/gjdoc/WritableType.java \
-        gnu/classpath/tools/java2xhtml/Java2xhtml.java \
-        gnu/classpath/tools/taglets/AuthorTaglet.java \
-        gnu/classpath/tools/taglets/CopyrightTaglet.java \
-        gnu/classpath/tools/taglets/DeprecatedTaglet.java \
-        gnu/classpath/tools/taglets/GenericTaglet.java \
-        gnu/classpath/tools/taglets/SinceTaglet.java \
-        gnu/classpath/tools/taglets/TagletContext.java \
-        gnu/classpath/tools/taglets/VersionTaglet.java
+	com/sun/tools/doclets/Taglet.java \
+	gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java \
+	gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java \
+	gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java \
+	gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java \
+	gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java \
+	gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java \
+	gnu/classpath/tools/doclets/xmldoclet/Driver.java \
+	gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java \
+	gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java \
+	gnu/classpath/tools/doclets/xmldoclet/TargetContext.java \
+	gnu/classpath/tools/doclets/htmldoclet/CssClass.java \
+	gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java \
+	gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java \
+	gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java \
+	gnu/classpath/tools/doclets/AbstractDoclet.java \
+	gnu/classpath/tools/doclets/DocletConfigurationException.java \
+	gnu/classpath/tools/doclets/DocletOption.java \
+	gnu/classpath/tools/doclets/DocletOptionColonSeparated.java \
+	gnu/classpath/tools/doclets/DocletOptionFile.java \
+	gnu/classpath/tools/doclets/DocletOptionFlag.java \
+	gnu/classpath/tools/doclets/DocletOptionString.java \
+	gnu/classpath/tools/doclets/InvalidPackageWildcardException.java \
+	gnu/classpath/tools/doclets/PackageGroup.java \
+	gnu/classpath/tools/doclets/PackageMatcher.java \
+	gnu/classpath/tools/doclets/StandardTaglet.java \
+	gnu/classpath/tools/doclets/TagletPrinter.java \
+	gnu/classpath/tools/gjdoc/AbstractTagImpl.java \
+	gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java \
+	gnu/classpath/tools/gjdoc/ClassDocImpl.java \
+	gnu/classpath/tools/gjdoc/ClassDocProxy.java \
+	gnu/classpath/tools/gjdoc/ConstructorDocImpl.java \
+	gnu/classpath/tools/gjdoc/Debug.java \
+	gnu/classpath/tools/gjdoc/DirectoryTree.java \
+	gnu/classpath/tools/gjdoc/DocImpl.java \
+	gnu/classpath/tools/gjdoc/ErrorReporter.java \
+	gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java \
+	gnu/classpath/tools/gjdoc/FieldDocImpl.java \
+	gnu/classpath/tools/gjdoc/JavadocWrapper.java \
+	gnu/classpath/tools/gjdoc/LinkTagImpl.java \
+	gnu/classpath/tools/gjdoc/Main.java \
+	gnu/classpath/tools/gjdoc/MemberDocImpl.java \
+	gnu/classpath/tools/gjdoc/MethodDocImpl.java \
+	gnu/classpath/tools/gjdoc/PackageDocImpl.java \
+	gnu/classpath/tools/gjdoc/ParamTagImpl.java \
+	gnu/classpath/tools/gjdoc/ParameterImpl.java \
+	gnu/classpath/tools/gjdoc/ParseException.java \
+	gnu/classpath/tools/gjdoc/Parser.java \
+	gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java \
+	gnu/classpath/tools/gjdoc/RootDocImpl.java \
+	gnu/classpath/tools/gjdoc/SeeTagImpl.java \
+	gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java \
+	gnu/classpath/tools/gjdoc/TagImpl.java \
+	gnu/classpath/tools/gjdoc/TemporaryStore.java \
+	gnu/classpath/tools/gjdoc/TextTagImpl.java \
+	gnu/classpath/tools/gjdoc/ThrowsTagImpl.java \
+	gnu/classpath/tools/gjdoc/Timer.java \
+	gnu/classpath/tools/gjdoc/TimerDoclet.java \
+	gnu/classpath/tools/gjdoc/TypeImpl.java \
+	gnu/classpath/tools/gjdoc/WritableType.java \
+	gnu/classpath/tools/gjdoc/GjdocPackageDoc.java \
+	gnu/classpath/tools/gjdoc/GjdocRootDoc.java \
+	gnu/classpath/tools/gjdoc/SourcePositionImpl.java \
+	gnu/classpath/tools/gjdoc/InheritDocTagImpl.java \
+	gnu/classpath/tools/gjdoc/TagContainer.java \
+	gnu/classpath/tools/taglets/CopyrightTaglet.java \
+	gnu/classpath/tools/taglets/AuthorTaglet.java \
+	gnu/classpath/tools/taglets/DeprecatedTaglet.java \
+	gnu/classpath/tools/taglets/GenericTaglet.java \
+	gnu/classpath/tools/taglets/SinceTaglet.java \
+	gnu/classpath/tools/taglets/TagletContext.java \
+	gnu/classpath/tools/taglets/VersionTaglet.java \
+	gnu/classpath/tools/java2xhtml/Java2xhtml.java \
+	gnu/classpath/tools/FileSystemClassLoader.java \
+	gnu/classpath/tools/IOToolkit.java \
+	gnu/classpath/tools/StringToolkit.java 
 
 gjdoc_ressources = \
         dtd/dbcentx.mod \
Index: kaffe/tools/gjdoc/javalib/com/sun/javadoc/ClassDoc.java
diff -u kaffe/tools/gjdoc/javalib/com/sun/javadoc/ClassDoc.java:1.1 kaffe/tools/gjdoc/javalib/com/sun/javadoc/ClassDoc.java:1.2
--- kaffe/tools/gjdoc/javalib/com/sun/javadoc/ClassDoc.java:1.1	Wed Apr 14 19:41:07 2004
+++ kaffe/tools/gjdoc/javalib/com/sun/javadoc/ClassDoc.java	Thu Dec  9 01:28:09 2004
@@ -140,6 +140,21 @@
 
 /**
   * This method returns the list of fields that are visible to the user in
+  * this class, or the list of all fields in this class.
+  *
+  * @param filtered if true, only return visible (included) fields;
+  * otherwise, return all fields.
+  *
+  * @return The list of visible fields in this class, or the list of
+  * all fields in this class.
+  */
+public abstract FieldDoc[]
+fields(boolean filtered);
+
+/*************************************************************************/
+
+/**
+  * This method returns the list of fields that are visible to the user in
   * this class.  Does this depend on the -private -protected, etc flags
   * passed to javadoc?
   *
@@ -151,6 +166,22 @@
 /*************************************************************************/
 
 /**
+  * This method returns either the list of methods that are visible to
+  * the user in the class represented by this object, or a list of all
+  * methods, excluding constructor methods.
+  *
+  * @param filtered if true, only return visible (included) methods;
+  * otherwise, return all methods.
+  *
+  * @return The list of all methods in this class, or the list of
+  * visible methods in this class.
+  */
+public abstract MethodDoc[]
+methods(boolean filtered);
+
+/*************************************************************************/
+
+/**
   * This method returns the list of methods that are visible to the user in
   * the class represented by this object, excluding constructor methods.
   *
@@ -158,6 +189,22 @@
   */
 public abstract MethodDoc[]
 methods();
+
+/*************************************************************************/
+
+/**
+  * This method returns either the list of constructors that are
+  * visible to the user in the class represented by this object, or
+  * the list of all constructors.
+  *
+  * @param filtered if true, only return visible (included)
+  * constructors; otherwise, return all constructors.
+  *
+  * @return The list of all constructors in this class, or the list
+  * visible constructors in this class.
+  */
+public abstract ConstructorDoc[]
+constructors(boolean filtered);
 
 /*************************************************************************/
 
Index: kaffe/tools/gjdoc/javalib/com/sun/javadoc/FieldDoc.java
diff -u kaffe/tools/gjdoc/javalib/com/sun/javadoc/FieldDoc.java:1.1 kaffe/tools/gjdoc/javalib/com/sun/javadoc/FieldDoc.java:1.2
--- kaffe/tools/gjdoc/javalib/com/sun/javadoc/FieldDoc.java:1.1	Wed Apr 14 19:41:07 2004
+++ kaffe/tools/gjdoc/javalib/com/sun/javadoc/FieldDoc.java	Thu Dec  9 01:28:09 2004
@@ -67,5 +67,17 @@
 public abstract SerialFieldTag[]
 serialFieldTags();
 
+/*************************************************************************/
+
+/**
+  * This method returns the value of this static field.
+  *
+  * @return The value of this static field.
+  */
+public abstract Object
+constantValue();
+
+
+
 } // interface FieldDoc
 
Index: kaffe/tools/gjdoc/javalib/gnu/classpath/tools/FileSystemClassLoader.java
diff -u kaffe/tools/gjdoc/javalib/gnu/classpath/tools/FileSystemClassLoader.java:1.1 kaffe/tools/gjdoc/javalib/gnu/classpath/tools/FileSystemClassLoader.java:1.2
--- kaffe/tools/gjdoc/javalib/gnu/classpath/tools/FileSystemClassLoader.java:1.1	Sun Dec  5 18:26:40 2004
+++ kaffe/tools/gjdoc/javalib/gnu/classpath/tools/FileSystemClassLoader.java	Thu Dec  9 01:28:10 2004
@@ -25,13 +25,21 @@
 import java.io.FileNotFoundException;
 import java.io.InputStream;
 import java.io.IOException;
+import java.io.StreamTokenizer;
+import java.io.StringReader;
 
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import java.util.LinkedList;
 import java.util.List;
 import java.util.ArrayList;
 import java.util.StringTokenizer;
 
 import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
+import java.util.jar.Manifest;
+import java.util.jar.Attributes;
 
 /**
  *  A <code>ClassLoader</code> implementation which looks for classes
@@ -53,6 +61,12 @@
       for (StringTokenizer st = new StringTokenizer(path, File.pathSeparator); st.hasMoreTokens(); ) {
          File pathComponent = new File(st.nextToken());
          components.add(pathComponent);
+         if (pathComponent.exists() && !pathComponent.isDirectory()) {
+            List subComponents = tryGetJarFileClassPathComponents(pathComponent);
+            if (null != subComponents) {
+               components.addAll(subComponents);
+            }
+         }
       }
       File[] componentArray = new File[components.size()];
       this.pathComponents = (File[])components.toArray(componentArray);
@@ -86,6 +100,23 @@
       return defineClass(name, b, 0, b.length);
    }
 
+   public URL findResource(String name)
+   {
+      StreamInfo streamInfo = getResourceStream(name);
+      if (null == streamInfo) {
+         return super.findResource(name);
+      }
+      else {
+         try {
+            return streamInfo.getURL();
+         }
+         catch (MalformedURLException e) {
+            System.err.println("WARNING: In FileSystemClassLoader: could not derive URL from file or jar entry: " + e.toString());
+            return null;
+         }
+      }
+   }
+
    private byte[] readFromStream(InputStream in, long size) 
       throws IOException
    {
@@ -98,38 +129,168 @@
       in.close();
       return result;
    }
+
+   private byte[] readFromStream(StreamInfo streamInfo)
+      throws IOException
+   {
+      InputStream in = streamInfo.openStream();
+      long size = streamInfo.getSize();
+
+      byte[] result = new byte[(int)size];
+      int nread = 0;
+      int offset = 0;
+      while (offset < size && (nread = in.read(result, offset, (int)(size - offset))) >= 0) {
+         offset += nread;
+      }
+      in.close();
+      return result;
+   }
+
+   private static interface StreamInfo
+   {
+      public InputStream openStream()
+         throws IOException;
+      public long getSize();
+      public URL getURL()
+         throws MalformedURLException;
+   }
+
+   private static class FileStreamInfo
+      implements StreamInfo
+   {
+      File file;
+
+      FileStreamInfo(File file)
+      {
+         this.file = file;
+      }
+
+      public InputStream openStream()
+         throws IOException
+      {
+         return new FileInputStream(file);
+      }
+
+      public long getSize()
+      {
+         return file.length();
+      }
+
+      public URL getURL()
+         throws MalformedURLException
+      {
+         return file.toURL();
+      }
+   }
+
+   private static class JarStreamInfo
+      implements StreamInfo
+   {
+      private File file;
+      private JarFile jarFile;
+      private JarEntry jarEntry;
+
+      JarStreamInfo(File file, JarFile jarFile, JarEntry jarEntry)
+      {
+         this.file = file;
+         this.jarFile = jarFile;
+         this.jarEntry = jarEntry;
+      }
+
+      public InputStream openStream()
+         throws IOException
+      {
+         return jarFile.getInputStream(jarEntry);
+      }
+
+      public long getSize()
+      {
+         return jarEntry.getSize();
+      }
+
+      public URL getURL()
+         throws MalformedURLException
+      {
+         String urlString = "jar:" + file.toURL() + "!/" + jarEntry.getName();
+         return new URL(urlString);
+      }
+   }
    
+   private StreamInfo getResourceStream(String path)
+   {
+      for (int i = 0; i < pathComponents.length; ++i) {
+         try {
+            File parent = pathComponents[i];
+            if (parent.isDirectory()) {
+               File file = new File(parent, path);
+               if (file.exists()) {
+                  return new FileStreamInfo(file);
+               }
+            }
+            else {
+               JarFile jarFile = new JarFile(parent, false, JarFile.OPEN_READ);
+               JarEntry jarEntry = jarFile.getJarEntry(path);
+               if (null != jarEntry) {
+                  return new JarStreamInfo(parent, jarFile, jarEntry);
+               }
+            }
+         }
+         catch (IOException ignore) {
+         }
+      }
+      return null;
+   }
+
    private byte[] loadClassData(String className) 
       throws ClassNotFoundException 
    {
+      String classFileName = className.replace('.', File.separatorChar) + ".class";
+      StreamInfo streamInfo = getResourceStream(classFileName);
+
       try {
-         String classFileName = className.replace('.', File.separatorChar) + ".class";
-         
-         for (int i = 0; i < pathComponents.length; ++i) {
-            try {
-               File parent = pathComponents[i];
-               if (parent.isDirectory()) {
-                  File file = new File(parent, classFileName);
-                  if (file.exists()) {
-                     return readFromStream(new FileInputStream(file), file.length());
-                  }
-               }
-               else {
-                  JarFile jarFile = new JarFile(parent, false, JarFile.OPEN_READ);
-                  JarEntry jarEntry = jarFile.getJarEntry(classFileName);
-                  if (null != jarEntry) {
-                     return readFromStream(jarFile.getInputStream(jarEntry), 
-                                           jarEntry.getSize());
+         if (null != streamInfo) {
+            return readFromStream(streamInfo);
+         }
+      }
+      catch (IOException ignore) {
+      }
+
+      throw new ClassNotFoundException(className);
+   }
+
+   private static List tryGetJarFileClassPathComponents(File file)
+   {
+      try {
+         JarFile jarFile = new JarFile(file, false, JarFile.OPEN_READ);
+         Manifest manifest = jarFile.getManifest();
+         if (null != manifest) {
+            Attributes mainAttributes = manifest.getMainAttributes();
+            if (null != mainAttributes) {
+               String classPath = mainAttributes.getValue(Attributes.Name.CLASS_PATH);
+               if (null != classPath) {
+                  List result = new LinkedList();
+                  StreamTokenizer tokenizer = new StreamTokenizer(new StringReader(classPath));
+                  tokenizer.resetSyntax();
+                  tokenizer.wordChars(0, Integer.MAX_VALUE);
+                  tokenizer.whitespaceChars(9, 9);   // tab
+                  tokenizer.whitespaceChars(10, 10); // lf
+                  tokenizer.whitespaceChars(13, 13); // cr
+                  tokenizer.whitespaceChars(32, 32); // space
+                  tokenizer.quoteChar('"');
+                  int token;
+                  while ((token = tokenizer.nextToken()) != StreamTokenizer.TT_EOF) {
+                     if (StreamTokenizer.TT_WORD == token) {
+                        result.add(new File(file.getParentFile(), tokenizer.sval));
+                     }
                   }
+                  return result;
                }

*** Patch too long, truncated ***




More information about the kaffe mailing list