Public API for programmatic registration of Taglet?

Jonathan Gibbons jonathan.gibbons at oracle.com
Wed May 2 19:46:39 UTC 2018


Very nice workaround.

-- Jon

On 05/02/2018 12:44 PM, Martin Desruisseaux wrote:
> Thanks!
>
> In the main time (just in case it may be of some use to someone), below
> is the workaroud I applied in order to find the primary Doclet class:
>
>      @Override
>      public void init(final DocletEnvironment env, final jdk.javadoc.doclet.Doclet doclet) {
>          StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE).walk(stream ->
>                  stream.filter(frame -> frame.getClassName().equals("mypackage.MyDoclet"))
>                        .map(frame -> frame.getDeclaringClass()).findFirst()).ifPresent(c -> init(c));
>      }
>
>      /**
>       * Invoked with the primary doclet class.
>       * This is not MyDoclet.class because of different ClassLoader.
>       */
>      protected void init(final Class<?> doclet) {
>          // Invoke some method using reflection.
>      }
>
>      Martin
>
> Le 02/05/2018 à 20:23, Jonathan Gibbons a écrit :
>
>> FYI, the Taglet.init issue has been addressed.
>>
>> https://bugs.openjdk.java.net/browse/JDK-8201817
>>
>> The issue about programmatic registration (addCustomTag) is still
>> under investigation.
>>
>> -- Jon
>>



More information about the javadoc-dev mailing list