🐛 #69 Fixed a regression in 0.14.0 where attempting to get Javadoc for a nested class would throw IllegalArgumentException. Thank you to yanxiyue for investigating the issue.
🐛 #70 Fixed a problem where classes with absolutely no Javadoc would not inherit method documentation.
✨ #61 Thanks to Sheikah45, methods without documentation now inherit documentation from superclass or implemented interface.
✨ #52
Added support for Java 16's record classes.
Use the new ClassJavadoc.getRecordComponents()
method to get @param
tags
from the class documentation / canonical constructor.
🐛 #50
RuntimeJavadoc.getJavadoc(Method)
no longer fails when parameters have
certain annotations. Also, the annotation names no longer leak into
MethodJavadoc.getParameterTypes()
.
🐛 #58
When constructor documentation is not found, the returned empty
MethodJavadoc now has the correct method name of <init>
instead of
the fully-qualified class name.
🐛 #59
@see
tags in class documentation are now returned by
ClassJavadoc.getSeeAlso()
instead of ClassJavadoc.getOther()
.
🔥 #57 Removed the duplicate repackaged version of minimal-json from the annotation processor JAR. Environments that complain about duplicate classes should be happier now.
⬆️ #56 Java 1.8 is now the minimum required version.
🚚 Moved JavadocAnnotationProcessor to avoid split package between
annotation processor and runtime library. The new fully-qualified name
is com.github.therapi.runtimejavadoc.scribe.JavadocAnnotationProcessor
.
Thanks to Chris Kirk (kirkch) for the improvements and fixes in this version.
Issues resolved:
✨ #48 Use visitor pattern for formatting comments
🐛 #21 @throws never parsed as ThrowsJavadoc
🐛 #41 Constructor javadoc is missing when there is no class level java doc
🐛 #43 @see on fields appears under other
Issues resolved:
✨ #37 Support reading constructor Javadoc
🐛 #36 Reader throws AssertionError when parsing malformed "see" tag
🐛 #38 Fix @code tag parsing
It's now possible to get the Javadoc of nested classes in the default package.
Issues resolved:
🐛 #35 Can't get Javadoc for nested class in default package
Thanks to Benny Bottema, first class support for @value
tags, and fixes for @see
tags.
Thanks to Benny Bottema, method signatures in link tags are now parsed correctly.
The isPresent()
method on Javadoc objects is deprecated in favor of
!isEmpty()
.
Thanks to Benny Bottema, now compatible with Java 7.
Public API methods that previously returned Optional<X>
now return X
,
always non-null.
If the Javadoc is not available, the returned object will be a placeholder
following the Null Object Pattern. A placeholder acts just a like a "real"
Class/Method/FieldDoc
object, but its methods return values that model
absent Javadoc.
If you need to distinguish a placeholder from a "real"
documentation object, you can call the isPresent()
method which always
returns false
for placeholders.
Issues resolved:
✨ #22 Make this available in Java 7 (Benny Bottema)
Thanks to Joffrey Bion, inline tags and links in comments are now parsed
and presented as InlineTag
and InlineLink
comment elements.
Issues resolved:
✨ #17 Add links and tags elements to Comment (joffrey-bion)
Thanks to contributions from Joffrey Bion and Simon Kissane, it's now possible to read the Javadoc of fields and enum constants.
Issues resolved:
✨ #15 Add field and enum constants support (joffrey-bion, skissane)
🐛 #12 NullPointerException in RuntimeJavadoc due to null ClassLoader
Javadoc is now stored as class path resources instead of Java classes, yielding smaller JAR sizes.
Issues resolved:
✨ #10 Write Javadoc to class path resources instead of Java classes
✨ #8 Don't generate companion class if there is no Javadoc
Javadoc for all classes is now retained by default. The @RetainJavadoc
annotation is no longer required.
Breaking changes:
🚚 The annotation processor is now a separate artifact,
com.github.therapi:therapi-runtime-javadoc-scribe
.
Issues resolved:
✨ #7 Separate the annotation processor from the runtime library
✨ #5 Provide RuntimeJavadoc.getJavadoc(Method) (Thanks @joffrey-bion!)
✨ #4 Allow the use of a package whitelist instead of annotating on each class
🐛 #3 ClassJavadoc.getName() should return the class name
🎉 Complete overhaul to use an annotation processor instead of a Gradle plugin. The new approach is compatible with Maven projects, and works when code is run directly from an IDE.
🐛 Fix reading Javadoc for inner classes.
✨ Adds CommentFormatter to help convert comments to strings.
🎉 Initial release