Support annotations to specify function metadata #113
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello,
I've extended this plugin to support annotations to declare some function metadata on the function itself. If you think this is scope creep or don't prefer the approach/added dependency, no problem at all, but I thought I would share in case this is something that others would find useful.
The idea is that you could use a
@Doc
annotation (from our OSS https://github.com/ElderResearch/commons-jvm) like so:and then you don't need to specify that metadata in your POM (though you do have to declare the project as a dependency to the plugin so it can introspect the handler:
Additionally, if the version is not specified, it will use the package's implementation version (though specifying version via
${project.version}
as is possible today is just as good).The other benefit is that one handler can introspect another (by instantiating and calling
getDocumentation
) to get its function name at runtime for functions that call other functions.