Bug 3056

Summary: Exclude Test cases from public java doc
Product: frysk Reporter: Tom Tromey <tromey>
Component: generalAssignee: Andrew Cagney <cagney>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: unspecified   
Target Milestone: ---   
Host: Target:
Build: Last reconfirmed:
Bug Depends on:    
Bug Blocks: 3390    

Description Tom Tromey 2006-08-15 15:27:49 UTC
While reading through the online javadoc for frysk I noticed a couple oddities.

First, many things are undocumented.

Second, the various Test classes are included in the main javadoc.
This clutters the pages and makes it harder to see what is really API.
Comment 1 Mark Wielaard 2006-08-23 10:34:55 UTC
The Test classes are public because of an oddity with junit which requires this
(or at least, the way our build system uses junit). But it would be good to
don't include them in the public documentation.
Comment 2 Andrew Cagney 2006-10-19 20:08:34 UTC
Should this work?

cagney@nettle$ find `echo
../frysk/frysk-imports:../frysk/frysk-sys:../frysk/frysk-core:../frysk/frysk-gtk:../frysk/frysk-gui:./frysk-imports:./frysk-sys:./frysk-core:./frysk-gtk:./frysk-gui:../frysk/frysk-imports/getopt/src:../frysk/frysk-imports/jline/src:../frysk/frysk-imports/junit/src
| tr : ' '` -type f -name '*.java' -print > x &&
CLASSPATH=/usr/share/java/libgcj-`gcj -dumpversion`.jar gjdoc -public -link
http://developer.classpath.org/doc/         -link
http://java-gnome.sourceforge.net/docs/javadoc/         -validhtml        
-reflection  -overview ../frysk/overview.html         -source 1.4         -d
javadoc/$scope         -use         -linksource         -doctitle
'<em>frysk</em> - Execution Analysis Technology'         -windowtitle 'FRYSK'  
      -group "<em>frysk</em> Packages" 'frysk*'         -group "Imported
Packages" 'jline*:getopt*:inua*:lib*'         -subpackages
'frysk:inua:jline:getopt:lib' @x
WARNING: No classes found under subpackage frysk
WARNING: No classes found under subpackage inua
WARNING: No classes found under subpackage jline
WARNING: No classes found under subpackage getopt
WARNING: No classes found under subpackage lib
Loading source file
./../frysk/frysk-imports/jline/src/jline/FileNameCompletor.java ...
Loading source file
./../frysk/frysk-imports/jline/src/jline/SimpleCompletor.java ...
Loading source file ./../frysk/frysk-imports/jline/src/jline/ConsoleReader.java ...
Loading source file
./../frysk/frysk-imports/junit/src/junit/awtui/TestRunner.java ...
Exception in thread "main" java.awt.AWTError: Cannot load AWT toolkit:
gnu.java.awt.peer.gtk.GtkToolkit
   at java.awt.Toolkit.getDefaultToolkit(libgcj.so.7)
   at java.awt.MenuComponent.<clinit>(libgcj.so.7)
   at java.lang.Class.initializeClass(libgcj.so.7)
   at java.lang.Class.initializeClass(libgcj.so.7)
   at java.lang.Class.forName(libgcj.so.7)
   at java.lang.Class.forName(libgcj.so.7)
   at
gnu.classpath.tools.gjdoc.RootDocImpl$ResolvedImportReflectionPackage.match(lib-gnu-classpath-tools-gjdoc.so.0)
   at
gnu.classpath.tools.gjdoc.RootDocImpl.resolveClassName(lib-gnu-classpath-tools-gjdoc.so.0)
   at
gnu.classpath.tools.gjdoc.ClassDocImpl.findClass(lib-gnu-classpath-tools-gjdoc.so.0)
   at
gnu.classpath.tools.gjdoc.ClassDocImpl.findClass(lib-gnu-classpath-tools-gjdoc.so.0)
   at
gnu.classpath.tools.gjdoc.ClassDocImpl.typeForString(lib-gnu-classpath-tools-gjdoc.so.0)
   at
gnu.classpath.tools.gjdoc.ExecutableMemberDocImpl.createFromSource(lib-gnu-classpath-tools-gjdoc.so.0)
   at
gnu.classpath.tools.gjdoc.FunctionComponent.process(lib-gnu-classpath-tools-gjdoc.so.0)
   at gnu.classpath.tools.gjdoc.Parser.parse(lib-gnu-classpath-tools-gjdoc.so.0)
  at
gnu.classpath.tools.gjdoc.ClassComponent.process(lib-gnu-classpath-tools-gjdoc.so.0)
   at gnu.classpath.tools.gjdoc.Parser.parse(lib-gnu-classpath-tools-gjdoc.so.0)
  at
gnu.classpath.tools.gjdoc.Parser.processSourceFile(lib-gnu-classpath-tools-gjdoc.so.0)
   at
gnu.classpath.tools.gjdoc.RootDocImpl.build(lib-gnu-classpath-tools-gjdoc.so.0)
   at gnu.classpath.tools.gjdoc.Main.startDoclet(lib-gnu-classpath-tools-gjdoc.so.0)
   at gnu.classpath.tools.gjdoc.Main.start(lib-gnu-classpath-tools-gjdoc.so.0)
   at gnu.classpath.tools.gjdoc.Main.main(lib-gnu-classpath-tools-gjdoc.so.0)
Caused by: java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkToolkit
   at java.lang.Class.forName(libgcj.so.7)
   at java.lang.Class.forName(libgcj.so.7)
   at java.awt.Toolkit.getDefaultToolkit(libgcj.so.7)
   ...20 more
Comment 3 Andrew Cagney 2006-12-09 18:22:47 UTC
Copying the .java to a scratch directory, stripping out the files that shouldn't
be documented, and then running GJDOC, gets around all the issues.

Index: ChangeLog
2006-12-09  Andrew Cagney  <cagney@redhat.com>

        * Makefile.am (SOURCEPATH): Delete.
        (SOURCEDIRS): Add *dir directories.
        (javadoc): Re-implement.  Copy java source to working directory;
        for public, remove Test and Stress files.  Use -all.
        (upload-javadoc): Exclude source directory.