Uploaded image for project: 'James Server'
  1. James Server
  2. JAMES-2325

Allow to exclude some matcher/mailet from documentation

    XMLWordPrintableJSON

Details

    Description

      Apache James uses the `mailetdocs-maven-plugin` in order to build the mailet/matcher documentation.

      This plugin scans the sources, finds mailet and matcher, then generates the documentation entry from its javadoc.

      Nowadays all mailet and matchers are included.

      This is a problem because we have some test specifics mailets/matcher that are not usable as part of James but still are reported as part of the documentation.

      (Examples includes james-project/server/container/guice/custom-mailets/src/main/java/org/apache/james/transport/mailets/CustomMailet.java and the like, used to generate a separate library containing custom mailets/matchers in order to test custom mailets/matchers instanciation)

      The goal of this ticket is to add a `@ExcludeFromDocumentation` annotation as part of the mailet-api. The plugin would skip such annotated mailets/matcher.

      In order to to this:

      • Create a new `@ExcludeFromDocumentation` in the mailet API
      • Annotate with it classes in `james-project/server/container/guice/custom-mailets`
      • Modify james-project/mailet/mailetdocs-maven-plugin/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.java in order to skip classes annotated as excluded.
      • Add a test in james-project/mailet/mailetdocs-maven-plugin/src/test/java/org/apache/james/mailet/DefaultDescriptorsExtractorTest.java showing excluded mailets are not listed (add an excluded mailet in that package, then assert in a new test that it is not reported).

      As always we stay at your disposal to answer any question on the chat! https://gitter.im/apache/james-project

      Attachments

        Activity

          People

            Unassigned Unassigned
            btellier Benoit Tellier
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: