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


The following commit(s) were added to refs/heads/main by this push:
     new 4f910a58c5 TIKA-4842 (#3075)
4f910a58c5 is described below

commit 4f910a58c5790c25be9de48766c8c6d41099f923
Author: Tim Allison <[email protected]>
AuthorDate: Wed Aug 26 13:38:40 2026 -0400

    TIKA-4842 (#3075)
---
 CHANGES.txt                                                | 10 ++++++----
 .../ROOT/pages/migration-to-4x/metadata-changes-4x.adoc    | 14 +++++++++++---
 .../modules/ROOT/pages/pipes/plugins/writing-a-plugin.adoc |  6 ++++--
 3 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index c5ad109272..d7907ba138 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -12,10 +12,12 @@ Release 4.1.0 - unreleased
      than lazily; under CONTENT_ONLY only a parse-context filter replaces the
      built-in one, not the top-level metadata-filters chain;
      _mime-include/_mime-exclude also accept a bare string; Tess4J locks
-     poolSize and maxImagePixels as well as the two paths. Also corrected the
-     config nesting shown in every pipes-plugin fetcher/emitter javadoc -- 23
-     of them, which had it inverted (the instance id is the outer key, the
-     component name the inner) -- and removed references to a
+     poolSize and maxImagePixels as well as the two paths; and pdf:trapped and
+     xmp:pdf:Trapped are new 4.x keys rather than renames (3.x captured the
+     flag only as pdf:docinfo:trapped and dropped the XMP value). Also
+     corrected the config nesting shown in every pipes-plugin fetcher/emitter
+     javadoc -- 23 of them, which had it inverted (the instance id is the
+     outer key, the component name the inner) -- and removed references to a
      TesseractOCRConfig.properties file that 4.x does not load (TIKA-4842).
 
    * Pipes plugins no longer bundle their own Jackson: jackson-core, -databind
diff --git a/docs/modules/ROOT/pages/migration-to-4x/metadata-changes-4x.adoc 
b/docs/modules/ROOT/pages/migration-to-4x/metadata-changes-4x.adoc
index 3edda9fc10..b4ecab6ea4 100644
--- a/docs/modules/ROOT/pages/migration-to-4x/metadata-changes-4x.adoc
+++ b/docs/modules/ROOT/pages/migration-to-4x/metadata-changes-4x.adoc
@@ -171,13 +171,21 @@ independent of casing (the name's origin).
   (`xmp*:`), EXIF/`tiff:`, `iptc:`, `photoshop:`, `geo:`, the CF/CMIP 
attributes under `cf:`,
   MAPI property names, email headers, the ECMA-376 OOXML core/extended 
property names
   (`AppVersion`, `lastModifiedBy`, `TotalTime`, …), and the PDF/A/X/VT/UA 
sub-namespaces
-  (`pdfaid:`, `pdfx:`, …). PDF Info-dict names (`pdf:docinfo:producer`, 
`pdf:docinfo:trapped`,
-  …) are lowercased rather than verbatim — the dictionary spells them 
`/Producer` and `/Trapped`
-  — but they are unchanged from 3.x.
+  (`pdfaid:`, `pdfx:`, …). PDF's own names are the exception: both the 
Info-dict keys under
+  `pdf:docinfo:` and the normalized `pdf:` keys they feed are lowercased 
rather than verbatim
+  (`/Producer` -> `pdf:docinfo:producer`, `pdf:producer`), even though the 
Info dictionary and
+  the XMP `pdf:` schema both capitalize them. The verbatim XMP spelling 
survives separately
+  under `xmp:pdf:` (`xmp:pdf:Producer`). None of those spellings changed in 
4.x.
 
 (The `access_permission:` prefix is also normalized to `access-permission:`. 
The
 `extended-properties:HiddedSlides` entry additionally corrects a long-standing 
spelling typo.)
 
+NOTE: `pdf:trapped` and `xmp:pdf:Trapped` are *new* in 4.x rather than 
renames. 3.x recorded the
+trapped flag only as `pdf:docinfo:trapped` and discarded the XMP `pdf:Trapped` 
value entirely.
+`pdf:trapped` now behaves like `pdf:producer` and the `dc:` keys: it takes the 
XMP value when the
+document has one and falls back to the Info-dict value otherwise, while 
`xmp:pdf:Trapped` and
+`pdf:docinfo:trapped` continue to record which source each value came from.
+
 .3.x -> 4.0.0 format-namespace key casing
 [cols="1,1"]
 |===
diff --git a/docs/modules/ROOT/pages/pipes/plugins/writing-a-plugin.adoc 
b/docs/modules/ROOT/pages/pipes/plugins/writing-a-plugin.adoc
index 8729cb116d..aeca158585 100644
--- a/docs/modules/ROOT/pages/pipes/plugins/writing-a-plugin.adoc
+++ b/docs/modules/ROOT/pages/pipes/plugins/writing-a-plugin.adoc
@@ -365,8 +365,10 @@ fails immediately, listing the names that *are* available. 
Fetchers and emitters
 lazily, on first use; `pipes-iterator` and `pipes-reporters` instances are 
built during config
 load.
 
-An array is rejected outright in `fetchers`, `emitters` and `pipes-iterator`. 
`pipes-reporters` is
-the exception: an array there loads zero reporters and reports no error, so 
keep it an object.
+An array is rejected outright in `fetchers` and `emitters`, and in 
`pipes-iterator` — unless it is
+empty: `"pipes-iterator": []` is read as "no iterator configured" and reports 
no error.
+`pipes-reporters` is looser still — any array there, empty or not, loads zero 
reporters and reports
+no error. Keep both an object.
 
 == Developing without repackaging
 

Reply via email to