This is an automated email from the ASF dual-hosted git repository. tballison pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tika.git
commit 7975986d2a4162e227bd120e386dc626602d09ce Author: tallison <[email protected]> AuthorDate: Tue Aug 18 15:13:25 2026 -0400 javadocs take 42 --- .github/scripts/check_javadoc_sourcepath.py | 4 ++-- pom.xml | 17 +++++++++++++++++ tika-parent/pom.xml | 29 +++++++---------------------- 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/.github/scripts/check_javadoc_sourcepath.py b/.github/scripts/check_javadoc_sourcepath.py index da5cfbd4f4..846dcff126 100644 --- a/.github/scripts/check_javadoc_sourcepath.py +++ b/.github/scripts/check_javadoc_sourcepath.py @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. """ -Guard the hand-maintained <sourcepath> in tika-parent/pom.xml used by the +Guard the hand-maintained <sourcepath> in the root pom.xml used by the TIKA-4318 javadoc:aggregate workaround. That list must name every module's src/main/java (except tika-grpc); a module missing from it is silently dropped from the aggregated API docs. Run this right before building the javadocs. @@ -30,7 +30,7 @@ import sys PRUNE = {"target", ".git", ".local_m2_repo", "node_modules", ".mvn"} EXCLUDE_MODULE_PREFIX = "tika-grpc/" # protobuf gen-sources not on the aggregate classpath -POM = "tika-parent/pom.xml" +POM = "pom.xml" def actual_roots(root: str): diff --git a/pom.xml b/pom.xml index 1c00298d87..8d5cb26fb8 100644 --- a/pom.xml +++ b/pom.xml @@ -304,6 +304,23 @@ least three +1 Tika PMC votes are cast. <build> <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>${maven.javadoc.version}</version> + <configuration> + <!-- TIKA-4318: javadoc:aggregate only. An explicit multi-root sourcepath forces the + plugin onto its legacy (pre-JPMS) -sourcepath code path; without it the plugin runs + in modular mode, classifies the reactor modules inconsistently as named vs unnamed, + and aborts. This lives in the root pom, which is an aggregator only ; the modules + inherit from tika-parent, so this never reaches a per-module javadoc:jar. + tika-grpc is excluded: its protobuf generated-sources and compile deps are not on + the aggregate classpath. NOTE: keep this list in sync when modules are added or + removed; .github/scripts/check_javadoc_sourcepath.py guards it. --> + <sourcepath>tika-annotation-processor/src/main/java;tika-app/src/main/java;tika-bundles/tika-bundle-standard/src/main/java;tika-core/src/main/java;tika-detectors/tika-detector-magika/src/main/java;tika-detectors/tika-detector-siegfried/src/main/java;tika-encoding-detectors/tika-encoding-detector-html/src/main/java;tika-encoding-detectors/tika-encoding-detector-icu4j/src/main/java;tika-encoding-detectors/tika-encoding-detector-mojibuster/src/main/java;tika-encoding-detectors/tik [...] + <subpackages>org.apache.tika</subpackages> + </configuration> + </plugin> <plugin> <groupId>org.apache.rat</groupId> <artifactId>apache-rat-plugin</artifactId> diff --git a/tika-parent/pom.xml b/tika-parent/pom.xml index 980c5f18e6..3242b8133b 100644 --- a/tika-parent/pom.xml +++ b/tika-parent/pom.xml @@ -1715,29 +1715,14 @@ <version>${maven.javadoc.version}</version> <configuration> <doclint>none</doclint> - <!-- TIKA-4318: an explicit multi-root sourcepath forces the javadoc plugin onto its - legacy (pre-JPMS) -sourcepath code path, so javadoc:aggregate actually produces a - combined report. Tika modules carry Automatic-Module-Name manifest hints but have no - module-info.java; without this, the plugin runs javadoc in modular (module source - path) mode, classifies the reactor modules inconsistently as named vs unnamed, and - javadoc aborts ('aggregated report for both named and unnamed modules is not - possible'). tika-grpc is excluded: its protobuf generated-sources and compile deps - are not on the aggregate classpath. NOTE: keep this list in sync when modules are - added or removed (see TIKA-4318). --> - <sourcepath>tika-annotation-processor/src/main/java;tika-app/src/main/java;tika-bundles/tika-bundle-standard/src/main/java;tika-core/src/main/java;tika-detectors/tika-detector-magika/src/main/java;tika-detectors/tika-detector-siegfried/src/main/java;tika-encoding-detectors/tika-encoding-detector-html/src/main/java;tika-encoding-detectors/tika-encoding-detector-icu4j/src/main/java;tika-encoding-detectors/tika-encoding-detector-mojibuster/src/main/java;tika-encoding-detectors [...] - <subpackages>org.apache.tika</subpackages> + <!-- Per-module javadoc:jar. Kept at plugin level (not execution level) so a module + with generated sources (tika-grpc) can override it in its own pom. An explicit + sourcepath also forces the plugin onto its legacy (pre-JPMS) code path; without + one it tries to derive module descriptors and fails on jars with broken + automatic modules. The aggregate report's sourcepath lives in the root pom + (TIKA-4318). --> + <sourcepath>src/main/java</sourcepath> </configuration> - <executions> - <!-- The aggregate sourcepath above is root-relative, so it resolves to nothing in a - per-module javadoc:jar. Override it for the apache-release parent's - attach-javadocs execution, which documents one module from its own basedir. --> - <execution> - <id>attach-javadocs</id> - <configuration> - <sourcepath>src/main/java</sourcepath> - </configuration> - </execution> - </executions> </plugin> </plugins> </build>
