finereport2001 / markdown-doclet

Automatically exported from code.google.com/p/markdown-doclet
Other
0 stars 0 forks source link

Breaks when used in combination with other custom taglet library, e.g. ditaa-addons #5

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
I currently use @textdiagram taglet from http://ditaa-addons.sourceforge.net/.

When I include markdown-doclet in my ant's javadoc generation task, e.g.
<javadoc ....

  <doclet name="com.visural.doclets.markdown.standard.Standard">
    <path refid="..."/>
  </doclet>
  <taglet name="se.ngm.javadoc.TextDiagramTaglet">
    <path refid="..."/>
  </taglet>

</javadoc>

I get this exception:
  [javadoc] java.lang.ClassCastException: se.ngm.javadoc.TextDiagramTaglet
  [javadoc]     at 
com.visural.doclets.markdown.internal.toolkit.taglets.TagletManager.initCustomTa
gArrays(Taglet
Manager
.java:605)
  [javadoc]     at 
com.visural.doclets.markdown.internal.toolkit.taglets.TagletManager.getInlineCus
tomTags(Taglet
Manager
.java:500)
  [javadoc]     at 
com.visural.doclets.markdown.internal.toolkit.taglets.TagletWriter.getInlineTagO
uput(TagletWri
ter.jav
a:212)
  [javadoc]     at 
com.visural.doclets.markdown.formats.html.HtmlDocletWriter.commentTagsToString(H
tmlDocletWrite
r.java:
1468)
  [javadoc]     at 
com.visural.doclets.markdown.formats.html.HtmlDocletWriter.printCommentTags(Html
DocletWriter.j
ava:143
4)
  [javadoc]     at 
com.visural.doclets.markdown.formats.html.HtmlDocletWriter.printSummaryComment(H
tmlDocletWrite
r.java:
1407)
  [javadoc]     at 
com.visural.doclets.markdown.formats.html.HtmlDocletWriter.printSummaryComment(H
tmlDocletWrite
r.java:
1403)
  [javadoc]     at 
com.visural.doclets.markdown.formats.html.AbstractIndexWriter.printComment(Abstr
actIndexWriter
.java:2
10)
  [javadoc]     at 
com.visural.doclets.markdown.formats.html.AbstractIndexWriter.printDescription(A
bstractIndexWr
iter.ja
va:144)
  [javadoc]     at 
com.visural.doclets.markdown.formats.html.AbstractIndexWriter.generateContents(A
bstractIndexWr
iter.ja
va:109)
  [javadoc]     at 
com.visural.doclets.markdown.formats.html.SingleIndexWriter.generateIndexFile(Si
ngleIndexWrite
r.java:
95)
  [javadoc]     at 
com.visural.doclets.markdown.formats.html.SingleIndexWriter.generate(SingleIndex
Writer.java:70
)
  [javadoc]     at 
com.visural.doclets.markdown.formats.html.HtmlDoclet.generateOtherFiles(HtmlDocl
et.java:127)
  [javadoc]     at 
com.visural.doclets.markdown.internal.toolkit.AbstractDoclet.startGeneration(Abs
tractDoclet.ja
va:142)

  [javadoc]     at 
com.visural.doclets.markdown.internal.toolkit.AbstractDoclet.start(AbstractDocle
t.java:84)
  [javadoc]     at 
com.visural.doclets.markdown.formats.html.HtmlDoclet.start(HtmlDoclet.java:63)
  [javadoc]     at com.visural.doclets.markdown.standard.Standard.start(Standard.java:41)
  [javadoc]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  [javadoc]     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  [javadoc] Generating ...target\javadoc\index-all.html...
  [javadoc]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
  [javadoc] 1 error
  [javadoc]     at java.lang.reflect.Method.invoke(Method.java:585)
  [javadoc] 1 warning
  [javadoc]     at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:269)
  [javadoc]     at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:143)
  [javadoc]     at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340)
  [javadoc]     at com.sun.tools.javadoc.Start.begin(Start.java:128)
  [javadoc]     at com.sun.tools.javadoc.Main.execute(Main.java:41)
  [javadoc]     at com.sun.tools.javadoc.Main.main(Main.java:31)

This is happening even if there is no actual custom taglet in the javadoc. 
Merely including 
the custom taglet in javadoc ant task breaks it.

Any chance we can get the doclet works or coexists with external custom taglet 
library ?
Briefly looking at the code, the issue seems to due to you assuming that every 
custom taglet 
is yours own, i.e. it must implements com.visural.doclets.markdown.Taglet.

Is there a reason why you would not support com.sun.tools.doclets.Taglet (which 
se.ngm.javadoc.TextDiagramTaglet implements) ?

Original issue reported on code.google.com by chilang@gmail.com on 16 Apr 2010 at 11:50

GoogleCodeExporter commented 9 years ago

Original comment by tibe...@gmail.com on 22 Apr 2010 at 3:53

GoogleCodeExporter commented 9 years ago
Not a simple one to fix, due to the crazy design of the standard doclet.

I'll see what I can do.

Original comment by tibe...@gmail.com on 22 Apr 2010 at 4:11

GoogleCodeExporter commented 9 years ago
May not be able to fix.

Forking the doclet is necessary due to prevention of modification by Sun, see:

http://forums.sun.com/thread.jspa?threadID=773492
http://www.richardnichols.net/2009/06/markdown-doclet-for-javadoc/

The core issue is that 
com.visural.doclets.markdown.internal.toolkit.taglets.Taglet
is forked. However we can not implement the standard sun interface either, 
because it
requires TagletWriter to be Sun's version to implement the interface correctly.

This creates a dependency mess and there doesn't seem to be a clear point where 
I can
silo the interface.

Original comment by tibe...@gmail.com on 22 Apr 2010 at 4:26

GoogleCodeExporter commented 9 years ago
Actually is possible to fix.

Fixed and packaged into MarkdownDoclet-3.0.jar

Original comment by tibe...@gmail.com on 22 Apr 2010 at 7:35

GoogleCodeExporter commented 9 years ago
This is fantastic! Just realized about this via your blog. 
Thank you very much for the fix.

Original comment by chilang@gmail.com on 13 May 2010 at 4:15