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