From edd3cd986d2ddef9fc1edc3d49e5706e01fbf027 Mon Sep 17 00:00:00 2001 From: tallison Date: Thu, 23 Jul 2026 13:00:11 -0400 Subject: [PATCH] tk normalization --- .skills/tika-eval-encoding-regression.md | 8 +- .skills/tika-eval-h2-query.md | 2 +- .../pages/advanced/embedded-documents.adoc | 32 ++--- .../integration-testing/tika-app.adoc | 4 +- .../tika-eval-regression.adoc | 6 +- .../integration-testing/tika-server.adoc | 2 +- .../ROOT/pages/advanced/setting-limits.adoc | 16 +-- .../ROOT/pages/configuration/digesters.adoc | 4 +- .../migration-to-4x/chunk-strategies.adoc | 24 ++-- .../migration-to-4x/metadata-changes-4x.adoc | 110 ++++++++++++++- .../modules/ROOT/pages/pipes/parse-modes.adoc | 18 +-- .../ROOT/pages/using-tika/server/index.adoc | 2 +- .../org/apache/tika/cli/TikaCLIAsyncTest.java | 2 +- .../java/org/apache/tika/cli/TikaCLITest.java | 18 +-- .../org/apache/tika/digest/DigestDef.java | 8 +- .../tika/digest/InputStreamDigester.java | 2 +- .../org/apache/tika/metadata/Metadata.java | 9 +- .../org/apache/tika/metadata/QuattroPro.java | 2 +- .../org/apache/tika/metadata/Rendering.java | 4 +- .../tika/metadata/ReservedNamespaces.java | 45 +++++++ .../tika/metadata/TikaCoreProperties.java | 125 ++++++++++-------- .../apache/tika/metadata/TikaPagedText.java | 8 +- ...AbstractRecursiveParserWrapperHandler.java | 9 +- .../org/apache/tika/utils/ParserUtils.java | 2 +- .../tika/digest/InputStreamDigesterTest.java | 2 +- .../MetadataInternalKeyGuardTest.java | 11 +- .../pipes/filesystem/HandlerTypeTest.java | 4 +- .../apache/tika/eval/app/ExtractComparer.java | 4 +- .../apache/tika/eval/app/ExtractProfiler.java | 2 +- .../apache/tika/eval/app/ProfilerBase.java | 4 +- .../org/apache/tika/eval/app/db/Cols.java | 2 +- .../main/resources/comparison-reports-pg.xml | 2 +- .../src/main/resources/comparison-reports.xml | 2 +- .../test/resources/extracts/TIKA-4446-a.json | 2 +- .../test/resources/extracts/TIKA-4446-b.json | 2 +- .../test-dirs/extractsA/file1.pdf.json | 2 +- .../test-dirs/extractsA/file12_es.txt.json | 2 +- .../extractsA/file13_attachANotB.doc.json | 6 +- .../extractsA/file14_diffAttachOrder.json | 20 +-- .../test-dirs/extractsA/file15_tags.json | 6 +- .../test-dirs/extractsA/file16_badTags.json | 6 +- .../extractsA/file17_tagsOutOfOrder.json | 6 +- .../extractsA/file2_attachANotB.doc.json | 8 +- .../extractsA/file3_attachBNotA.doc.json | 2 +- .../test-dirs/extractsA/file4_emptyB.pdf.json | 2 +- .../extractsA/file6_accessEx.pdf.json | 2 +- .../extractsA/file7_badJson.pdf.json | 2 +- .../test-dirs/extractsA/file8_IOEx.pdf.json | 2 +- .../test-dirs/extractsB/file1.pdf.json | 2 +- .../test-dirs/extractsB/file12_es.txt.json | 2 +- .../extractsB/file14_diffAttachOrder.json | 20 +-- .../extractsB/file2_attachANotB.doc.json | 2 +- .../extractsB/file3_attachBNotA.doc.json | 8 +- .../test-dirs/extractsB/file5_emptyA.pdf.json | 2 +- .../extractsB/file6_accessEx.pdf.json | 2 +- .../test-dirs/extractsB/file8_IOEx.pdf.json | 2 +- .../test-dirs/raw_input/file12_es.txt | 2 +- .../raw_input/file13_attachANotB.doc | 6 +- .../raw_input/file14_diffAttachOrder | 20 +-- .../resources/test-dirs/raw_input/file15_tags | 6 +- .../test-dirs/raw_input/file16_badTags | 6 +- .../test-dirs/raw_input/file17_tagsOutOfOrder | 6 +- .../tika/example/TestParsingExample.java | 4 +- .../elasticsearch/plugins-template.json | 4 +- .../resources/kafka/plugins-template.json | 4 +- .../opensearch/plugins-template.json | 4 +- .../opensearch/tika-config-opensearch.json | 4 +- .../src/test/resources/s3/tika-config-s3.json | 4 +- .../test/resources/solr/plugins-template.json | 4 +- .../test/resources/tika-config-solr-urls.json | 4 +- .../tools/BuildJunkAugmentationData.java | 4 +- .../tika/inference/ChunkSerializer.java | 9 +- .../inference/JinaEmbeddingFilterTest.java | 4 +- .../inference/OpenAIEmbeddingFilterTest.java | 14 +- .../OpenAIImageEmbeddingParserTest.java | 6 +- .../parser/AutoDetectParserConfigTest.java | 24 ++-- .../parser/RecursiveParserWrapperTest.java | 2 +- .../microsoft/ooxml/OOXMLParserTest.java | 2 +- .../ooxml/OleObjectRegressionTest.java | 6 +- .../microsoft/ooxml/TruncatedOOXMLTest.java | 4 +- .../apache/tika/parser/pdf/PDFParserTest.java | 2 +- .../apache/tika/parser/pkg/ZipParserTest.java | 6 +- .../resources/configs/TIKA-3137-include.json | 2 +- .../configs/tika-config-write-filter.json | 2 +- .../apache/tika/parser/mp4/MP4ParserTest.java | 14 +- .../parser/microsoft/OutlookExtractor.java | 4 +- .../tika/parser/pdf/AbstractPDF2XHTML.java | 11 +- .../tika/parser/warc/WARCParserTest.java | 4 +- .../apache/tika/parser/xmp/XmpExtractor.java | 2 +- .../org/apache/tika/pipes/api/ParseMode.java | 2 +- .../filter/AttachmentCountingListFilter.java | 2 +- .../core/DigestingOpenContainersTest.java | 2 +- .../pipes/core/MetadataWriteLimiterTest.java | 18 +-- .../tika/pipes/core/PipesClientTest.java | 6 +- .../tika/pipes/core/PipesServerTest.java | 2 +- .../core/async/AsyncChaosMonkeyTest.java | 2 +- .../configs/tika-config-write-limiter.json | 2 +- .../tika/pipes/emitter/es/ESClient.java | 2 +- .../tika/pipes/emitter/es/ESClientTest.java | 24 ++-- .../emitter/jdbc/JDBCEmitterFactory.java | 2 +- .../emitter/opensearch/OpenSearchClient.java | 2 +- .../tika/digest/MockDigesterFactory.java | 2 +- .../filter/AttachmentCountingListFilter.java | 2 +- .../StandardMetadataLimiterTest.java | 7 +- .../serialization/JsonMetadataListTest.java | 2 +- .../tika/serialization/JsonMetadataTest.java | 2 +- .../configs/TIKA-3137-field-mapping.json | 2 +- .../resources/configs/TIKA-3695-fields.json | 2 +- .../src/test/resources/configs/TIKA-3695.json | 2 +- .../server/core/resource/TikaResource.java | 2 +- .../core/TikaServerIntegrationTest.java | 8 +- .../configs/metadata-filter-include.json | 2 +- .../server/standard/MetadataResourceTest.java | 2 +- .../standard/OpenNLPMetadataFilterTest.java | 4 +- .../standard/OptimaizeMetadataFilterTest.java | 4 +- .../standard/RecursiveMetadataFilterTest.java | 2 +- .../RecursiveMetadataResourceTest.java | 10 +- .../server/standard/UnpackerResourceTest.java | 10 +- .../resources/configs/TIKA-3137-include.json | 2 +- 119 files changed, 567 insertions(+), 371 deletions(-) create mode 100644 tika-core/src/main/java/org/apache/tika/metadata/ReservedNamespaces.java diff --git a/.skills/tika-eval-encoding-regression.md b/.skills/tika-eval-encoding-regression.md index 7532df3981a..ed92392c18a 100644 --- a/.skills/tika-eval-encoding-regression.md +++ b/.skills/tika-eval-encoding-regression.md @@ -158,10 +158,10 @@ To see what one chain change actually did, Compare the new run against the (IBM850 / x-MacRoman → windows-1252) vs the prior run and nothing else. A bigger-than-expected diff means the change fired more broadly than intended. -## Per-file detector attribution (`X-TIKA:encodingDetectionTrace`) +## Per-file detector attribution (`tk:encoding-detection-trace`) Every JSON extract from a chain with multiple detectors carries -`X-TIKA:encodingDetectionTrace` in metadata. It's a per-detector emission +`tk:encoding-detection-trace` in metadata. It's a per-detector emission log with the META detector's arbitration tag at the end: ``` @@ -174,8 +174,8 @@ meta detector chose. If the trace shows ONLY Mojibuster firing with a CJK pick, the bug is in Mojibuster's emission (pool too narrow), not in JunkFilter's arbitration. -`X-TIKA:encodingDetector` is the simple-name credit string; -`X-TIKA:detectedEncoding` is the final answer (also in `Content-Encoding`). +`tk:encoding-detector` is the simple-name credit string; +`tk:detected-encoding` is the final answer (also in `Content-Encoding`). ## Reproducing a single-file detection without a full chain diff --git a/.skills/tika-eval-h2-query.md b/.skills/tika-eval-h2-query.md index 37532d64c0e..ca331d13726 100644 --- a/.skills/tika-eval-h2-query.md +++ b/.skills/tika-eval-h2-query.md @@ -135,7 +135,7 @@ WHERE DETECTED_ENCODING REGEXP 'big5|gb|euc|shift|jis|2022|949' ``` (`DETECTED_ENCODING` is on `ENCODINGS_A`/`ENCODINGS_B` — join to `PROFILES`/`CONTENTS` -on `ID` — populated from `X-TIKA:detectedEncoding`.) +on `ID` — populated from `tk:detected-encoding`.) ## Tip diff --git a/docs/modules/ROOT/pages/advanced/embedded-documents.adoc b/docs/modules/ROOT/pages/advanced/embedded-documents.adoc index bd6afbc41de..b61a820eecd 100644 --- a/docs/modules/ROOT/pages/advanced/embedded-documents.adoc +++ b/docs/modules/ROOT/pages/advanced/embedded-documents.adoc @@ -49,12 +49,12 @@ documents. They answer: "Which document contained this one?" All fields are defi === Nesting Identifiers -`TikaCoreProperties.EMBEDDED_ID` (`X-TIKA:embedded_id`):: +`TikaCoreProperties.EMBEDDED_ID` (`tk:embedded-id`):: A 1-indexed integer assigned by Tika to each embedded document during parsing. IDs are assigned in the order documents are encountered by the `RecursiveParserWrapper`. This ID uniquely identifies each embedded document within a single parse operation. -`TikaCoreProperties.EMBEDDED_ID_PATH` (`X-TIKA:embedded_id_path`):: +`TikaCoreProperties.EMBEDDED_ID_PATH` (`tk:embedded-id-path`):: A path showing the containment hierarchy using `EMBEDDED_ID` values. For example, `/1/3` indicates that the file with `EMBEDDED_ID=3` was contained within the file with `EMBEDDED_ID=1`. This is the most reliable field for tracking containment relationships. @@ -64,7 +64,7 @@ folder structures or original paths within the containers themselves. === Synthetic Paths -`TikaCoreProperties.EMBEDDED_RESOURCE_PATH` (`X-TIKA:embedded_resource_path`):: +`TikaCoreProperties.EMBEDDED_RESOURCE_PATH` (`tk:embedded-resource-path`):: A synthetic path built by concatenating file names (from `RESOURCE_NAME_KEY`) at each nesting level. This provides a human-readable path through the containment hierarchy. + @@ -72,14 +72,14 @@ WARNING: Do not use this field for creating directory structures to write out at There may be path collisions, illegal characters, or zip slip vulnerabilities. Use `EMBEDDED_ID_PATH` for reliable containment tracking. -`TikaCoreProperties.FINAL_EMBEDDED_RESOURCE_PATH` (`X-TIKA:final_embedded_resource_path`):: +`TikaCoreProperties.FINAL_EMBEDDED_RESOURCE_PATH` (`tk:final-embedded-resource-path`):: Similar to `EMBEDDED_RESOURCE_PATH`, but calculated at the end of the full parse. For some parsers, an embedded file's name isn't known until after its child files have been parsed. This field may have fewer "unknown" file names than `EMBEDDED_RESOURCE_PATH`. === Resource Naming -`TikaCoreProperties.RESOURCE_NAME_KEY` (`X-TIKA:resourceName`):: +`TikaCoreProperties.RESOURCE_NAME_KEY` (`tk:resource-name`):: The file name (not path) of the resource. Tika makes a best effort to determine a meaningful name from the container's metadata. When unavailable, Tika falls back to synthetic names such as `embedded-1.jpeg`. @@ -95,7 +95,7 @@ the nesting structure. All fields below are defined in `TikaCoreProperties`. === Internal Paths -`TikaCoreProperties.INTERNAL_PATH` (`X-TIKA:internalPath`):: +`TikaCoreProperties.INTERNAL_PATH` (`tk:internal-path`):: The path (including file name) as literally stored within the container. This is what the container knows about where the file lives in its internal structure: + @@ -108,7 +108,7 @@ This differs fundamentally from `EMBEDDED_RESOURCE_PATH`: * `INTERNAL_PATH` is what the _container stores_ about the file's location within itself * `EMBEDDED_RESOURCE_PATH` is what _Tika synthesizes_ from the nesting structure -`TikaCoreProperties.ORIGINAL_RESOURCE_NAME` (`X-TIKA:origResourceName`):: +`TikaCoreProperties.ORIGINAL_RESOURCE_NAME` (`tk:orig-resource-name`):: For some file formats, the file path where the document was last saved on the creator's system. For example, an `.xlsx` file named `budget.xlsx` may include a metadata property storing where it was last saved: `C:\Users\Alice\budget.xlsx`. This is not specific to @@ -118,7 +118,7 @@ embedded files - it's a property that certain file formats preserve about themse Microsoft Office formats use additional identifiers for embedded objects. -`TikaCoreProperties.EMBEDDED_RELATIONSHIP_ID` (`X-TIKA:embeddedRelationshipId`):: +`TikaCoreProperties.EMBEDDED_RELATIONSHIP_ID` (`tk:embedded-relationship-id`):: A Microsoft-specific identifier used internally to reference embedded objects within Office documents. This is the relationship ID from the Office Open XML or OLE structure. @@ -134,35 +134,35 @@ embedded. Defined in the `Office` metadata class. |Property |Metadata Key |Source |`EMBEDDED_ID` -|`X-TIKA:embedded_id` +|`tk:embedded-id` |Containment |`EMBEDDED_ID_PATH` -|`X-TIKA:embedded_id_path` +|`tk:embedded-id-path` |Containment |`EMBEDDED_RESOURCE_PATH` -|`X-TIKA:embedded_resource_path` +|`tk:embedded-resource-path` |Containment |`FINAL_EMBEDDED_RESOURCE_PATH` -|`X-TIKA:final_embedded_resource_path` +|`tk:final-embedded-resource-path` |Containment |`RESOURCE_NAME_KEY` -|`X-TIKA:resourceName` +|`tk:resource-name` |Containment |`INTERNAL_PATH` -|`X-TIKA:internalPath` +|`tk:internal-path` |Container |`ORIGINAL_RESOURCE_NAME` -|`X-TIKA:origResourceName` +|`tk:orig-resource-name` |Container |`EMBEDDED_RELATIONSHIP_ID` -|`X-TIKA:embeddedRelationshipId` +|`tk:embedded-relationship-id` |Container (MS) |`Office.EMBEDDED_STORAGE_CLASS_ID` diff --git a/docs/modules/ROOT/pages/advanced/integration-testing/tika-app.adoc b/docs/modules/ROOT/pages/advanced/integration-testing/tika-app.adoc index b5ea77381d7..880e86cf760 100644 --- a/docs/modules/ROOT/pages/advanced/integration-testing/tika-app.adoc +++ b/docs/modules/ROOT/pages/advanced/integration-testing/tika-app.adoc @@ -147,7 +147,7 @@ java -jar tika-app.jar -J -t /tmp/tika-app-test/batch-input /tmp/tika-app-test/b ls /tmp/tika-app-test/batch-output2 ---- -*Expected:* Creates .json files with text content (X-TIKA:content_handler should be ToTextContentHandler). +*Expected:* Creates .json files with text content (tk:content-handler should be ToTextContentHandler). === Test 11: Version Check @@ -183,7 +183,7 @@ java -jar tika-app.jar --language testPDF.pdf java -jar tika-app.jar --digest=md5 --json testPDF.pdf ---- -*Expected:* JSON output includes `X-TIKA:digest:MD5` field. +*Expected:* JSON output includes `tk:digest:MD5` field. === Test 15: URL Input diff --git a/docs/modules/ROOT/pages/advanced/integration-testing/tika-eval-regression.adoc b/docs/modules/ROOT/pages/advanced/integration-testing/tika-eval-regression.adoc index deeed7bee3a..7dce903c31c 100644 --- a/docs/modules/ROOT/pages/advanced/integration-testing/tika-eval-regression.adoc +++ b/docs/modules/ROOT/pages/advanced/integration-testing/tika-eval-regression.adoc @@ -106,7 +106,7 @@ match. ---- The `parse-context > commons-digester-factory` block makes every -extracted record carry an `X-TIKA:digest:SHA256` metadata field — +extracted record carry an `tk:digest:SHA256` metadata field — required by `tika-eval` for embedded-document alignment across runs. === Config B (variant under test) @@ -233,7 +233,7 @@ Open the `.xlsx` files directly, or use the `regression` skill == Tips * *Keep the digester identical between A and B.* tika-eval uses the - `X-TIKA:digest:SHA256` field on embedded documents to align records + `tk:digest:SHA256` field on embedded documents to align records across the two extracts. If A digests and B doesn't (or different algorithms), the embedded-doc alignment falls back to filename and produces false-positive diffs. @@ -310,7 +310,7 @@ Compare step finishes in 2-5 minutes depending on extract size. . Open `reports/mimes/mime_diffs_A_to_B.xlsx` to see the headline MIME-detection differences; the encoding-detector chain change surfaces as charset diffs in `mimes/mime_diffs_A_to_B_details.xlsx` - (`X-TIKA:detected_encoding`). + (`tk:detected-encoding`). A regression analysis writeup goes in `~/Desktop/claude-todo/-analysis.md` per the diff --git a/docs/modules/ROOT/pages/advanced/integration-testing/tika-server.adoc b/docs/modules/ROOT/pages/advanced/integration-testing/tika-server.adoc index f889ced39ed..47cf85353c4 100644 --- a/docs/modules/ROOT/pages/advanced/integration-testing/tika-server.adoc +++ b/docs/modules/ROOT/pages/advanced/integration-testing/tika-server.adoc @@ -100,7 +100,7 @@ curl -s -X PUT -T testPDF.pdf http://localhost:9998/tika/xml curl -s -X PUT -T testPDF.pdf http://localhost:9998/tika/json ---- -*Expected:* JSON object with metadata and X-TIKA:content field. +*Expected:* JSON object with metadata and tk:content field. === Test 7: PUT /meta diff --git a/docs/modules/ROOT/pages/advanced/setting-limits.adoc b/docs/modules/ROOT/pages/advanced/setting-limits.adoc index a815ae68416..c9b39bae019 100644 --- a/docs/modules/ROOT/pages/advanced/setting-limits.adoc +++ b/docs/modules/ROOT/pages/advanced/setting-limits.adoc @@ -103,7 +103,7 @@ siblings at the current level continue to be processed. |`throwOnMaxDepth` |false |Whether to throw an `EmbeddedLimitReachedException` when maxDepth is reached. -If false, processing continues and `X-TIKA:maxDepthReached=true` is set in metadata. +If false, processing continues and `tk:exception:embedded-depth-limit-reached=true` is set in metadata. |`maxCount` |-1 (unlimited) @@ -113,7 +113,7 @@ stops immediately. |`throwOnMaxCount` |false |Whether to throw an `EmbeddedLimitReachedException` when maxCount is reached. -If false, processing continues and `X-TIKA:maxEmbeddedCountReached=true` is set. +If false, processing continues and `tk:exception:embedded-resource-limit-reached=true` is set. |=== === maxDepth Behavior @@ -380,7 +380,7 @@ Metadata metadata = Metadata.newInstance(context); |`maxTotalBytes` |10 MB |Maximum total estimated size of all metadata in UTF-16 bytes. When exceeded, -additional metadata is silently dropped and `X-TIKA:WARN:truncated_metadata` is set. +additional metadata is silently dropped and `tk:warn:truncated-metadata` is set. |`maxFieldSize` |100 KB @@ -436,15 +436,15 @@ of `includeFields` or size limits: * `Content-Type` - Required for parser selection * `Content-Length`, `Content-Encoding`, `Content-Disposition` -* `X-TIKA:content` - The extracted text content -* `X-TIKA:Parsed-By` - Parser chain information -* `X-TIKA:WARN:*` - Warning metadata +* `tk:content` - The extracted text content +* `tk:parsed-by` - Parser chain information +* `tk:warn:*` - Warning metadata * Access permission fields === Detecting Truncation When metadata is truncated due to limits, Tika sets the metadata field -`X-TIKA:WARN:truncated_metadata` to `true`. You can check for this in your code: +`tk:warn:truncated-metadata` to `true`. You can check for this in your code: [source,java] ---- @@ -458,7 +458,7 @@ if ("true".equals(metadata.get(TikaCoreProperties.TRUNCATED_METADATA))) { 1. **Always set limits** when processing untrusted content 2. **Use `includeFields`** to capture only the metadata you need -3. **Monitor for truncation** by checking `X-TIKA:WARN:truncated_metadata` +3. **Monitor for truncation** by checking `tk:warn:truncated-metadata` 4. **Combine with process isolation** - limits protect against memory issues, but xref:advanced/robustness.adoc[process isolation] protects against crashes 5. **Test with adversarial files** - use Tika's `MockParser` to simulate extreme cases diff --git a/docs/modules/ROOT/pages/configuration/digesters.adoc b/docs/modules/ROOT/pages/configuration/digesters.adoc index 38d9ba618cd..67d88654516 100644 --- a/docs/modules/ROOT/pages/configuration/digesters.adoc +++ b/docs/modules/ROOT/pages/configuration/digesters.adoc @@ -23,7 +23,7 @@ document deduplication, integrity verification, and forensic analysis. == Overview Digesters compute hash values of document content and store them in metadata. The digest value -is stored with a key like `X-TIKA:digest:SHA256` (for HEX encoding) or `X-TIKA:digest:SHA256:BASE32` +is stored with a key like `tk:digest:SHA256` (for HEX encoding) or `tk:digest:SHA256:BASE32` (for non-default encodings). Tika provides two digester implementations: @@ -95,7 +95,7 @@ By default, digest values are encoded as lowercase hexadecimal. You can specify } ---- -Non-default encodings include the encoding in the metadata key: `X-TIKA:digest:SHA256:BASE32`. +Non-default encodings include the encoding in the metadata key: `tk:digest:SHA256:BASE32`. === Skip Container Document Digest diff --git a/docs/modules/ROOT/pages/migration-to-4x/chunk-strategies.adoc b/docs/modules/ROOT/pages/migration-to-4x/chunk-strategies.adoc index 751b67a4620..aab81c9aecd 100644 --- a/docs/modules/ROOT/pages/migration-to-4x/chunk-strategies.adoc +++ b/docs/modules/ROOT/pages/migration-to-4x/chunk-strategies.adoc @@ -18,7 +18,7 @@ = Chunk Strategies for Search Engines Tika 4.x introduces a unified chunking and embedding pipeline (`tika-inference`) that produces -a `tika:chunks` array on each document's metadata. This page describes the strategies for +a `tk:chunks` array on each document's metadata. This page describes the strategies for emitting those chunks to Elasticsearch and OpenSearch. == Background @@ -33,7 +33,7 @@ The `tika-inference` module produces chunks from two sources: image embedding endpoint (e.g., Jina CLIP v2). Each chunk carries a `PaginatedLocator` (page number) and a vector, but no text. -Both types are stored in the same `tika:chunks` metadata field as a JSON array. When multiple +Both types are stored in the same `tk:chunks` metadata field as a JSON array. When multiple components produce chunks (e.g., image embedder runs during parsing, text embedder runs as a metadata filter), they merge into the same array via `ChunkSerializer.mergeInto()`. @@ -57,13 +57,13 @@ Image-only chunks omit `text`; text-only chunks omit `paginated`. === Option A: Chunks as Nested Objects -Each file (container or embedded) is **one ES/OpenSearch document**. The `tika:chunks` field +Each file (container or embedded) is **one ES/OpenSearch document**. The `tk:chunks` field is mapped as a https://www.elastic.co/guide/en/elasticsearch/reference/current/nested.html[`nested`] type. [source,json] ---- {"index":{"_id":"report.pdf"}} -{"title":"Q4 Report","mime":"application/pdf","tika:chunks":[ +{"title":"Q4 Report","mime":"application/pdf","tk:chunks":[ {"text":"Revenue grew...","vector":"...","locators":{"text":[{"start_offset":0,"end_offset":120}]}}, {"text":"Operating costs...","vector":"...","locators":{"text":[{"start_offset":121,"end_offset":300}]}}, {"vector":"...","locators":{"paginated":[{"page":1}]}}, @@ -143,11 +143,11 @@ within each document (not exploded into separate docs, not a stringified blob). [source,json] ---- {"index":{"_id":"email.msg"}} -{"title":"Re: Q4 report","mime":"message/rfc822","tika:chunks":[ +{"title":"Re: Q4 report","mime":"message/rfc822","tk:chunks":[ {"text":"Hi team, see attached...","vector":"...","locators":{"text":[{"start_offset":0,"end_offset":35}]}} ]} {"index":{"_id":"email.msg-"}} -{"title":"Q4-report.pdf","mime":"application/pdf","parent":"email.msg","tika:chunks":[ +{"title":"Q4-report.pdf","mime":"application/pdf","parent":"email.msg","tk:chunks":[ {"vector":"...","locators":{"paginated":[{"page":1}]}}, {"vector":"...","locators":{"paginated":[{"page":2}]}}, {"text":"Revenue grew...","vector":"...","locators":{"text":[{"start_offset":0,"end_offset":120}]}}, @@ -174,15 +174,15 @@ Tika 4.x currently implements **Option D**: * The `AttachmentStrategy` (`SEPARATE_DOCUMENTS` or `PARENT_CHILD`) controls how **embedded files** are emitted — each embedded file becomes its own document. -* The `tika:chunks` field on each document holds all chunks (text + image) as a +* The `tk:chunks` field on each document holds all chunks (text + image) as a structured JSON array. -* The emitter clients (`ElasticsearchClient`, `OpenSearchClient`) detect the `tika:chunks` +* The emitter clients (`ElasticsearchClient`, `OpenSearchClient`) detect the `tk:chunks` field and write it as **raw JSON** rather than an escaped string, so the nested objects are indexable. -== The `tika:chunks` Field +== The `tk:chunks` Field -All chunk data — regardless of source — is unified in a single metadata field: `tika:chunks`. +All chunk data — regardless of source — is unified in a single metadata field: `tk:chunks`. There is no separate field for image embeddings vs. text embeddings. A chunk is a chunk: @@ -207,7 +207,7 @@ For Option D with `nested` kNN support, a mapping like this works: "mime": {"type": "keyword"}, "content": {"type": "text"}, "parent": {"type": "keyword"}, - "tika:chunks": { + "tk:chunks": { "type": "nested", "properties": { "text": {"type": "text"}, @@ -241,7 +241,7 @@ For Option D with `nested` kNN support, a mapping like this works: } ---- -NOTE: The `vector` field in `tika:chunks` stores base64-encoded float32 arrays during Tika +NOTE: The `vector` field in `tk:chunks` stores base64-encoded float32 arrays during Tika processing, but the emitter writes them as-is. If your mapping uses `dense_vector`, you may need a pipeline or custom serialization to convert the base64 vectors to float arrays at index time. Alternatively, map `vector` as `keyword` and decode at query time. 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 e129d330083..ebd5bd7b83f 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 @@ -41,7 +41,7 @@ from potentially overwriting existing metadata values in the Metadata object. |Resource name |Renamed -|`resourceName` changed to `X-TIKA:resourceName` +|`resourceName` changed to `tk:resource-name` |Unrecognized image metadata |Prefixed with `img:` @@ -50,8 +50,114 @@ from potentially overwriting existing metadata values in the Metadata object. |Office metadata |Prefix changed |Changed from `meta` prefix to `office` prefix + +|QuattroPro metadata +|Prefix changed +|Changed from `wordperfect:` (a collision — it was shared with WordPerfect) to `quattropro:` +|=== + +== Tika-native namespace consolidation (`tk:`) + +Tika 4.0.0 consolidates every *Tika-asserted* metadata key — keys Tika computes about the +parse, not values copied out of the document — under a single `tk:` prefix, normalized to +kebab-case. This replaces the pre-4.0.0 `X-TIKA:` prefix and the scattered `tika:`, `tika_pg:`, +`rendering:`, `signature:`, `imagereader:` prefixes and bare `hasSignature` / +`embeddedResourceType` keys. This is a *clean break*: there is no automatic remapping. Code that +references these keys by string must be updated per the table below (code using the +`TikaCoreProperties` / `TikaPagedText` / `Rendering` constants needs no change — the constants +now resolve to the `tk:` names). + +The `tk:` namespace is also a trust boundary: a file-controlled key can no longer enter it via a +String write. The pre-4.0.0 `X-TIKA:` prefix stays *reserved* (rejected on String writes) during +the 4.x line so a crafted file cannot forge it, even though Tika no longer emits it. + +File-claimed namespaces (`dc:`, `xmp:`, `pdf:`, `office:`, `html:`, standards and passthrough) +are unchanged — they are the file's assertions, not Tika's, and keep their verbatim prefixes. + +The canonical `Content-Type` key is likewise unchanged (it is the routing media type). But the +Tika-added *variants* of it — hint/override/magic-detected — are Tika's own assertions about +detection, so they move into `tk:` (e.g. `Content-Type-Hint` -> `tk:content-type-hint`). + +.3.x → 4.0.0 Tika-native metadata key migration +[cols="1,1"] +|=== +|3.x key |4.0.0 key + +|`tika:chunks` |`tk:chunks` +|`X-TIKA:content` |`tk:content` +|`X-TIKA:content_handler` |`tk:content-handler` +|`X-TIKA:content_handler_type` |`tk:content-handler-type` +|`Content-Type-Hint` |`tk:content-type-hint` +|`Content-Type-Override` |`tk:content-type-override` +|`Content-Type-Parser-Override` |`tk:content-type-parser-override` +|`Content-Type-Magic-Detected` |`tk:content-type-magic-detected` +|`X-TIKA:decodedCharset` |`tk:decoded-charset` +|`X-TIKA:detectedEncoding` |`tk:detected-encoding` +|`X-TIKA:detected_language` |`tk:detected-language` +|`X-TIKA:detected_language_confidence` |`tk:detected-language-confidence` +|`X-TIKA:detected_language_confidence_raw` |`tk:detected-language-confidence-raw` +|`X-TIKA:detection_content_length` |`tk:detection-content-length` +|`X-TIKA:embedded_depth` |`tk:embedded-depth` +|`X-TIKA:embedded_id` |`tk:embedded-id` +|`X-TIKA:embedded_id_path` |`tk:embedded-id-path` +|`X-TIKA:embeddedRelationshipId` |`tk:embedded-relationship-id` +|`X-TIKA:embedded_resource_path` |`tk:embedded-resource-path` +|`embeddedResourceType` |`tk:embedded-resource-type` +|`X-TIKA:encodingDetectionTrace` |`tk:encoding-detection-trace` +|`X-TIKA:encodingDetector` |`tk:encoding-detector` +|`X-TIKA:encrypted` |`tk:encrypted` +|`X-TIKA:final_embedded_resource_path` |`tk:final-embedded-resource-path` +|`hasSignature` |`tk:has-signature` +|`X-TIKA:internalPath` |`tk:internal-path` +|`imagereader:NumImages` |`tk:num-images` +|`X-TIKA:origResourceName` |`tk:orig-resource-name` +|`X-TIKA:parse_time_millis` |`tk:parse-time-millis` +|`X-TIKA:Parsed-By` |`tk:parsed-by` +|`X-TIKA:Parsed-By-Full-Set` |`tk:parsed-by-full-set` +|`X-TIKA:pipes_result` |`tk:pipes-result` +|`X-TIKA:resourceName` |`tk:resource-name` +|`X-TIKA:resourceNameExtensionInferred` |`tk:resource-name-extension-inferred` +|`X-TIKA:sourcePath` |`tk:source-path` +|`X-TIKA:truncated_content_for_detection` |`tk:truncated-content-for-detection` +|`X-TIKA:versionCount` |`tk:version-count` +|`X-TIKA:versionNumber` |`tk:version-number` +|`X-TIKA:EXCEPTION:container_exception` |`tk:exception:container-exception` +|`X-TIKA:EXCEPTION:embedded_bytes_exception` |`tk:exception:embedded-bytes-exception` +|`X-TIKA:EXCEPTION:embedded_depth_limit_reached` |`tk:exception:embedded-depth-limit-reached` +|`X-TIKA:EXCEPTION:embedded_exception` |`tk:exception:embedded-exception` +|`X-TIKA:EXCEPTION:embedded_resource_limit_reached` |`tk:exception:embedded-resource-limit-reached` +|`X-TIKA:EXCEPTION:embedded_stream_exception` |`tk:exception:embedded-stream-exception` +|`X-TIKA:EXCEPTION:embedded_warning` |`tk:exception:embedded-warning` +|`X-TIKA:EXCEPTION:warn` |`tk:exception:warn` +|`X-TIKA:EXCEPTION:write_limit_reached` |`tk:exception:write-limit-reached` +|`tika_pg:page_number` |`tk:page:number` +|`tika_pg:page_numbers` |`tk:page:numbers` +|`tika_pg:page_rotation` |`tk:page:rotation` +|`rendering:pdfbox-image-writing-ms` |`tk:rendering:pdfbox-image-writing-ms` +|`rendering:pdfbox-rendering-ms` |`tk:rendering:pdfbox-rendering-ms` +|`rendering:Rendered-By` |`tk:rendering:rendered-by` +|`rendering:rendering-time-ms` |`tk:rendering:rendering-time-ms` +|`signature:contact-info` |`tk:signature:contact-info` +|`signature:date` |`tk:signature:date` +|`signature:filter` |`tk:signature:filter` +|`signature:location` |`tk:signature:location` +|`signature:name` |`tk:signature:name` +|`signature:reason` |`tk:signature:reason` +|`X-TIKA:WARN:truncated_metadata` |`tk:warn:truncated-metadata` +|=== + +Open key families migrate by prefix, suffix preserved verbatim (e.g. digest algorithm names): + +[cols="1,1"] +|=== +|3.x prefix |4.0.0 prefix + +|`X-TIKA:digest:\*` |`tk:digest:*` +|`X-TIKA:EXCEPTION:\*` |`tk:exception:*` +|`X-TIKA:WARN:\*` |`tk:warn:*` |=== + == Migration Steps When upgrading to Tika 4.x, you will need to update any code that references metadata keys @@ -87,7 +193,7 @@ String value = metadata.get("mapi:some-property"); String name = metadata.get("resourceName"); // After (4.x) -String name = metadata.get("X-TIKA:resourceName"); +String name = metadata.get("tk:resource-name"); ---- === Image Metadata diff --git a/docs/modules/ROOT/pages/pipes/parse-modes.adoc b/docs/modules/ROOT/pages/pipes/parse-modes.adoc index 1bcc401a247..0ca85c010df 100644 --- a/docs/modules/ROOT/pages/pipes/parse-modes.adoc +++ b/docs/modules/ROOT/pages/pipes/parse-modes.adoc @@ -113,9 +113,9 @@ these values. If unset, the default is `MARKDOWN`. === What's in the result * A **single** `Metadata` object (the container's). -* `X-TIKA:content` contains the concatenated text of the container and all reachable embedded documents. +* `tk:content` contains the concatenated text of the container and all reachable embedded documents. * Container-level metadata fields (title, author, content type, etc.) are present. -* The handler type used is recorded in `X-TIKA:content_handler_type`. +* The handler type used is recorded in `tk:content-handler-type`. === What's NOT in the result @@ -124,9 +124,9 @@ these values. If unset, the default is `MARKDOWN`. === Container-level exceptions -If the container parse fails (`SAXException`, `EncryptedDocumentException`, or any other `Exception`), the stack trace is caught, logged, and stored on the container metadata as `X-TIKA:container_exception`. The parse continues to a return value rather than throwing — callers must check this field if they need to detect failure. +If the container parse fails (`SAXException`, `EncryptedDocumentException`, or any other `Exception`), the stack trace is caught, logged, and stored on the container metadata as `tk:exception:container-exception`. The parse continues to a return value rather than throwing — callers must check this field if they need to detect failure. -If the configured write limit is reached during concatenation, `X-TIKA:write_limit_reached` is set to `true`. +If the configured write limit is reached during concatenation, `tk:exception:write-limit-reached` is set to `true`. [#content-only-mode] == CONTENT_ONLY Mode @@ -151,14 +151,14 @@ useful for: === How it works 1. Documents are parsed identically to `CONCATENATE` mode — all embedded text is merged into the container's content field, and the same caveats around per-embedded metadata apply. -2. A metadata filter automatically strips all metadata except `X-TIKA:content` and `X-TIKA:container_exception` (for error tracking). +2. A metadata filter automatically strips all metadata except `tk:content` and `tk:exception:container-exception` (for error tracking). 3. When the emitter is a `StreamEmitter` (such as the filesystem or S3 emitter), the raw content string is written directly as bytes — no JSON serialization. === Metadata filtering By default, `CONTENT_ONLY` mode applies an `IncludeFieldMetadataFilter` that retains -only `X-TIKA:content` and `X-TIKA:container_exception`. If you set your own +only `tk:content` and `tk:exception:container-exception`. If you set your own `MetadataFilter` on the `ParseContext`, your filter takes priority. === CLI usage @@ -190,12 +190,12 @@ extracted markdown content. See <<_content_handler_types>> for the available han === What still runs -* **MIME detection.** The configured `Detector` runs against the input stream and populates `Content-Type` and `X-TIKA:content_type_parser_override` on the container metadata. -* **Digesting.** If a `DigesterFactory` is configured on the `ParseContext`, it runs against the raw bytes and writes the digest fields (e.g., `X-TIKA:digest:SHA256`) to the container metadata before the parse-mode check. +* **MIME detection.** The configured `Detector` runs against the input stream and populates `Content-Type` and `tk:content-type-parser-override` on the container metadata. +* **Digesting.** If a `DigesterFactory` is configured on the `ParseContext`, it runs against the raw bytes and writes the digest fields (e.g., `tk:digest:SHA256`) to the container metadata before the parse-mode check. === What does NOT run -* No parser is invoked. `X-TIKA:content` is empty. +* No parser is invoked. `tk:content` is empty. * No embedded documents are extracted. * No content handler is constructed (handler-type configuration is ignored for this mode). diff --git a/docs/modules/ROOT/pages/using-tika/server/index.adoc b/docs/modules/ROOT/pages/using-tika/server/index.adoc index c2444cf38b9..a55216232f5 100644 --- a/docs/modules/ROOT/pages/using-tika/server/index.adoc +++ b/docs/modules/ROOT/pages/using-tika/server/index.adoc @@ -211,7 +211,7 @@ document on the same server is unlikely to succeed without a configuration fix. NOTE: A successful parse that encountered internal parser errors (e.g. a truncated embedded document) still returns `200 OK`. The partial-parse exception is surfaced -in the `X-TIKA:EXCEPTION:container_exception` metadata field of the response, not as an +in the `tk:exception:container-exception` metadata field of the response, not as an HTTP error code. == Configuration diff --git a/tika-app/src/test/java/org/apache/tika/cli/TikaCLIAsyncTest.java b/tika-app/src/test/java/org/apache/tika/cli/TikaCLIAsyncTest.java index 70d954094f9..024e2deabb0 100644 --- a/tika-app/src/test/java/org/apache/tika/cli/TikaCLIAsyncTest.java +++ b/tika-app/src/test/java/org/apache/tika/cli/TikaCLIAsyncTest.java @@ -145,7 +145,7 @@ private void checkForPrettyPrint(File f) throws IOException { String json = FileUtils.readFileToString(f, UTF_8); int previous = json.indexOf("Content-Length"); assertTrue(previous > -1); - for (String k : new String[]{"Content-Type", "dc:creator", "dcterms:created", "dcterms:modified", "X-TIKA:content\""}) { + for (String k : new String[]{"Content-Type", "dc:creator", "dcterms:created", "dcterms:modified", "tk:content\""}) { int i = json.indexOf(k); assertTrue(i > -1, "should have found " + k); assertTrue(i > previous, "bad order: " + k + " at " + i + " not less than " + previous); diff --git a/tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java b/tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java index 0cdb516f114..2f61e76f43d 100644 --- a/tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java +++ b/tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java @@ -159,7 +159,7 @@ public void testXMLOutput() throws Exception { assertTrue(content.contains("?xml version=\"1.0\" encoding=\"UTF-8\"?")); content = getParamOutContent("-x", "--digest=sha256", resourcePrefix + "alice.cli.test"); - assertTrue(content.contains(""), "Expanded element should be present"); content = getParamOutContent("-h", "--digest=sha384", resourcePrefix + "alice.cli.test"); - assertTrue(content.contains(" * The metadata key format is: *
    - *
  • {@code X-TIKA:digest:MD5} - for HEX encoding (default)
  • - *
  • {@code X-TIKA:digest:SHA256:BASE32} - for non-default encodings
  • + *
  • {@code tk:digest:MD5} - for HEX encoding (default)
  • + *
  • {@code tk:digest:SHA256:BASE32} - for non-default encodings
  • *
*/ public class DigestDef { @@ -114,8 +114,8 @@ public void setEncoding(Encoding encoding) { /** * Returns the metadata key for storing this digest value. *

- * For HEX encoding (the default), returns {@code X-TIKA:digest:ALGORITHM}. - * For other encodings, returns {@code X-TIKA:digest:ALGORITHM:ENCODING}. + * For HEX encoding (the default), returns {@code tk:digest:ALGORITHM}. + * For other encodings, returns {@code tk:digest:ALGORITHM:ENCODING}. * * @return the metadata key */ diff --git a/tika-core/src/main/java/org/apache/tika/digest/InputStreamDigester.java b/tika-core/src/main/java/org/apache/tika/digest/InputStreamDigester.java index 6371d23c9ed..849b54a8338 100644 --- a/tika-core/src/main/java/org/apache/tika/digest/InputStreamDigester.java +++ b/tika-core/src/main/java/org/apache/tika/digest/InputStreamDigester.java @@ -44,7 +44,7 @@ public class InputStreamDigester implements Digester { /** * @param algorithm name of the digest algorithm to retrieve from the Provider * @param metadataKey the full metadata key to use when storing the digest - * (e.g., "X-TIKA:digest:MD5" or "X-TIKA:digest:SHA256:BASE32") + * (e.g., "tk:digest:MD5" or "tk:digest:SHA256:BASE32") * @param encoder encoder to convert the byte array returned from the digester to a * string */ diff --git a/tika-core/src/main/java/org/apache/tika/metadata/Metadata.java b/tika-core/src/main/java/org/apache/tika/metadata/Metadata.java index 54d9c9c5a95..2136a8bd7fc 100644 --- a/tika-core/src/main/java/org/apache/tika/metadata/Metadata.java +++ b/tika-core/src/main/java/org/apache/tika/metadata/Metadata.java @@ -322,7 +322,8 @@ private void addUnchecked(final String name, final String value) { /** * Mark this Metadata as a trusted transformation target (e.g. a metadata filter), letting - * String writes reach reserved {@code X-TIKA:} keys. Reset when the transformation is done. + * String writes reach reserved Tika-native ({@code tk:}) keys. Reset when the transformation + * is done. */ public void setTrusted(boolean trusted) { this.trusted = trusted; @@ -332,9 +333,9 @@ public boolean isTrusted() { return trusted; } - /** Drop String writes to reserved {@code X-TIKA:} keys unless trusted; use their Property. */ + /** Drop String writes to reserved Tika-native keys unless trusted; use their Property. */ private boolean blockReservedKeyWrite(String name) { - if (!trusted && name != null && name.startsWith(TikaCoreProperties.TIKA_META_PREFIX)) { + if (!trusted && ReservedNamespaces.isTikaNative(name)) { LOG.debug("Dropping String write to reserved metadata key '{}'; use its Property.", name); return true; } @@ -347,7 +348,7 @@ private boolean blockReservedKeyWrite(String name) { * @param append add rather than set */ public void reconstruct(String name, String value, boolean append) { - if (name != null && name.startsWith(TikaCoreProperties.TIKA_META_PREFIX)) { + if (ReservedNamespaces.isTikaNative(name)) { Property property = Property.get(name); if (property != null) { if (append) { diff --git a/tika-core/src/main/java/org/apache/tika/metadata/QuattroPro.java b/tika-core/src/main/java/org/apache/tika/metadata/QuattroPro.java index 066348804f3..0f00b3430f5 100644 --- a/tika-core/src/main/java/org/apache/tika/metadata/QuattroPro.java +++ b/tika-core/src/main/java/org/apache/tika/metadata/QuattroPro.java @@ -24,7 +24,7 @@ * @author Pascal Essiembre */ public interface QuattroPro { - String QUATTROPRO_METADATA_NAME_PREFIX = "wordperfect"; + String QUATTROPRO_METADATA_NAME_PREFIX = "quattropro"; /** * ID. diff --git a/tika-core/src/main/java/org/apache/tika/metadata/Rendering.java b/tika-core/src/main/java/org/apache/tika/metadata/Rendering.java index 52543cc40f0..037dbb6a45f 100644 --- a/tika-core/src/main/java/org/apache/tika/metadata/Rendering.java +++ b/tika-core/src/main/java/org/apache/tika/metadata/Rendering.java @@ -17,8 +17,8 @@ package org.apache.tika.metadata; public interface Rendering { - String RENDERING_PREFIX = "rendering:"; + String RENDERING_PREFIX = "tk:rendering:"; - Property RENDERED_BY = Property.externalTextBag(RENDERING_PREFIX + "Rendered-By"); + Property RENDERED_BY = Property.externalTextBag(RENDERING_PREFIX + "rendered-by"); Property RENDERED_MS = Property.externalReal(RENDERING_PREFIX + "rendering-time-ms"); } diff --git a/tika-core/src/main/java/org/apache/tika/metadata/ReservedNamespaces.java b/tika-core/src/main/java/org/apache/tika/metadata/ReservedNamespaces.java new file mode 100644 index 00000000000..403594c6aaa --- /dev/null +++ b/tika-core/src/main/java/org/apache/tika/metadata/ReservedNamespaces.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.tika.metadata; + +/** + * Classifies metadata keys by who is allowed to assert them. The Tika-native namespace + * ({@code tk:}) is a trust boundary: only Tika, via a registered {@link Property}, may write it. + * A key name derived from file content (a blind scrape) that lands in this namespace is a forgery + * and must be refused rather than honored. + * + * @since Apache Tika 4.0.0 + */ +public final class ReservedNamespaces { + + private ReservedNamespaces() { + } + + /** + * Is {@code name} in the Tika-native namespace? True for the current {@code tk:} prefix and + * the pre-4.0.0 {@code X-TIKA:} prefix — the legacy prefix stays reserved so a crafted file + * cannot forge it during the 4.x window even though Tika no longer writes it. + * + * @param name a metadata key name (may be {@code null}) + * @return {@code true} if the key belongs to the reserved Tika-native namespace + */ + public static boolean isTikaNative(String name) { + return name != null + && (name.startsWith(TikaCoreProperties.TIKA_META_PREFIX) + || name.startsWith(TikaCoreProperties.LEGACY_TIKA_META_PREFIX)); + } +} diff --git a/tika-core/src/main/java/org/apache/tika/metadata/TikaCoreProperties.java b/tika-core/src/main/java/org/apache/tika/metadata/TikaCoreProperties.java index 06e0ce4f2c9..22c09752f24 100644 --- a/tika-core/src/main/java/org/apache/tika/metadata/TikaCoreProperties.java +++ b/tika-core/src/main/java/org/apache/tika/metadata/TikaCoreProperties.java @@ -43,13 +43,22 @@ public interface TikaCoreProperties { String NAMESPACE_PREFIX_DELIMITER = ":"; /** - * Use this to prefix metadata properties that store information - * about the parsing process. Users should be able to distinguish - * between metadata that was contained within the document and - * metadata about the parsing process. + * Prefix for the Tika-native metadata namespace: keys that Tika itself asserts about + * the parse (not values copied out of the document). These keys are owned, normalized + * to kebab-case, and trusted; a file-controlled key can never enter this namespace via a + * String write (see {@link ReservedNamespaces} and the guard in {@code Metadata}). + *

+ * Renamed from {@code X-TIKA:} to {@code tk:} in 4.0.0; see {@link #LEGACY_TIKA_META_PREFIX}. + */ + String TIKA_META_PREFIX = "tk" + NAMESPACE_PREFIX_DELIMITER; + + /** + * The pre-4.0.0 Tika-native prefix. Retained only so the reserved-key guard keeps rejecting + * forged {@code X-TIKA:} keys during the 4.x window; Tika no longer writes it. Consumers must + * migrate to {@link #TIKA_META_PREFIX} ({@code tk:}) — see the 3.x-to-4.x metadata key table. */ - String TIKA_META_PREFIX = "X-TIKA" + NAMESPACE_PREFIX_DELIMITER; - Property EMBEDDED_DEPTH = Property.internalInteger(TIKA_META_PREFIX + "embedded_depth"); + String LEGACY_TIKA_META_PREFIX = "X-TIKA" + NAMESPACE_PREFIX_DELIMITER; + Property EMBEDDED_DEPTH = Property.internalInteger(TIKA_META_PREFIX + "embedded-depth"); /** * This tracks the embedded file paths based on the name of embedded files @@ -62,7 +71,7 @@ public interface TikaCoreProperties { * For a more robust path, see {@link TikaCoreProperties#EMBEDDED_ID_PATH}. */ Property EMBEDDED_RESOURCE_PATH = - Property.internalText(TIKA_META_PREFIX + "embedded_resource_path"); + Property.internalText(TIKA_META_PREFIX + "embedded-resource-path"); /** @@ -85,28 +94,28 @@ public interface TikaCoreProperties { * For a more robust path, see {@link TikaCoreProperties#EMBEDDED_ID_PATH}. */ Property FINAL_EMBEDDED_RESOURCE_PATH = - Property.internalText(TIKA_META_PREFIX + "final_embedded_resource_path"); + Property.internalText(TIKA_META_PREFIX + "final-embedded-resource-path"); /** * This tracks the embedded file paths based on the embedded file's * {@link TikaCoreProperties#EMBEDDED_ID}. */ Property EMBEDDED_ID_PATH = - Property.internalText(TIKA_META_PREFIX + "embedded_id_path"); + Property.internalText(TIKA_META_PREFIX + "embedded-id-path"); /** * This is a 1-index counter for embedded files, used by the RecursiveParserWrapper */ Property EMBEDDED_ID = - Property.internalInteger(TIKA_META_PREFIX + "embedded_id"); + Property.internalInteger(TIKA_META_PREFIX + "embedded-id"); - Property PARSE_TIME_MILLIS = Property.internalText(TIKA_META_PREFIX + "parse_time_millis"); + Property PARSE_TIME_MILLIS = Property.internalText(TIKA_META_PREFIX + "parse-time-millis"); /** * Simple class name of the content handler. * @deprecated Use {@link #TIKA_CONTENT_HANDLER_TYPE} for the handler type enum value. */ @Deprecated - Property TIKA_CONTENT_HANDLER = Property.internalText(TIKA_META_PREFIX + "content_handler"); + Property TIKA_CONTENT_HANDLER = Property.internalText(TIKA_META_PREFIX + "content-handler"); /** * The handler type used to produce {@link #TIKA_CONTENT}. @@ -114,7 +123,7 @@ public interface TikaCoreProperties { * enum name (e.g. {@code TEXT}, {@code MARKDOWN}, {@code HTML}, {@code XML}). */ Property TIKA_CONTENT_HANDLER_TYPE = - Property.internalText(TIKA_META_PREFIX + "content_handler_type"); + Property.internalText(TIKA_META_PREFIX + "content-handler-type"); Property TIKA_CONTENT = Property.internalText(TIKA_META_PREFIX + "content"); /** @@ -122,41 +131,41 @@ public interface TikaCoreProperties { * Used by inference parsers and metadata filters to attach chunked representations * of document content for downstream indexing and semantic search. */ - String TIKA_CHUNKS = "tika:chunks"; + String TIKA_CHUNKS = "tk:chunks"; /** * Use this to store parse exception information in the Metadata object. */ - String TIKA_META_EXCEPTION_PREFIX = TIKA_META_PREFIX + "EXCEPTION" + NAMESPACE_PREFIX_DELIMITER; + String TIKA_META_EXCEPTION_PREFIX = TIKA_META_PREFIX + "exception" + NAMESPACE_PREFIX_DELIMITER; /** * Use this to store warnings that happened during the parse. */ - String TIKA_META_WARN_PREFIX = TIKA_META_PREFIX + "WARN" + NAMESPACE_PREFIX_DELIMITER; + String TIKA_META_WARN_PREFIX = TIKA_META_PREFIX + "warn" + NAMESPACE_PREFIX_DELIMITER; //exception in main file Property CONTAINER_EXCEPTION = - Property.internalText(TIKA_META_EXCEPTION_PREFIX + "container_exception"); + Property.internalText(TIKA_META_EXCEPTION_PREFIX + "container-exception"); //exception in an embedded file Property EMBEDDED_EXCEPTION = - Property.internalTextBag(TIKA_META_EXCEPTION_PREFIX + "embedded_exception"); + Property.internalTextBag(TIKA_META_EXCEPTION_PREFIX + "embedded-exception"); //exception handling the raw bytes of an embedded file by an EmbeddedDocumentByteStore Property EMBEDDED_BYTES_EXCEPTION = - Property.internalTextBag(TIKA_META_EXCEPTION_PREFIX + "embedded_bytes_exception"); + Property.internalTextBag(TIKA_META_EXCEPTION_PREFIX + "embedded-bytes-exception"); //warning while parsing in an embedded file Property EMBEDDED_WARNING = - Property.internalTextBag(TIKA_META_EXCEPTION_PREFIX + "embedded_warning"); + Property.internalTextBag(TIKA_META_EXCEPTION_PREFIX + "embedded-warning"); Property WRITE_LIMIT_REACHED = - Property.internalBoolean(TIKA_META_EXCEPTION_PREFIX + "write_limit_reached"); + Property.internalBoolean(TIKA_META_EXCEPTION_PREFIX + "write-limit-reached"); Property EMBEDDED_RESOURCE_LIMIT_REACHED = - Property.internalBoolean(TIKA_META_EXCEPTION_PREFIX + "embedded_resource_limit_reached"); + Property.internalBoolean(TIKA_META_EXCEPTION_PREFIX + "embedded-resource-limit-reached"); Property EMBEDDED_DEPTH_LIMIT_REACHED = - Property.internalBoolean(TIKA_META_EXCEPTION_PREFIX + "embedded_depth_limit_reached"); + Property.internalBoolean(TIKA_META_EXCEPTION_PREFIX + "embedded-depth-limit-reached"); /** * Use this to store exceptions caught during a parse that are @@ -173,7 +182,7 @@ public interface TikaCoreProperties { * a field is not in the "include" set. */ Property TRUNCATED_METADATA = - Property.internalBoolean(TIKA_META_WARN_PREFIX + "truncated_metadata"); + Property.internalBoolean(TIKA_META_WARN_PREFIX + "truncated-metadata"); /** * This indicates that only a portion of the file content was provided for detection. @@ -181,7 +190,7 @@ public interface TikaCoreProperties { * (e.g., not returning a detection result that requires reading to end of file). */ Property TRUNCATED_CONTENT_FOR_DETECTION = - Property.internalBoolean(TIKA_META_PREFIX + "truncated_content_for_detection"); + Property.internalBoolean(TIKA_META_PREFIX + "truncated-content-for-detection"); /** * When content is truncated for detection, this stores the number of bytes @@ -189,7 +198,7 @@ public interface TikaCoreProperties { * to set appropriate mark limits. */ Property DETECTION_CONTENT_LENGTH = - Property.internalInteger(TIKA_META_PREFIX + "detection_content_length"); + Property.internalInteger(TIKA_META_PREFIX + "detection-content-length"); /** * Use this to store exceptions caught while trying to read the @@ -197,43 +206,43 @@ public interface TikaCoreProperties { * a parse exception on the embedded resource. */ Property TIKA_META_EXCEPTION_EMBEDDED_STREAM = - Property.internalTextBag(TIKA_META_EXCEPTION_PREFIX + "embedded_stream_exception"); - Property TIKA_PARSED_BY = Property.internalTextBag(TIKA_META_PREFIX + "Parsed-By"); + Property.internalTextBag(TIKA_META_EXCEPTION_PREFIX + "embedded-stream-exception"); + Property TIKA_PARSED_BY = Property.internalTextBag(TIKA_META_PREFIX + "parsed-by"); /** * Use this to store a record of all parsers that touched a given file * in the container file's metadata. */ - Property TIKA_PARSED_BY_FULL_SET = Property.internalTextBag(TIKA_META_PREFIX + "Parsed-By-Full-Set"); + Property TIKA_PARSED_BY_FULL_SET = Property.internalTextBag(TIKA_META_PREFIX + "parsed-by-full-set"); Property TIKA_DETECTED_LANGUAGE = Property.externalTextBag(TIKA_META_PREFIX + - "detected_language"); + "detected-language"); Property TIKA_DETECTED_LANGUAGE_CONFIDENCE = Property.externalTextBag(TIKA_META_PREFIX + - "detected_language_confidence"); + "detected-language-confidence"); Property TIKA_DETECTED_LANGUAGE_CONFIDENCE_RAW = Property.externalRealSeq(TIKA_META_PREFIX + - "detected_language_confidence_raw"); + "detected-language-confidence-raw"); - Property RESOURCE_NAME_KEY = Property.internalText(TIKA_META_PREFIX + "resourceName"); + Property RESOURCE_NAME_KEY = Property.internalText(TIKA_META_PREFIX + "resource-name"); /** * Indicates that the file extension on the resource name was inferred by Tika * (e.g., from content type detection) rather than provided by the original document. */ Property RESOURCE_NAME_EXTENSION_INFERRED = - Property.externalBoolean(TIKA_META_PREFIX + "resourceNameExtensionInferred"); + Property.externalBoolean(TIKA_META_PREFIX + "resource-name-extension-inferred"); - Property EMBEDDED_RELATIONSHIP_ID = Property.internalText(TIKA_META_PREFIX + "embeddedRelationshipId"); + Property EMBEDDED_RELATIONSHIP_ID = Property.internalText(TIKA_META_PREFIX + "embedded-relationship-id"); - String EMBEDDED_RESOURCE_TYPE_KEY = "embeddedResourceType"; + String EMBEDDED_RESOURCE_TYPE_KEY = "tk:embedded-resource-type"; /** * Some file formats can store information about their original * file name/location or about their attachment's original file name/location * within the file. */ Property ORIGINAL_RESOURCE_NAME = - Property.internalTextBag(TIKA_META_PREFIX + "origResourceName"); + Property.internalTextBag(TIKA_META_PREFIX + "orig-resource-name"); /** * This should be used to store the path (relative or full) * of the source/container file, including the file name, @@ -241,13 +250,13 @@ public interface TikaCoreProperties { *

* This can also be used for a primary key within a database. */ - Property SOURCE_PATH = Property.internalText(TIKA_META_PREFIX + "sourcePath"); + Property SOURCE_PATH = Property.internalText(TIKA_META_PREFIX + "source-path"); /** * This records the metadata as stored within a file for an embedded file's path * including the file name. For example a zip file may include an msg with this path: /my-emails/important/this.msg */ - Property INTERNAL_PATH = Property.internalText(TIKA_META_PREFIX + "internalPath"); + Property INTERNAL_PATH = Property.internalText(TIKA_META_PREFIX + "internal-path"); /** * This is currently used to identify Content-Type that may be @@ -256,25 +265,25 @@ public interface TikaCoreProperties { * , or the value might come from outside the document. This information * may be faulty and should be treated only as a hint. */ - Property CONTENT_TYPE_HINT = Property.internalText(HttpHeaders.CONTENT_TYPE + "-Hint"); + Property CONTENT_TYPE_HINT = Property.internalText(TIKA_META_PREFIX + "content-type-hint"); /** * This is used by users to override detection with the override detector. */ Property CONTENT_TYPE_USER_OVERRIDE = - Property.internalText(HttpHeaders.CONTENT_TYPE + "-Override"); + Property.internalText(TIKA_META_PREFIX + "content-type-override"); /** * This is used by parsers to override detection of embedded resources * with the override detector. */ Property CONTENT_TYPE_PARSER_OVERRIDE = - Property.internalText(HttpHeaders.CONTENT_TYPE + "-Parser-Override"); + Property.internalText(TIKA_META_PREFIX + "content-type-parser-override"); /** * This is set by DefaultDetector to store the result of MimeTypes (magic byte) * detection. This allows downstream detectors to use it as a hint without * re-running magic detection. */ Property CONTENT_TYPE_MAGIC_DETECTED = - Property.internalText(HttpHeaders.CONTENT_TYPE + "-Magic-Detected"); + Property.internalText(TIKA_META_PREFIX + "content-type-magic-detected"); /** * @see DublinCore#FORMAT */ @@ -387,7 +396,7 @@ public interface TikaCoreProperties { * Java's {@link javax.imageio.ImageReader#getNumImages(boolean)}. See * the javadocs for known limitations. */ - Property NUM_IMAGES = Property.internalInteger("imagereader:NumImages"); + Property NUM_IMAGES = Property.internalInteger("tk:num-images"); // Comment and rating properties /** @@ -401,14 +410,14 @@ public interface TikaCoreProperties { EmbeddedResourceType.ATTACHMENT.toString(), EmbeddedResourceType.INLINE.toString(), EmbeddedResourceType.METADATA.toString(), EmbeddedResourceType.MACRO.toString(), EmbeddedResourceType.THUMBNAIL.toString(), EmbeddedResourceType.RENDERING.toString()); - Property HAS_SIGNATURE = Property.internalBoolean("hasSignature"); + Property HAS_SIGNATURE = Property.internalBoolean("tk:has-signature"); - Property SIGNATURE_NAME = Property.internalTextBag("signature:name"); - Property SIGNATURE_DATE = Property.internalDateBag("signature:date"); - Property SIGNATURE_LOCATION = Property.internalTextBag("signature:location"); - Property SIGNATURE_REASON = Property.internalTextBag("signature:reason"); - Property SIGNATURE_FILTER = Property.internalTextBag("signature:filter"); - Property SIGNATURE_CONTACT_INFO = Property.internalTextBag("signature:contact-info"); + Property SIGNATURE_NAME = Property.internalTextBag("tk:signature:name"); + Property SIGNATURE_DATE = Property.internalDateBag("tk:signature:date"); + Property SIGNATURE_LOCATION = Property.internalTextBag("tk:signature:location"); + Property SIGNATURE_REASON = Property.internalTextBag("tk:signature:reason"); + Property SIGNATURE_FILTER = Property.internalTextBag("tk:signature:filter"); + Property SIGNATURE_CONTACT_INFO = Property.internalTextBag("tk:signature:contact-info"); //is the file encrypted Property IS_ENCRYPTED = Property.internalBoolean(TIKA_META_PREFIX + "encrypted"); @@ -420,14 +429,14 @@ public interface TikaCoreProperties { * may choose to use a default encoding. We want to differentiate between a parser using a * default encoding and the output of an EncodingDetector. */ - Property DETECTED_ENCODING = Property.externalText(TIKA_META_PREFIX + "detectedEncoding"); + Property DETECTED_ENCODING = Property.externalText(TIKA_META_PREFIX + "detected-encoding"); /** * This should be the simple class name for the EncodingDetectors whose detected encoding * was used in the parse. */ - Property ENCODING_DETECTOR = Property.externalText(TIKA_META_PREFIX + "encodingDetector"); + Property ENCODING_DETECTOR = Property.externalText(TIKA_META_PREFIX + "encoding-detector"); /** * Diagnostic trace showing which encoding detectors ran and what each returned, @@ -435,7 +444,7 @@ public interface TikaCoreProperties { * Example: {@code "HtmlEncodingDetector->UTF-8, Icu4jEncodingDetector->windows-1256 (scored)"} */ Property ENCODING_DETECTION_TRACE = - Property.externalText(TIKA_META_PREFIX + "encodingDetectionTrace"); + Property.externalText(TIKA_META_PREFIX + "encoding-detection-trace"); /** * The charset actually used to decode the stream when a superset override was applied. @@ -447,13 +456,13 @@ public interface TikaCoreProperties { * the same charset. */ Property DECODED_CHARSET = - Property.externalText(TIKA_META_PREFIX + "decodedCharset"); + Property.externalText(TIKA_META_PREFIX + "decoded-charset"); /** * General metadata key for the count of non-final versions available within a file. This * was added initially to support generalizing incremental updates in PDF. */ - Property VERSION_COUNT = Property.externalInteger(TIKA_META_PREFIX + "versionCount"); + Property VERSION_COUNT = Property.externalInteger(TIKA_META_PREFIX + "version-count"); /** * General metadata key for the version number of a given file that contains @@ -461,9 +470,9 @@ public interface TikaCoreProperties { * The latest version does not have this metadata value. This was added initially * to support generalizing incremental updates in PDF. */ - Property VERSION_NUMBER = Property.externalInteger(TIKA_META_PREFIX + "versionNumber"); + Property VERSION_NUMBER = Property.externalInteger(TIKA_META_PREFIX + "version-number"); - Property PIPES_RESULT = Property.externalText(TIKA_META_PREFIX + "pipes_result"); + Property PIPES_RESULT = Property.externalText(TIKA_META_PREFIX + "pipes-result"); /** * A file might contain different types of embedded documents. * The most common is the ATTACHMENT. diff --git a/tika-core/src/main/java/org/apache/tika/metadata/TikaPagedText.java b/tika-core/src/main/java/org/apache/tika/metadata/TikaPagedText.java index 0b2fe85ea81..76faee52bda 100644 --- a/tika-core/src/main/java/org/apache/tika/metadata/TikaPagedText.java +++ b/tika-core/src/main/java/org/apache/tika/metadata/TikaPagedText.java @@ -24,13 +24,13 @@ * Use {@link PagedText} where possible */ public interface TikaPagedText { - String TIKA_PAGED_TEXT_PREFIX = "tika_pg:"; + String TIKA_PAGED_TEXT_PREFIX = "tk:page:"; /** * 1-based page number for a specific page. Set when a resource is * anchored to exactly one page; for resources spanning multiple pages * see {@link #PAGE_NUMBERS}. */ - Property PAGE_NUMBER = Property.internalInteger(TIKA_PAGED_TEXT_PREFIX + "page_number"); + Property PAGE_NUMBER = Property.internalInteger(TIKA_PAGED_TEXT_PREFIX + "number"); /** * 1-based page numbers an embedded resource is anchored to, as a @@ -56,7 +56,7 @@ public interface TikaPagedText { * */ Property PAGE_NUMBERS = - Property.internalIntegerSequence(TIKA_PAGED_TEXT_PREFIX + "page_numbers"); + Property.internalIntegerSequence(TIKA_PAGED_TEXT_PREFIX + "numbers"); /** * Sentinel value used as the sole element of {@link #PAGE_NUMBERS} @@ -66,5 +66,5 @@ public interface TikaPagedText { */ int UNLINKED_PAGE = -1; - Property PAGE_ROTATION = Property.internalRational(TIKA_PAGED_TEXT_PREFIX + "page_rotation"); + Property PAGE_ROTATION = Property.internalRational(TIKA_PAGED_TEXT_PREFIX + "rotation"); } diff --git a/tika-core/src/main/java/org/apache/tika/sax/AbstractRecursiveParserWrapperHandler.java b/tika-core/src/main/java/org/apache/tika/sax/AbstractRecursiveParserWrapperHandler.java index 99db843de3b..7290cfa19ea 100644 --- a/tika-core/src/main/java/org/apache/tika/sax/AbstractRecursiveParserWrapperHandler.java +++ b/tika-core/src/main/java/org/apache/tika/sax/AbstractRecursiveParserWrapperHandler.java @@ -35,10 +35,11 @@ public abstract class AbstractRecursiveParserWrapperHandler extends DefaultHandler implements Serializable { - public final static Property EMBEDDED_RESOURCE_LIMIT_REACHED = Property.internalBoolean( - TikaCoreProperties.TIKA_META_EXCEPTION_PREFIX + "embedded_resource_limit_reached"); - public final static Property EMBEDDED_DEPTH_LIMIT_REACHED = Property.internalBoolean( - TikaCoreProperties.TIKA_META_EXCEPTION_PREFIX + "embedded_depth_limit_reached"); + // Canonical definitions live in TikaCoreProperties; alias here so the key can never diverge. + public final static Property EMBEDDED_RESOURCE_LIMIT_REACHED = + TikaCoreProperties.EMBEDDED_RESOURCE_LIMIT_REACHED; + public final static Property EMBEDDED_DEPTH_LIMIT_REACHED = + TikaCoreProperties.EMBEDDED_DEPTH_LIMIT_REACHED; private static final int MAX_DEPTH = 100; private final ContentHandlerFactory contentHandlerFactory; private int embeddedDepth = 0; diff --git a/tika-core/src/main/java/org/apache/tika/utils/ParserUtils.java b/tika-core/src/main/java/org/apache/tika/utils/ParserUtils.java index ecd5287894d..3536cf83e65 100644 --- a/tika-core/src/main/java/org/apache/tika/utils/ParserUtils.java +++ b/tika-core/src/main/java/org/apache/tika/utils/ParserUtils.java @@ -32,7 +32,7 @@ public class ParserUtils { public final static Property EMBEDDED_PARSER = Property.internalText( - TikaCoreProperties.TIKA_META_EXCEPTION_PREFIX + "embedded_parser"); + TikaCoreProperties.TIKA_META_EXCEPTION_PREFIX + "embedded-parser"); /** diff --git a/tika-core/src/test/java/org/apache/tika/digest/InputStreamDigesterTest.java b/tika-core/src/test/java/org/apache/tika/digest/InputStreamDigesterTest.java index 34b2d289544..be208317469 100644 --- a/tika-core/src/test/java/org/apache/tika/digest/InputStreamDigesterTest.java +++ b/tika-core/src/test/java/org/apache/tika/digest/InputStreamDigesterTest.java @@ -32,7 +32,7 @@ public class InputStreamDigesterTest { @Test public void testReservedDigestKeySurvivesGuard() throws Exception { - String key = "X-TIKA:digest:SHA256"; + String key = "tk:digest:SHA256"; InputStreamDigester digester = new InputStreamDigester("SHA256", key, bytes -> Base64.getEncoder().encodeToString(bytes)); Metadata metadata = new Metadata(); diff --git a/tika-core/src/test/java/org/apache/tika/metadata/MetadataInternalKeyGuardTest.java b/tika-core/src/test/java/org/apache/tika/metadata/MetadataInternalKeyGuardTest.java index d6bafa5f6eb..f7df174c4ca 100644 --- a/tika-core/src/test/java/org/apache/tika/metadata/MetadataInternalKeyGuardTest.java +++ b/tika-core/src/test/java/org/apache/tika/metadata/MetadataInternalKeyGuardTest.java @@ -22,9 +22,18 @@ import org.junit.jupiter.api.Test; -/** Reserved {@code X-TIKA:} keys can't be overwritten by String writes, only via Property. */ +/** Reserved Tika-native ({@code tk:}) keys can't be overwritten by String writes, only via Property. */ public class MetadataInternalKeyGuardTest { + @Test + public void testLegacyXTikaPrefixStaysReserved() { + Metadata metadata = new Metadata(); + // pre-4.0.0 prefix stays reserved so a crafted file can't forge it during the 4.x window + metadata.add(TikaCoreProperties.LEGACY_TIKA_META_PREFIX + "Parsed-By", "org.evil.FakeParser"); + assertNull(metadata.get(TikaCoreProperties.LEGACY_TIKA_META_PREFIX + "Parsed-By"), + "legacy X-TIKA: String write must still be dropped"); + } + @Test public void testStringWriteToInternalKeyIsDropped() { Metadata metadata = new Metadata(); diff --git a/tika-e2e-tests/tika-grpc/src/test/java/org/apache/tika/pipes/filesystem/HandlerTypeTest.java b/tika-e2e-tests/tika-grpc/src/test/java/org/apache/tika/pipes/filesystem/HandlerTypeTest.java index 9cf66973898..eedfb2a1714 100644 --- a/tika-e2e-tests/tika-grpc/src/test/java/org/apache/tika/pipes/filesystem/HandlerTypeTest.java +++ b/tika-e2e-tests/tika-grpc/src/test/java/org/apache/tika/pipes/filesystem/HandlerTypeTest.java @@ -314,7 +314,7 @@ void testParseContextJson() throws Exception { Assertions.assertEquals("PARSE_SUCCESS", htmlReply.getStatus(), "Parse should succeed with HTML handler type"); - String htmlContent = htmlReply.getFieldsMap().get("X-TIKA:content"); + String htmlContent = htmlReply.getFieldsMap().get("tk:content"); Assertions.assertNotNull(htmlContent, "Content should be present in HTML response"); LOG.info("HTML content (first 200 chars): {}", htmlContent.substring(0, Math.min(200, htmlContent.length()))); Assertions.assertTrue( @@ -332,7 +332,7 @@ void testParseContextJson() throws Exception { Assertions.assertEquals("PARSE_SUCCESS", textReply.getStatus(), "Parse should succeed with TEXT handler type"); - String textContent = textReply.getFieldsMap().get("X-TIKA:content"); + String textContent = textReply.getFieldsMap().get("tk:content"); Assertions.assertNotNull(textContent, "Content should be present in text response"); LOG.info("Text content (first 200 chars): {}", textContent.substring(0, Math.min(200, textContent.length()))); Assertions.assertFalse( diff --git a/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ExtractComparer.java b/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ExtractComparer.java index 06e5486cb45..20a8563b028 100644 --- a/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ExtractComparer.java +++ b/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ExtractComparer.java @@ -441,14 +441,14 @@ private int findMatchingDigests(String sharedDigestKey, String emptyDigest, Set< /** * Computes the hex-encoded digest of empty (zero-byte) content for the - * algorithm identified by the shared digest key (e.g. "X-TIKA:digest:MD5"). + * algorithm identified by the shared digest key (e.g. "tk:digest:MD5"). * Returns null if the algorithm cannot be resolved. */ private static String computeEmptyDigest(String sharedDigestKey) { if (sharedDigestKey == null) { return null; } - // key format: "X-TIKA:digest:MD5" or "X-TIKA:digest:SHA256" etc. + // key format: "tk:digest:MD5" or "tk:digest:SHA256" etc. String algo = sharedDigestKey.substring(DIGEST_KEY_PREFIX.length()); // normalize common names to MessageDigest algorithm names // e.g. SHA256 -> SHA-256 diff --git a/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ExtractProfiler.java b/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ExtractProfiler.java index 551f92d11a5..c2dedff1d19 100644 --- a/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ExtractProfiler.java +++ b/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ExtractProfiler.java @@ -55,7 +55,7 @@ public class ExtractProfiler extends ProfilerBase { new ColInfo(Cols.ELAPSED_TIME_MILLIS, Types.INTEGER), new ColInfo(Cols.NUM_ATTACHMENTS, Types.INTEGER), new ColInfo(Cols.NUM_METADATA_VALUES, Types.INTEGER), new ColInfo(Cols.NUM_PAGES, Types.INTEGER), new ColInfo(Cols.NUM_OCR_PAGES, Types.INTEGER), new ColInfo(Cols.HAS_CONTENT, Types.BOOLEAN)); /** Charset detection per file (one row only when detection ran): final pick, - * winning detector, declared charset from metadata (Content-Type-Hint). */ + * winning detector, declared charset from metadata (tk:content-type-hint). */ public static TableInfo ENCODINGS_TABLE = new TableInfo("encodings", new ColInfo(Cols.ID, Types.INTEGER, "PRIMARY KEY"), new ColInfo(Cols.DETECTED_ENCODING, Types.VARCHAR, 64), diff --git a/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ProfilerBase.java b/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ProfilerBase.java index 6942c3b5a8c..330455e6103 100644 --- a/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ProfilerBase.java +++ b/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ProfilerBase.java @@ -94,7 +94,7 @@ public abstract class ProfilerBase { private static final String ZERO = "0"; private static final String UNKNOWN_EXTENSION = "unk"; //make this configurable - private static final String DIGEST_KEY = "X-TIKA:digest:MD5"; + private static final String DIGEST_KEY = "tk:digest:MD5"; private static final Map UC_TAGS_OF_INTEREST = initTags(); private final static Pattern ACCESS_PERMISSION_EXCEPTION = Pattern.compile("org\\.apache\\.tika\\.exception\\.AccessPermissionException"); private final static Pattern ENCRYPTION_EXCEPTION = Pattern.compile("org\\.apache\\.tika.exception\\.EncryptedDocumentException"); @@ -561,7 +561,7 @@ protected void writeContentData(String fileId, Map textStats, Tab /** * Per-file charset-detection record: the final detected encoding, the * detector that won, and the declared charset from metadata - * (Content-Type-Hint). Writes a row only when a detected encoding is + * (tk:content-type-hint). Writes a row only when a detected encoding is * present, so the table holds only files that ran charset detection. */ protected void writeEncodingData(String fileId, Metadata m, TableInfo encodingsTable) { diff --git a/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/db/Cols.java b/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/db/Cols.java index 6aa5f222599..9d3ea0ec1c9 100644 --- a/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/db/Cols.java +++ b/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/db/Cols.java @@ -26,7 +26,7 @@ public enum Cols { //profile table ID, LENGTH, FILE_NAME, FILE_EXTENSION, ELAPSED_TIME_MILLIS, NUM_METADATA_VALUES, IS_EMBEDDED, EMBEDDED_FILE_PATH, MIME_ID, TIKA_MIME_ID, FILE_MIME_ID, SHA256, MD5, NUM_ATTACHMENTS, ATTACHMENT_TYPE, EMBEDDED_DEPTH, HAS_CONTENT, - //charset detection (encodings table): final pick, winning detector, declared-via-metadata (Content-Type-Hint) + //charset detection (encodings table): final pick, winning detector, declared-via-metadata (tk:content-type-hint) DETECTED_ENCODING, ENCODING_DETECTOR, DECLARED_METADATA, //content diff --git a/tika-eval/tika-eval-app/src/main/resources/comparison-reports-pg.xml b/tika-eval/tika-eval-app/src/main/resources/comparison-reports-pg.xml index 1343e002bfb..4069a3aceb0 100644 --- a/tika-eval/tika-eval-app/src/main/resources/comparison-reports-pg.xml +++ b/tika-eval/tika-eval-app/src/main/resources/comparison-reports-pg.xml @@ -841,7 +841,7 @@ diff --git a/tika-eval/tika-eval-app/src/main/resources/comparison-reports.xml b/tika-eval/tika-eval-app/src/main/resources/comparison-reports.xml index 69efc926e15..9955413bc07 100644 --- a/tika-eval/tika-eval-app/src/main/resources/comparison-reports.xml +++ b/tika-eval/tika-eval-app/src/main/resources/comparison-reports.xml @@ -480,7 +480,7 @@ diff --git a/tika-eval/tika-eval-app/src/test/resources/extracts/TIKA-4446-a.json b/tika-eval/tika-eval-app/src/test/resources/extracts/TIKA-4446-a.json index 69b6e076206..33c1cca633e 100644 --- a/tika-eval/tika-eval-app/src/test/resources/extracts/TIKA-4446-a.json +++ b/tika-eval/tika-eval-app/src/test/resources/extracts/TIKA-4446-a.json @@ -1 +1 @@ -[{"msoffice:excel:has-hidden-rows":"true","X-TIKA:Parsed-By-Full-Set":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser","org.apache.tika.parser.microsoft.EMFParser","org.apache.tika.parser.image.JpegParser","org.apache.tika.parser.microsoft.WMFParser","org.apache.tika.parser.EmptyParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:content_handler":"ToTextContentHandler","tika_batch_fs:relative_path":"govdocs1/355/355118.xls","meta:print-date":"2007-06-11T21:36:54Z","dcterms:created":"2004-05-13T21:24:11Z","dcterms:modified":"2008-08-29T12:18:17Z","msoffice:has-comments":"true","extended-properties:TotalTime":"0","Content-Length":"1542656","X-TIKA:digest:MD5":"82302876894ca85adb4fb1a67652db1a","Content-Type":"application/vnd.ms-excel","msoffice:comment-person-display-name":["Anne Hampson","Joe McGervey"],"w:Comments":"Version: April 26, 2006\r\n","msoffice:excel:hidden-sheet-names":["Lists","STMTech","CHPTech","EGRID","Profiles","Factors","Calc1"],"extended-properties:Application":"Microsoft Excel","meta:last-author":"Bob","msoffice:excel:has-hidden-sheets":"true","resourceName":"355118.xls","msoffice:excel:has-hidden-cols":"true","msoffice:excel:protected-worksheet":"true","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"tika:file_ext":"xls","X-TIKA:parse_time_millis":"101","X-TIKA:embedded_depth":"0","X-TIKA:content":""},{"Transparency Alpha":"none","X-TIKA:embedded_id_path":"/1","tiff:ImageLength":"69","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","Dimension VerticalPixelSize":"0.26455027","IHDR":"width=444, height=69, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"32566","tiff:BitsPerSample":"8 8 8","X-TIKA:digest:MD5":"1d1901a8ca3e8d79125223ef6d552c59","X-TIKA:embedded_id":"1","Content-Type":"image/png","height":"69","imagereader:NumImages":"1","gAMA":"45448","X-TIKA:final_embedded_resource_path":"/embedded-1","pHYs":"pixelsPerUnitXAxis=3780, pixelsPerUnitYAxis=3780, unitSpecifier=meter","Chroma Gamma":"0.45448","Dimension PixelAspectRatio":"1.0","Compression NumProgressiveScans":"1","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Dimension HorizontalPixelSize":"0.26455027","Chroma BlackIsZero":"true","Compression Lossless":"true","X-TIKA:embedded_depth":"1","width":"444","X-TIKA:parse_time_millis":"1","Dimension ImageOrientation":"Normal","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-1","tiff:ImageWidth":"444","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"Transparency Alpha":"none","X-TIKA:embedded_id_path":"/2","tiff:ImageLength":"211","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","IHDR":"width=250, height=211, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"99582","tiff:BitsPerSample":"8 8 8","X-TIKA:digest:MD5":"d1998e7d99df6ce3c1e9d5a79d876aa7","X-TIKA:embedded_id":"2","Content-Type":"image/png","height":"211","imagereader:NumImages":"1","gAMA":"45448","X-TIKA:final_embedded_resource_path":"/embedded-2","Chroma Gamma":"0.45448","Dimension PixelAspectRatio":"1.0","Compression NumProgressiveScans":"1","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Chroma BlackIsZero":"true","Compression Lossless":"true","X-TIKA:embedded_depth":"1","width":"250","X-TIKA:parse_time_millis":"1","Dimension ImageOrientation":"Normal","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-2","tiff:ImageWidth":"250","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"X-TIKA:final_embedded_resource_path":"/embedded-3","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"X-TIKA:embedded_id_path":"/3","X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-3","Content-Length":"17300","X-TIKA:digest:MD5":"c8b11baf4d4a0e31c70cf39caecc00e4","X-TIKA:embedded_id":"3","Content-Type":"image/emf"},{"X-TIKA:final_embedded_resource_path":"/embedded-4","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"X-TIKA:embedded_id_path":"/4","X-TIKA:content_handler":"ToTextContentHandler","X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-4","Content-Length":"5452","X-TIKA:digest:MD5":"976b892e2298066db0170bfeae313997","X-TIKA:embedded_id":"4","Content-Type":"image/emf"},{"Number of Tables":"4 Huffman tables","Compression Type":"Baseline","X-TIKA:embedded_id_path":"/5","Data Precision":"8 bits","Number of Components":"3","tiff:ImageLength":"174","Component 2":"Cb component: Quantization table 1, Sampling factors 1 horiz/1 vert","Thumbnail Height Pixels":"0","Component 1":"Y component: Quantization table 0, Sampling factors 2 horiz/2 vert","X Resolution":"96 dots","File Size":"7518 bytes","Component 3":"Cr component: Quantization table 1, Sampling factors 1 horiz/1 vert","Version":"1.1","JPEG Comment":"Software: Microsoft Office","File Name":"apache-tika-4921877026214264439.tmp","Content-Length":"7518","tiff:BitsPerSample":"8","X-TIKA:digest:MD5":"c61f33248aaa54b875a6dd8408766a3a","X-TIKA:embedded_id":"5","Content-Type":"image/jpeg","w:Comments":"Software: Microsoft Office","Resolution Units":"inch","X-TIKA:final_embedded_resource_path":"/embedded-5","File Modified Date":"Wed Jun 18 20:57:50 +02:00 2025","Image Height":"174 pixels","Thumbnail Width Pixels":"0","Image Width":"262 pixels","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.JpegParser"],"X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-5","tiff:ImageWidth":"262","Y Resolution":"96 dots"},{"X-TIKA:final_embedded_resource_path":"/embedded-7/embedded-6","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"X-TIKA:embedded_id_path":"/6/7","X-TIKA:content_handler":"ToTextContentHandler","X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-6/embedded-7","Content-Length":"322","X-TIKA:digest:MD5":"68b315e61cb35528954cd5c1e9caa265","X-TIKA:embedded_id":"7","Content-Type":"image/wmf"},{"X-TIKA:final_embedded_resource_path":"/embedded-7","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"X-TIKA:embedded_id_path":"/6","X-TIKA:content_handler":"ToTextContentHandler","X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-6","Content-Length":"1216","X-TIKA:digest:MD5":"cf33b98dcc168e0b707e0ff17c33ebd2","X-TIKA:embedded_id":"6","Content-Type":"image/emf"},{"Transparency Alpha":"none","X-TIKA:embedded_id_path":"/8","tiff:ImageLength":"768","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","Dimension VerticalPixelSize":"0.26455027","IHDR":"width=1024, height=768, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"140967","tiff:BitsPerSample":"8 8 8","X-TIKA:digest:MD5":"bc809828b9d2c6fd1f45c5abc83a90fb","X-TIKA:embedded_id":"8","Content-Type":"image/png","height":"768","imagereader:NumImages":"1","X-TIKA:final_embedded_resource_path":"/embedded-8","pHYs":"pixelsPerUnitXAxis=3780, pixelsPerUnitYAxis=3780, unitSpecifier=meter","Dimension PixelAspectRatio":"1.0","sRGB":"Perceptual","Compression NumProgressiveScans":"1","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Dimension HorizontalPixelSize":"0.26455027","Chroma BlackIsZero":"true","Compression Lossless":"true","X-TIKA:embedded_depth":"1","width":"1024","X-TIKA:parse_time_millis":"2","Dimension ImageOrientation":"Normal","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-8","tiff:ImageWidth":"1024","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"X-TIKA:final_embedded_resource_path":"/embedded-10/embedded-9","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"X-TIKA:embedded_id_path":"/9/10","X-TIKA:content_handler":"ToTextContentHandler","X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-9/embedded-10","Content-Length":"322","X-TIKA:digest:MD5":"ffbea03f611e1c117a8972014028a41a","X-TIKA:embedded_id":"10","Content-Type":"image/wmf"},{"X-TIKA:final_embedded_resource_path":"/embedded-10","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"X-TIKA:embedded_id_path":"/9","X-TIKA:content_handler":"ToTextContentHandler","X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-9","Content-Length":"1216","X-TIKA:digest:MD5":"27790cde5223edf2d3edfb4f64afb5f1","X-TIKA:embedded_id":"9","Content-Type":"image/emf"},{"X-TIKA:final_embedded_resource_path":"/embedded-11","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"X-TIKA:embedded_id_path":"/11","X-TIKA:content_handler":"ToTextContentHandler","X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-11","Content-Length":"5460","X-TIKA:digest:MD5":"c03768adeb4ef5b38090384df8fc1a6b","X-TIKA:embedded_id":"11","Content-Type":"image/emf"},{"X-TIKA:final_embedded_resource_path":"/embedded-13/embedded-12","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"X-TIKA:embedded_id_path":"/12/13","X-TIKA:content_handler":"ToTextContentHandler","X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-12/embedded-13","Content-Length":"322","X-TIKA:digest:MD5":"b69f42682e0d0fa006bef26ad7f30258","X-TIKA:embedded_id":"13","Content-Type":"image/wmf"},{"X-TIKA:final_embedded_resource_path":"/embedded-13","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"X-TIKA:embedded_id_path":"/12","X-TIKA:content_handler":"ToTextContentHandler","X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"2","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-12","Content-Length":"1216","X-TIKA:digest:MD5":"e403f2995b2ed1df5691139694b79ca3","X-TIKA:embedded_id":"12","Content-Type":"image/emf"},{"X-TIKA:final_embedded_resource_path":"/MBD00114B29.doc/image1","X-TIKA:EXCEPTION:embedded_exception":"org.apache.tika.exception.ZeroByteFileException: InputStream must have > 0 bytes\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:191)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:275)\n\tat org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)\n\tat org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:111)\n\tat org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:224)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:137)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:111)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:102)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handlePictureCharacterRun(WordExtractor.java:576)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handleSpecialCharacterRuns(WordExtractor.java:492)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handleParagraph(WordExtractor.java:367)\n\tat org.apache.tika.parser.microsoft.WordExtractor.parse(WordExtractor.java:186)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:230)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:183)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:204)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:275)\n\tat org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)\n\tat org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:111)\n\tat org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:224)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.parseEmbedded(AbstractPOIFSExtractor.java:404)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:238)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:159)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:150)\n\tat org.apache.tika.parser.microsoft.ExcelExtractor.parse(ExcelExtractor.java:204)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:238)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:183)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:204)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:168)\n\tat org.apache.tika.batch.FileResourceConsumer.parse(FileResourceConsumer.java:372)\n\tat org.apache.tika.batch.fs.RecursiveParserWrapperFSConsumer.processFileResource(RecursiveParserWrapperFSConsumer.java:97)\n\tat org.apache.tika.batch.FileResourceConsumer._processFileResource(FileResourceConsumer.java:151)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:87)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:50)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:840)\n","X-TIKA:embedded_id_path":"/14/15","resourceName":"image1","X-TIKA:EXCEPTION:embedded_parser":"org.apache.tika.parser.DigestingParser","X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00114B29.doc/image1","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"15","Content-Type":"image/unknown"},{"Transparency Alpha":"none","X-TIKA:embedded_id_path":"/14/16","tiff:ImageLength":"768","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","Dimension VerticalPixelSize":"0.26455027","IHDR":"width=1024, height=768, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"140967","tiff:BitsPerSample":"8 8 8","X-TIKA:digest:MD5":"bc809828b9d2c6fd1f45c5abc83a90fb","X-TIKA:embedded_id":"16","Content-Type":"image/png","height":"768","imagereader:NumImages":"1","X-TIKA:final_embedded_resource_path":"/MBD00114B29.doc/image2.png","pHYs":"pixelsPerUnitXAxis=3780, pixelsPerUnitYAxis=3780, unitSpecifier=meter","Dimension PixelAspectRatio":"1.0","resourceName":"image2.png","sRGB":"Perceptual","Compression NumProgressiveScans":"1","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Dimension HorizontalPixelSize":"0.26455027","Chroma BlackIsZero":"true","Compression Lossless":"true","X-TIKA:embedded_depth":"2","width":"1024","X-TIKA:parse_time_millis":"1","Dimension ImageOrientation":"Normal","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00114B29.doc/image2.png","tiff:ImageWidth":"1024","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"cp:revision":"2","meta:word-count":"963","X-TIKA:embedded_id_path":"/14","X-TIKA:content_handler":"ToTextContentHandler","dcterms:created":"2008-08-18T21:59:00Z","dcterms:modified":"2008-08-18T21:59:00Z","meta:character-count":"5491","embeddedRelationshipId":"MBD00114B29","extended-properties:TotalTime":"0","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"14","Content-Type":"application/msword","X-TIKA:final_embedded_resource_path":"/MBD00114B29.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Anne Hampson","xmpTPg:NPages":"3","resourceName":"MBD00114B29.doc","extended-properties:Template":"Normal.dot","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"2","embeddedStorageClassId":"{00020906-0000-0000-C000-000000000046}","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00114B29.doc","meta:page-count":"3"},{"X-TIKA:final_embedded_resource_path":"/MBD00153B90.doc/image1.wmf","X-TIKA:embedded_id_path":"/17/18","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"image1.wmf","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00153B90.doc/image1.wmf","Content-Length":"512","X-TIKA:digest:MD5":"918e7def18f96f2df116dab5cd95347f","X-TIKA:embedded_id":"18","Content-Type":"image/wmf"},{"X-TIKA:final_embedded_resource_path":"/MBD00153B90.doc/_1148732450.unknown","X-TIKA:embedded_id_path":"/17/19","resourceName":"_1148732450.unknown","embeddedRelationshipId":"_1148732450","X-TIKA:Parsed-By":"org.apache.tika.parser.EmptyParser","X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"0","embeddedStorageClassId":"{0002CE02-0000-0000-C000-000000000046}","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00153B90.doc/_1148732450.unknown","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"19","Content-Type":"application/vnd.ms-equation"},{"cp:revision":"2","meta:word-count":"4660","X-TIKA:embedded_id_path":"/17","X-TIKA:content_handler":"ToTextContentHandler","meta:print-date":"2005-03-18T15:11:00Z","dcterms:created":"2008-08-28T16:30:00Z","dcterms:modified":"2008-08-28T16:31:00Z","meta:character-count":"26564","embeddedRelationshipId":"MBD00153B90","extended-properties:TotalTime":"600000000","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"17","Content-Type":"application/msword","X-TIKA:final_embedded_resource_path":"/MBD00153B90.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Bob Sidner","xmpTPg:NPages":"14","resourceName":"MBD00153B90.doc","extended-properties:Template":"Normal","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"5","embeddedStorageClassId":"{00020906-0000-0000-C000-000000000046}","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00153B90.doc","meta:page-count":"14"},{"X-TIKA:final_embedded_resource_path":"/MBD00114B2B.doc/image1.wmf","X-TIKA:embedded_id_path":"/20/21","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"image1.wmf","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00114B2B.doc/image1.wmf","Content-Length":"512","X-TIKA:digest:MD5":"918e7def18f96f2df116dab5cd95347f","X-TIKA:embedded_id":"21","Content-Type":"image/wmf"},{"X-TIKA:final_embedded_resource_path":"/MBD00114B2B.doc/_1148732450.unknown","X-TIKA:embedded_id_path":"/20/22","resourceName":"_1148732450.unknown","embeddedRelationshipId":"_1148732450","X-TIKA:Parsed-By":"org.apache.tika.parser.EmptyParser","X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"1","embeddedStorageClassId":"{0002CE02-0000-0000-C000-000000000046}","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00114B2B.doc/_1148732450.unknown","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"22","Content-Type":"application/vnd.ms-equation"},{"cp:revision":"2","meta:word-count":"4660","X-TIKA:embedded_id_path":"/20","X-TIKA:content_handler":"ToTextContentHandler","meta:print-date":"2005-03-18T15:11:00Z","dcterms:created":"2007-12-10T20:46:00Z","dcterms:modified":"2007-12-10T20:47:00Z","meta:character-count":"26565","embeddedRelationshipId":"MBD00114B2B","extended-properties:TotalTime":"600000000","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"20","Content-Type":"application/msword","X-TIKA:final_embedded_resource_path":"/MBD00114B2B.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Anne Hampson","xmpTPg:NPages":"14","resourceName":"MBD00114B2B.doc","extended-properties:Template":"Normal.dot","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"5","embeddedStorageClassId":"{00020906-0000-0000-C000-000000000046}","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00114B2B.doc","meta:page-count":"14"},{"X-TIKA:final_embedded_resource_path":"/MBD0001BE16.doc/image1.wmf","X-TIKA:embedded_id_path":"/23/24","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"image1.wmf","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD0001BE16.doc/image1.wmf","Content-Length":"512","X-TIKA:digest:MD5":"918e7def18f96f2df116dab5cd95347f","X-TIKA:embedded_id":"24","Content-Type":"image/wmf"},{"X-TIKA:final_embedded_resource_path":"/MBD0001BE16.doc/_1148732450.unknown","X-TIKA:embedded_id_path":"/23/25","resourceName":"_1148732450.unknown","embeddedRelationshipId":"_1148732450","X-TIKA:Parsed-By":"org.apache.tika.parser.EmptyParser","X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"0","embeddedStorageClassId":"{0002CE02-0000-0000-C000-000000000046}","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD0001BE16.doc/_1148732450.unknown","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"25","Content-Type":"application/vnd.ms-equation"},{"cp:revision":"4","meta:word-count":"4655","X-TIKA:embedded_id_path":"/23","X-TIKA:content_handler":"ToTextContentHandler","meta:print-date":"2005-03-18T15:11:00Z","dcterms:created":"2007-12-10T16:37:00Z","dcterms:modified":"2007-12-10T17:11:00Z","meta:character-count":"26535","embeddedRelationshipId":"MBD0001BE16","extended-properties:TotalTime":"3000000000","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"23","Content-Type":"application/msword","X-TIKA:final_embedded_resource_path":"/MBD0001BE16.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Anne Hampson","xmpTPg:NPages":"14","resourceName":"MBD0001BE16.doc","extended-properties:Template":"Normal.dot","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"4","embeddedStorageClassId":"{00020907-0000-0000-C000-000000000046}","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD0001BE16.doc","meta:page-count":"14"},{"X-TIKA:final_embedded_resource_path":"/MBD00065AD5.doc/image1","X-TIKA:EXCEPTION:embedded_exception":"org.apache.tika.exception.ZeroByteFileException: InputStream must have > 0 bytes\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:191)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:275)\n\tat org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)\n\tat org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:111)\n\tat org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:224)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:137)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:111)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:102)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handlePictureCharacterRun(WordExtractor.java:576)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handleSpecialCharacterRuns(WordExtractor.java:492)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handleParagraph(WordExtractor.java:367)\n\tat org.apache.tika.parser.microsoft.WordExtractor.parse(WordExtractor.java:186)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:230)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:183)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:204)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:275)\n\tat org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)\n\tat org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:111)\n\tat org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:224)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.parseEmbedded(AbstractPOIFSExtractor.java:404)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:238)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:159)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:150)\n\tat org.apache.tika.parser.microsoft.ExcelExtractor.parse(ExcelExtractor.java:204)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:238)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:183)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:204)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:168)\n\tat org.apache.tika.batch.FileResourceConsumer.parse(FileResourceConsumer.java:372)\n\tat org.apache.tika.batch.fs.RecursiveParserWrapperFSConsumer.processFileResource(RecursiveParserWrapperFSConsumer.java:97)\n\tat org.apache.tika.batch.FileResourceConsumer._processFileResource(FileResourceConsumer.java:151)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:87)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:50)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:840)\n","X-TIKA:embedded_id_path":"/26/27","resourceName":"image1","X-TIKA:EXCEPTION:embedded_parser":"org.apache.tika.parser.DigestingParser","X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00065AD5.doc/image1","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"27","Content-Type":"image/unknown"},{"Transparency Alpha":"none","X-TIKA:embedded_id_path":"/26/28","tiff:ImageLength":"768","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","Dimension VerticalPixelSize":"0.26455027","IHDR":"width=1024, height=768, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"140967","tiff:BitsPerSample":"8 8 8","X-TIKA:digest:MD5":"bc809828b9d2c6fd1f45c5abc83a90fb","X-TIKA:embedded_id":"28","Content-Type":"image/png","height":"768","imagereader:NumImages":"1","X-TIKA:final_embedded_resource_path":"/MBD00065AD5.doc/image2.png","pHYs":"pixelsPerUnitXAxis=3780, pixelsPerUnitYAxis=3780, unitSpecifier=meter","Dimension PixelAspectRatio":"1.0","resourceName":"image2.png","sRGB":"Perceptual","Compression NumProgressiveScans":"1","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Dimension HorizontalPixelSize":"0.26455027","Chroma BlackIsZero":"true","Compression Lossless":"true","X-TIKA:embedded_depth":"2","width":"1024","X-TIKA:parse_time_millis":"1","Dimension ImageOrientation":"Normal","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00065AD5.doc/image2.png","tiff:ImageWidth":"1024","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"cp:revision":"4","meta:word-count":"957","X-TIKA:embedded_id_path":"/26","X-TIKA:content_handler":"ToTextContentHandler","dcterms:created":"2007-12-10T17:18:00Z","dcterms:modified":"2007-12-10T17:20:00Z","meta:character-count":"5457","embeddedRelationshipId":"MBD00065AD5","extended-properties:TotalTime":"0","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"26","Content-Type":"application/msword","X-TIKA:final_embedded_resource_path":"/MBD00065AD5.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Anne Hampson","xmpTPg:NPages":"3","resourceName":"MBD00065AD5.doc","extended-properties:Template":"Normal.dot","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"3","embeddedStorageClassId":"{00020906-0000-0000-C000-000000000046}","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00065AD5.doc","meta:page-count":"3"},{"X-TIKA:final_embedded_resource_path":"/Sheet10","X-TIKA:embedded_id_path":"/29","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet10","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet10","Content-Length":"314","X-TIKA:digest:MD5":"3d6b3da6ee3384a2fe844861d1549445","X-TIKA:embedded_id":"29","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet11","X-TIKA:embedded_id_path":"/30","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet11","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet11","Content-Length":"300","X-TIKA:digest:MD5":"04f4ac9da3429c88e1ba78a4ac3d3f56","X-TIKA:embedded_id":"30","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Module1","X-TIKA:embedded_id_path":"/31","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Module1","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Module1","Content-Length":"67","X-TIKA:digest:MD5":"b2a8ae4340c43f4afa859091d511b1bd","X-TIKA:embedded_id":"31","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Module3","X-TIKA:embedded_id_path":"/32","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Module3","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Module3","Content-Length":"227","X-TIKA:digest:MD5":"8a4ee81efb48fcaeb5472e0e54796f6f","X-TIKA:embedded_id":"32","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet51","X-TIKA:embedded_id_path":"/33","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet51","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet51","Content-Length":"312","X-TIKA:digest:MD5":"44ce5d0325c3939843c0f621c5fc057c","X-TIKA:embedded_id":"33","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Module2","X-TIKA:embedded_id_path":"/34","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Module2","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Module2","Content-Length":"1002","X-TIKA:digest:MD5":"8cf5714fcf9beb2237a703844cddcbed","X-TIKA:embedded_id":"34","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/OPProfile","X-TIKA:embedded_id_path":"/35","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"OPProfile","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/OPProfile","Content-Length":"1181","X-TIKA:digest:MD5":"1f9d63861995e64d7745c670bc21be98","X-TIKA:embedded_id":"35","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/ThermCalc","X-TIKA:embedded_id_path":"/36","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"ThermCalc","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/ThermCalc","Content-Length":"1486","X-TIKA:digest:MD5":"cf7080fe5cde53297846c6e6aff9c7ec","X-TIKA:embedded_id":"36","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/GenProfiles","X-TIKA:embedded_id_path":"/37","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"GenProfiles","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/GenProfiles","Content-Length":"1877","X-TIKA:digest:MD5":"04fa71791fd7825ddf1958c2bf3544cc","X-TIKA:embedded_id":"37","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet9","X-TIKA:embedded_id_path":"/38","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet9","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet9","Content-Length":"313","X-TIKA:digest:MD5":"f9f8c1fe1685a3768b526099473f46ee","X-TIKA:embedded_id":"38","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/NextButtons","X-TIKA:embedded_id_path":"/39","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"NextButtons","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/NextButtons","Content-Length":"44894","X-TIKA:digest:MD5":"fe2ac3e4720161a1b44864677e5ae371","X-TIKA:embedded_id":"39","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet8","X-TIKA:embedded_id_path":"/40","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet8","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet8","Content-Length":"313","X-TIKA:digest:MD5":"1a737fefb61107ff402527e84bc18ac0","X-TIKA:embedded_id":"40","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet7","X-TIKA:embedded_id_path":"/41","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet7","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet7","Content-Length":"313","X-TIKA:digest:MD5":"99f232c7aae8346aa44d0d8590cc940e","X-TIKA:embedded_id":"41","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet2","X-TIKA:embedded_id_path":"/42","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet2","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet2","Content-Length":"313","X-TIKA:digest:MD5":"e46398cc14c3c4b4e956755c26e0c080","X-TIKA:embedded_id":"42","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet1","X-TIKA:embedded_id_path":"/43","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet1","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet1","Content-Length":"313","X-TIKA:digest:MD5":"10c1213d383e8453b15001cd4e05e8ef","X-TIKA:embedded_id":"43","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/ThisWorkbook","X-TIKA:embedded_id_path":"/44","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"ThisWorkbook","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/ThisWorkbook","Content-Length":"319","X-TIKA:digest:MD5":"7c76ef3324d2484f31c67caf5cc31c7f","X-TIKA:embedded_id":"44","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet6","X-TIKA:embedded_id_path":"/45","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet6","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet6","Content-Length":"313","X-TIKA:digest:MD5":"2f7e84c8df76af1de382b4d458f47aed","X-TIKA:embedded_id":"45","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet13","X-TIKA:embedded_id_path":"/46","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet13","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet13","Content-Length":"314","X-TIKA:digest:MD5":"65bba3c46a08f5fa1a4481c3446b6eae","X-TIKA:embedded_id":"46","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Inputs","X-TIKA:embedded_id_path":"/47","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Inputs","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"2","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Inputs","Content-Length":"34991","X-TIKA:digest:MD5":"f3757176dec4150f4e9afffdd6942457","X-TIKA:embedded_id":"47","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet5","X-TIKA:embedded_id_path":"/48","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet5","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet5","Content-Length":"299","X-TIKA:digest:MD5":"438be34e94b9480576b9c3181986ee7c","X-TIKA:embedded_id":"48","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet4","X-TIKA:embedded_id_path":"/49","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet4","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet4","Content-Length":"392","X-TIKA:digest:MD5":"caa254e87e60aace6e72550efc6e8735","X-TIKA:embedded_id":"49","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet3","X-TIKA:embedded_id_path":"/50","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet3","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet3","Content-Length":"313","X-TIKA:digest:MD5":"dc1d902f1835a9b44d81e233f35a25db","X-TIKA:embedded_id":"50","Content-Type":"text/x-vbasic; charset=windows-1252"}] \ No newline at end of file +[{"msoffice:excel:has-hidden-rows":"true","tk:parsed-by-full-set":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser","org.apache.tika.parser.microsoft.EMFParser","org.apache.tika.parser.image.JpegParser","org.apache.tika.parser.microsoft.WMFParser","org.apache.tika.parser.EmptyParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:content-handler":"ToTextContentHandler","tika_batch_fs:relative_path":"govdocs1/355/355118.xls","meta:print-date":"2007-06-11T21:36:54Z","dcterms:created":"2004-05-13T21:24:11Z","dcterms:modified":"2008-08-29T12:18:17Z","msoffice:has-comments":"true","extended-properties:TotalTime":"0","Content-Length":"1542656","tk:digest:MD5":"82302876894ca85adb4fb1a67652db1a","Content-Type":"application/vnd.ms-excel","msoffice:comment-person-display-name":["Anne Hampson","Joe McGervey"],"w:Comments":"Version: April 26, 2006\r\n","msoffice:excel:hidden-sheet-names":["Lists","STMTech","CHPTech","EGRID","Profiles","Factors","Calc1"],"extended-properties:Application":"Microsoft Excel","meta:last-author":"Bob","msoffice:excel:has-hidden-sheets":"true","resourceName":"355118.xls","msoffice:excel:has-hidden-cols":"true","msoffice:excel:protected-worksheet":"true","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"tika:file_ext":"xls","tk:parse-time-millis":"101","tk:embedded-depth":"0","tk:content":""},{"Transparency Alpha":"none","tk:embedded-id-path":"/1","tiff:ImageLength":"69","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","Dimension VerticalPixelSize":"0.26455027","IHDR":"width=444, height=69, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"32566","tiff:BitsPerSample":"8 8 8","tk:digest:MD5":"1d1901a8ca3e8d79125223ef6d552c59","tk:embedded-id":"1","Content-Type":"image/png","height":"69","tk:num-images":"1","gAMA":"45448","tk:final-embedded-resource-path":"/embedded-1","pHYs":"pixelsPerUnitXAxis=3780, pixelsPerUnitYAxis=3780, unitSpecifier=meter","Chroma Gamma":"0.45448","Dimension PixelAspectRatio":"1.0","Compression NumProgressiveScans":"1","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Dimension HorizontalPixelSize":"0.26455027","Chroma BlackIsZero":"true","Compression Lossless":"true","tk:embedded-depth":"1","width":"444","tk:parse-time-millis":"1","Dimension ImageOrientation":"Normal","tk:content":"","tk:embedded-resource-path":"/embedded-1","tiff:ImageWidth":"444","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"Transparency Alpha":"none","tk:embedded-id-path":"/2","tiff:ImageLength":"211","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","IHDR":"width=250, height=211, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"99582","tiff:BitsPerSample":"8 8 8","tk:digest:MD5":"d1998e7d99df6ce3c1e9d5a79d876aa7","tk:embedded-id":"2","Content-Type":"image/png","height":"211","tk:num-images":"1","gAMA":"45448","tk:final-embedded-resource-path":"/embedded-2","Chroma Gamma":"0.45448","Dimension PixelAspectRatio":"1.0","Compression NumProgressiveScans":"1","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Chroma BlackIsZero":"true","Compression Lossless":"true","tk:embedded-depth":"1","width":"250","tk:parse-time-millis":"1","Dimension ImageOrientation":"Normal","tk:content":"","tk:embedded-resource-path":"/embedded-2","tiff:ImageWidth":"250","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"tk:final-embedded-resource-path":"/embedded-3","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"tk:embedded-id-path":"/3","tk:embedded-depth":"1","tk:parse-time-millis":"0","tk:content":"","tk:embedded-resource-path":"/embedded-3","Content-Length":"17300","tk:digest:MD5":"c8b11baf4d4a0e31c70cf39caecc00e4","tk:embedded-id":"3","Content-Type":"image/emf"},{"tk:final-embedded-resource-path":"/embedded-4","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"tk:embedded-id-path":"/4","tk:content-handler":"ToTextContentHandler","tk:embedded-depth":"1","tk:parse-time-millis":"1","tk:content":"","tk:embedded-resource-path":"/embedded-4","Content-Length":"5452","tk:digest:MD5":"976b892e2298066db0170bfeae313997","tk:embedded-id":"4","Content-Type":"image/emf"},{"Number of Tables":"4 Huffman tables","Compression Type":"Baseline","tk:embedded-id-path":"/5","Data Precision":"8 bits","Number of Components":"3","tiff:ImageLength":"174","Component 2":"Cb component: Quantization table 1, Sampling factors 1 horiz/1 vert","Thumbnail Height Pixels":"0","Component 1":"Y component: Quantization table 0, Sampling factors 2 horiz/2 vert","X Resolution":"96 dots","File Size":"7518 bytes","Component 3":"Cr component: Quantization table 1, Sampling factors 1 horiz/1 vert","Version":"1.1","JPEG Comment":"Software: Microsoft Office","File Name":"apache-tika-4921877026214264439.tmp","Content-Length":"7518","tiff:BitsPerSample":"8","tk:digest:MD5":"c61f33248aaa54b875a6dd8408766a3a","tk:embedded-id":"5","Content-Type":"image/jpeg","w:Comments":"Software: Microsoft Office","Resolution Units":"inch","tk:final-embedded-resource-path":"/embedded-5","File Modified Date":"Wed Jun 18 20:57:50 +02:00 2025","Image Height":"174 pixels","Thumbnail Width Pixels":"0","Image Width":"262 pixels","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.JpegParser"],"tk:embedded-depth":"1","tk:parse-time-millis":"1","tk:content":"","tk:embedded-resource-path":"/embedded-5","tiff:ImageWidth":"262","Y Resolution":"96 dots"},{"tk:final-embedded-resource-path":"/embedded-7/embedded-6","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"tk:embedded-id-path":"/6/7","tk:content-handler":"ToTextContentHandler","tk:embedded-depth":"2","tk:parse-time-millis":"0","tk:content":"","tk:embedded-resource-path":"/embedded-6/embedded-7","Content-Length":"322","tk:digest:MD5":"68b315e61cb35528954cd5c1e9caa265","tk:embedded-id":"7","Content-Type":"image/wmf"},{"tk:final-embedded-resource-path":"/embedded-7","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"tk:embedded-id-path":"/6","tk:content-handler":"ToTextContentHandler","tk:embedded-depth":"1","tk:parse-time-millis":"1","tk:content":"","tk:embedded-resource-path":"/embedded-6","Content-Length":"1216","tk:digest:MD5":"cf33b98dcc168e0b707e0ff17c33ebd2","tk:embedded-id":"6","Content-Type":"image/emf"},{"Transparency Alpha":"none","tk:embedded-id-path":"/8","tiff:ImageLength":"768","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","Dimension VerticalPixelSize":"0.26455027","IHDR":"width=1024, height=768, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"140967","tiff:BitsPerSample":"8 8 8","tk:digest:MD5":"bc809828b9d2c6fd1f45c5abc83a90fb","tk:embedded-id":"8","Content-Type":"image/png","height":"768","tk:num-images":"1","tk:final-embedded-resource-path":"/embedded-8","pHYs":"pixelsPerUnitXAxis=3780, pixelsPerUnitYAxis=3780, unitSpecifier=meter","Dimension PixelAspectRatio":"1.0","sRGB":"Perceptual","Compression NumProgressiveScans":"1","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Dimension HorizontalPixelSize":"0.26455027","Chroma BlackIsZero":"true","Compression Lossless":"true","tk:embedded-depth":"1","width":"1024","tk:parse-time-millis":"2","Dimension ImageOrientation":"Normal","tk:content":"","tk:embedded-resource-path":"/embedded-8","tiff:ImageWidth":"1024","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"tk:final-embedded-resource-path":"/embedded-10/embedded-9","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"tk:embedded-id-path":"/9/10","tk:content-handler":"ToTextContentHandler","tk:embedded-depth":"2","tk:parse-time-millis":"1","tk:content":"","tk:embedded-resource-path":"/embedded-9/embedded-10","Content-Length":"322","tk:digest:MD5":"ffbea03f611e1c117a8972014028a41a","tk:embedded-id":"10","Content-Type":"image/wmf"},{"tk:final-embedded-resource-path":"/embedded-10","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"tk:embedded-id-path":"/9","tk:content-handler":"ToTextContentHandler","tk:embedded-depth":"1","tk:parse-time-millis":"1","tk:content":"","tk:embedded-resource-path":"/embedded-9","Content-Length":"1216","tk:digest:MD5":"27790cde5223edf2d3edfb4f64afb5f1","tk:embedded-id":"9","Content-Type":"image/emf"},{"tk:final-embedded-resource-path":"/embedded-11","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"tk:embedded-id-path":"/11","tk:content-handler":"ToTextContentHandler","tk:embedded-depth":"1","tk:parse-time-millis":"0","tk:content":"","tk:embedded-resource-path":"/embedded-11","Content-Length":"5460","tk:digest:MD5":"c03768adeb4ef5b38090384df8fc1a6b","tk:embedded-id":"11","Content-Type":"image/emf"},{"tk:final-embedded-resource-path":"/embedded-13/embedded-12","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"tk:embedded-id-path":"/12/13","tk:content-handler":"ToTextContentHandler","tk:embedded-depth":"2","tk:parse-time-millis":"1","tk:content":"","tk:embedded-resource-path":"/embedded-12/embedded-13","Content-Length":"322","tk:digest:MD5":"b69f42682e0d0fa006bef26ad7f30258","tk:embedded-id":"13","Content-Type":"image/wmf"},{"tk:final-embedded-resource-path":"/embedded-13","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"tk:embedded-id-path":"/12","tk:content-handler":"ToTextContentHandler","tk:embedded-depth":"1","tk:parse-time-millis":"2","tk:content":"","tk:embedded-resource-path":"/embedded-12","Content-Length":"1216","tk:digest:MD5":"e403f2995b2ed1df5691139694b79ca3","tk:embedded-id":"12","Content-Type":"image/emf"},{"tk:final-embedded-resource-path":"/MBD00114B29.doc/image1","tk:exception:embedded-exception":"org.apache.tika.exception.ZeroByteFileException: InputStream must have > 0 bytes\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:191)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:275)\n\tat org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)\n\tat org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:111)\n\tat org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:224)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:137)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:111)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:102)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handlePictureCharacterRun(WordExtractor.java:576)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handleSpecialCharacterRuns(WordExtractor.java:492)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handleParagraph(WordExtractor.java:367)\n\tat org.apache.tika.parser.microsoft.WordExtractor.parse(WordExtractor.java:186)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:230)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:183)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:204)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:275)\n\tat org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)\n\tat org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:111)\n\tat org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:224)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.parseEmbedded(AbstractPOIFSExtractor.java:404)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:238)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:159)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:150)\n\tat org.apache.tika.parser.microsoft.ExcelExtractor.parse(ExcelExtractor.java:204)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:238)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:183)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:204)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:168)\n\tat org.apache.tika.batch.FileResourceConsumer.parse(FileResourceConsumer.java:372)\n\tat org.apache.tika.batch.fs.RecursiveParserWrapperFSConsumer.processFileResource(RecursiveParserWrapperFSConsumer.java:97)\n\tat org.apache.tika.batch.FileResourceConsumer._processFileResource(FileResourceConsumer.java:151)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:87)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:50)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:840)\n","tk:embedded-id-path":"/14/15","resourceName":"image1","tk:exception:embedded-parser":"org.apache.tika.parser.DigestingParser","tk:embedded-depth":"2","tk:parse-time-millis":"0","tk:content":"","tk:embedded-resource-path":"/MBD00114B29.doc/image1","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"15","Content-Type":"image/unknown"},{"Transparency Alpha":"none","tk:embedded-id-path":"/14/16","tiff:ImageLength":"768","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","Dimension VerticalPixelSize":"0.26455027","IHDR":"width=1024, height=768, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"140967","tiff:BitsPerSample":"8 8 8","tk:digest:MD5":"bc809828b9d2c6fd1f45c5abc83a90fb","tk:embedded-id":"16","Content-Type":"image/png","height":"768","tk:num-images":"1","tk:final-embedded-resource-path":"/MBD00114B29.doc/image2.png","pHYs":"pixelsPerUnitXAxis=3780, pixelsPerUnitYAxis=3780, unitSpecifier=meter","Dimension PixelAspectRatio":"1.0","resourceName":"image2.png","sRGB":"Perceptual","Compression NumProgressiveScans":"1","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Dimension HorizontalPixelSize":"0.26455027","Chroma BlackIsZero":"true","Compression Lossless":"true","tk:embedded-depth":"2","width":"1024","tk:parse-time-millis":"1","Dimension ImageOrientation":"Normal","tk:content":"","tk:embedded-resource-path":"/MBD00114B29.doc/image2.png","tiff:ImageWidth":"1024","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"cp:revision":"2","meta:word-count":"963","tk:embedded-id-path":"/14","tk:content-handler":"ToTextContentHandler","dcterms:created":"2008-08-18T21:59:00Z","dcterms:modified":"2008-08-18T21:59:00Z","meta:character-count":"5491","embeddedRelationshipId":"MBD00114B29","extended-properties:TotalTime":"0","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"14","Content-Type":"application/msword","tk:final-embedded-resource-path":"/MBD00114B29.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Anne Hampson","xmpTPg:NPages":"3","resourceName":"MBD00114B29.doc","extended-properties:Template":"Normal.dot","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"tk:embedded-depth":"1","tk:parse-time-millis":"2","embeddedStorageClassId":"{00020906-0000-0000-C000-000000000046}","tk:content":"","tk:embedded-resource-path":"/MBD00114B29.doc","meta:page-count":"3"},{"tk:final-embedded-resource-path":"/MBD00153B90.doc/image1.wmf","tk:embedded-id-path":"/17/18","tk:content-handler":"ToTextContentHandler","resourceName":"image1.wmf","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"tk:embedded-depth":"2","tk:parse-time-millis":"1","tk:content":"","tk:embedded-resource-path":"/MBD00153B90.doc/image1.wmf","Content-Length":"512","tk:digest:MD5":"918e7def18f96f2df116dab5cd95347f","tk:embedded-id":"18","Content-Type":"image/wmf"},{"tk:final-embedded-resource-path":"/MBD00153B90.doc/_1148732450.unknown","tk:embedded-id-path":"/17/19","resourceName":"_1148732450.unknown","embeddedRelationshipId":"_1148732450","tk:parsed-by":"org.apache.tika.parser.EmptyParser","tk:embedded-depth":"2","tk:parse-time-millis":"0","embeddedStorageClassId":"{0002CE02-0000-0000-C000-000000000046}","tk:content":"","tk:embedded-resource-path":"/MBD00153B90.doc/_1148732450.unknown","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"19","Content-Type":"application/vnd.ms-equation"},{"cp:revision":"2","meta:word-count":"4660","tk:embedded-id-path":"/17","tk:content-handler":"ToTextContentHandler","meta:print-date":"2005-03-18T15:11:00Z","dcterms:created":"2008-08-28T16:30:00Z","dcterms:modified":"2008-08-28T16:31:00Z","meta:character-count":"26564","embeddedRelationshipId":"MBD00153B90","extended-properties:TotalTime":"600000000","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"17","Content-Type":"application/msword","tk:final-embedded-resource-path":"/MBD00153B90.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Bob Sidner","xmpTPg:NPages":"14","resourceName":"MBD00153B90.doc","extended-properties:Template":"Normal","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"tk:embedded-depth":"1","tk:parse-time-millis":"5","embeddedStorageClassId":"{00020906-0000-0000-C000-000000000046}","tk:content":"","tk:embedded-resource-path":"/MBD00153B90.doc","meta:page-count":"14"},{"tk:final-embedded-resource-path":"/MBD00114B2B.doc/image1.wmf","tk:embedded-id-path":"/20/21","tk:content-handler":"ToTextContentHandler","resourceName":"image1.wmf","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"tk:embedded-depth":"2","tk:parse-time-millis":"0","tk:content":"","tk:embedded-resource-path":"/MBD00114B2B.doc/image1.wmf","Content-Length":"512","tk:digest:MD5":"918e7def18f96f2df116dab5cd95347f","tk:embedded-id":"21","Content-Type":"image/wmf"},{"tk:final-embedded-resource-path":"/MBD00114B2B.doc/_1148732450.unknown","tk:embedded-id-path":"/20/22","resourceName":"_1148732450.unknown","embeddedRelationshipId":"_1148732450","tk:parsed-by":"org.apache.tika.parser.EmptyParser","tk:embedded-depth":"2","tk:parse-time-millis":"1","embeddedStorageClassId":"{0002CE02-0000-0000-C000-000000000046}","tk:content":"","tk:embedded-resource-path":"/MBD00114B2B.doc/_1148732450.unknown","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"22","Content-Type":"application/vnd.ms-equation"},{"cp:revision":"2","meta:word-count":"4660","tk:embedded-id-path":"/20","tk:content-handler":"ToTextContentHandler","meta:print-date":"2005-03-18T15:11:00Z","dcterms:created":"2007-12-10T20:46:00Z","dcterms:modified":"2007-12-10T20:47:00Z","meta:character-count":"26565","embeddedRelationshipId":"MBD00114B2B","extended-properties:TotalTime":"600000000","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"20","Content-Type":"application/msword","tk:final-embedded-resource-path":"/MBD00114B2B.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Anne Hampson","xmpTPg:NPages":"14","resourceName":"MBD00114B2B.doc","extended-properties:Template":"Normal.dot","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"tk:embedded-depth":"1","tk:parse-time-millis":"5","embeddedStorageClassId":"{00020906-0000-0000-C000-000000000046}","tk:content":"","tk:embedded-resource-path":"/MBD00114B2B.doc","meta:page-count":"14"},{"tk:final-embedded-resource-path":"/MBD0001BE16.doc/image1.wmf","tk:embedded-id-path":"/23/24","tk:content-handler":"ToTextContentHandler","resourceName":"image1.wmf","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"tk:embedded-depth":"2","tk:parse-time-millis":"1","tk:content":"","tk:embedded-resource-path":"/MBD0001BE16.doc/image1.wmf","Content-Length":"512","tk:digest:MD5":"918e7def18f96f2df116dab5cd95347f","tk:embedded-id":"24","Content-Type":"image/wmf"},{"tk:final-embedded-resource-path":"/MBD0001BE16.doc/_1148732450.unknown","tk:embedded-id-path":"/23/25","resourceName":"_1148732450.unknown","embeddedRelationshipId":"_1148732450","tk:parsed-by":"org.apache.tika.parser.EmptyParser","tk:embedded-depth":"2","tk:parse-time-millis":"0","embeddedStorageClassId":"{0002CE02-0000-0000-C000-000000000046}","tk:content":"","tk:embedded-resource-path":"/MBD0001BE16.doc/_1148732450.unknown","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"25","Content-Type":"application/vnd.ms-equation"},{"cp:revision":"4","meta:word-count":"4655","tk:embedded-id-path":"/23","tk:content-handler":"ToTextContentHandler","meta:print-date":"2005-03-18T15:11:00Z","dcterms:created":"2007-12-10T16:37:00Z","dcterms:modified":"2007-12-10T17:11:00Z","meta:character-count":"26535","embeddedRelationshipId":"MBD0001BE16","extended-properties:TotalTime":"3000000000","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"23","Content-Type":"application/msword","tk:final-embedded-resource-path":"/MBD0001BE16.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Anne Hampson","xmpTPg:NPages":"14","resourceName":"MBD0001BE16.doc","extended-properties:Template":"Normal.dot","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"tk:embedded-depth":"1","tk:parse-time-millis":"4","embeddedStorageClassId":"{00020907-0000-0000-C000-000000000046}","tk:content":"","tk:embedded-resource-path":"/MBD0001BE16.doc","meta:page-count":"14"},{"tk:final-embedded-resource-path":"/MBD00065AD5.doc/image1","tk:exception:embedded-exception":"org.apache.tika.exception.ZeroByteFileException: InputStream must have > 0 bytes\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:191)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:275)\n\tat org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)\n\tat org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:111)\n\tat org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:224)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:137)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:111)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:102)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handlePictureCharacterRun(WordExtractor.java:576)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handleSpecialCharacterRuns(WordExtractor.java:492)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handleParagraph(WordExtractor.java:367)\n\tat org.apache.tika.parser.microsoft.WordExtractor.parse(WordExtractor.java:186)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:230)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:183)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:204)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:275)\n\tat org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)\n\tat org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:111)\n\tat org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:224)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.parseEmbedded(AbstractPOIFSExtractor.java:404)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:238)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:159)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:150)\n\tat org.apache.tika.parser.microsoft.ExcelExtractor.parse(ExcelExtractor.java:204)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:238)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:183)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:204)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:168)\n\tat org.apache.tika.batch.FileResourceConsumer.parse(FileResourceConsumer.java:372)\n\tat org.apache.tika.batch.fs.RecursiveParserWrapperFSConsumer.processFileResource(RecursiveParserWrapperFSConsumer.java:97)\n\tat org.apache.tika.batch.FileResourceConsumer._processFileResource(FileResourceConsumer.java:151)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:87)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:50)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:840)\n","tk:embedded-id-path":"/26/27","resourceName":"image1","tk:exception:embedded-parser":"org.apache.tika.parser.DigestingParser","tk:embedded-depth":"2","tk:parse-time-millis":"0","tk:content":"","tk:embedded-resource-path":"/MBD00065AD5.doc/image1","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"27","Content-Type":"image/unknown"},{"Transparency Alpha":"none","tk:embedded-id-path":"/26/28","tiff:ImageLength":"768","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","Dimension VerticalPixelSize":"0.26455027","IHDR":"width=1024, height=768, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"140967","tiff:BitsPerSample":"8 8 8","tk:digest:MD5":"bc809828b9d2c6fd1f45c5abc83a90fb","tk:embedded-id":"28","Content-Type":"image/png","height":"768","tk:num-images":"1","tk:final-embedded-resource-path":"/MBD00065AD5.doc/image2.png","pHYs":"pixelsPerUnitXAxis=3780, pixelsPerUnitYAxis=3780, unitSpecifier=meter","Dimension PixelAspectRatio":"1.0","resourceName":"image2.png","sRGB":"Perceptual","Compression NumProgressiveScans":"1","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Dimension HorizontalPixelSize":"0.26455027","Chroma BlackIsZero":"true","Compression Lossless":"true","tk:embedded-depth":"2","width":"1024","tk:parse-time-millis":"1","Dimension ImageOrientation":"Normal","tk:content":"","tk:embedded-resource-path":"/MBD00065AD5.doc/image2.png","tiff:ImageWidth":"1024","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"cp:revision":"4","meta:word-count":"957","tk:embedded-id-path":"/26","tk:content-handler":"ToTextContentHandler","dcterms:created":"2007-12-10T17:18:00Z","dcterms:modified":"2007-12-10T17:20:00Z","meta:character-count":"5457","embeddedRelationshipId":"MBD00065AD5","extended-properties:TotalTime":"0","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"26","Content-Type":"application/msword","tk:final-embedded-resource-path":"/MBD00065AD5.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Anne Hampson","xmpTPg:NPages":"3","resourceName":"MBD00065AD5.doc","extended-properties:Template":"Normal.dot","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"tk:embedded-depth":"1","tk:parse-time-millis":"3","embeddedStorageClassId":"{00020906-0000-0000-C000-000000000046}","tk:content":"","tk:embedded-resource-path":"/MBD00065AD5.doc","meta:page-count":"3"},{"tk:final-embedded-resource-path":"/Sheet10","tk:embedded-id-path":"/29","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet10","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"0","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet10","Content-Length":"314","tk:digest:MD5":"3d6b3da6ee3384a2fe844861d1549445","tk:embedded-id":"29","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet11","tk:embedded-id-path":"/30","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet11","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet11","Content-Length":"300","tk:digest:MD5":"04f4ac9da3429c88e1ba78a4ac3d3f56","tk:embedded-id":"30","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Module1","tk:embedded-id-path":"/31","tk:content-handler":"ToTextContentHandler","resourceName":"Module1","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Module1","Content-Length":"67","tk:digest:MD5":"b2a8ae4340c43f4afa859091d511b1bd","tk:embedded-id":"31","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Module3","tk:embedded-id-path":"/32","tk:content-handler":"ToTextContentHandler","resourceName":"Module3","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Module3","Content-Length":"227","tk:digest:MD5":"8a4ee81efb48fcaeb5472e0e54796f6f","tk:embedded-id":"32","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet51","tk:embedded-id-path":"/33","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet51","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"0","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet51","Content-Length":"312","tk:digest:MD5":"44ce5d0325c3939843c0f621c5fc057c","tk:embedded-id":"33","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Module2","tk:embedded-id-path":"/34","tk:content-handler":"ToTextContentHandler","resourceName":"Module2","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Module2","Content-Length":"1002","tk:digest:MD5":"8cf5714fcf9beb2237a703844cddcbed","tk:embedded-id":"34","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/OPProfile","tk:embedded-id-path":"/35","tk:content-handler":"ToTextContentHandler","resourceName":"OPProfile","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/OPProfile","Content-Length":"1181","tk:digest:MD5":"1f9d63861995e64d7745c670bc21be98","tk:embedded-id":"35","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/ThermCalc","tk:embedded-id-path":"/36","tk:content-handler":"ToTextContentHandler","resourceName":"ThermCalc","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/ThermCalc","Content-Length":"1486","tk:digest:MD5":"cf7080fe5cde53297846c6e6aff9c7ec","tk:embedded-id":"36","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/GenProfiles","tk:embedded-id-path":"/37","tk:content-handler":"ToTextContentHandler","resourceName":"GenProfiles","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/GenProfiles","Content-Length":"1877","tk:digest:MD5":"04fa71791fd7825ddf1958c2bf3544cc","tk:embedded-id":"37","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet9","tk:embedded-id-path":"/38","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet9","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet9","Content-Length":"313","tk:digest:MD5":"f9f8c1fe1685a3768b526099473f46ee","tk:embedded-id":"38","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/NextButtons","tk:embedded-id-path":"/39","tk:content-handler":"ToTextContentHandler","resourceName":"NextButtons","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/NextButtons","Content-Length":"44894","tk:digest:MD5":"fe2ac3e4720161a1b44864677e5ae371","tk:embedded-id":"39","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet8","tk:embedded-id-path":"/40","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet8","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet8","Content-Length":"313","tk:digest:MD5":"1a737fefb61107ff402527e84bc18ac0","tk:embedded-id":"40","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet7","tk:embedded-id-path":"/41","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet7","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"0","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet7","Content-Length":"313","tk:digest:MD5":"99f232c7aae8346aa44d0d8590cc940e","tk:embedded-id":"41","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet2","tk:embedded-id-path":"/42","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet2","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet2","Content-Length":"313","tk:digest:MD5":"e46398cc14c3c4b4e956755c26e0c080","tk:embedded-id":"42","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet1","tk:embedded-id-path":"/43","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet1","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet1","Content-Length":"313","tk:digest:MD5":"10c1213d383e8453b15001cd4e05e8ef","tk:embedded-id":"43","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/ThisWorkbook","tk:embedded-id-path":"/44","tk:content-handler":"ToTextContentHandler","resourceName":"ThisWorkbook","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/ThisWorkbook","Content-Length":"319","tk:digest:MD5":"7c76ef3324d2484f31c67caf5cc31c7f","tk:embedded-id":"44","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet6","tk:embedded-id-path":"/45","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet6","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet6","Content-Length":"313","tk:digest:MD5":"2f7e84c8df76af1de382b4d458f47aed","tk:embedded-id":"45","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet13","tk:embedded-id-path":"/46","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet13","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"0","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet13","Content-Length":"314","tk:digest:MD5":"65bba3c46a08f5fa1a4481c3446b6eae","tk:embedded-id":"46","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Inputs","tk:embedded-id-path":"/47","tk:content-handler":"ToTextContentHandler","resourceName":"Inputs","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"2","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Inputs","Content-Length":"34991","tk:digest:MD5":"f3757176dec4150f4e9afffdd6942457","tk:embedded-id":"47","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet5","tk:embedded-id-path":"/48","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet5","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"0","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet5","Content-Length":"299","tk:digest:MD5":"438be34e94b9480576b9c3181986ee7c","tk:embedded-id":"48","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet4","tk:embedded-id-path":"/49","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet4","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet4","Content-Length":"392","tk:digest:MD5":"caa254e87e60aace6e72550efc6e8735","tk:embedded-id":"49","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet3","tk:embedded-id-path":"/50","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet3","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet3","Content-Length":"313","tk:digest:MD5":"dc1d902f1835a9b44d81e233f35a25db","tk:embedded-id":"50","Content-Type":"text/x-vbasic; charset=windows-1252"}] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/extracts/TIKA-4446-b.json b/tika-eval/tika-eval-app/src/test/resources/extracts/TIKA-4446-b.json index 1c6771f7b0e..7951074dee2 100644 --- a/tika-eval/tika-eval-app/src/test/resources/extracts/TIKA-4446-b.json +++ b/tika-eval/tika-eval-app/src/test/resources/extracts/TIKA-4446-b.json @@ -1 +1 @@ -[{"msoffice:excel:has-hidden-rows":"true","X-TIKA:Parsed-By-Full-Set":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser","org.apache.tika.parser.microsoft.EMFParser","org.apache.tika.parser.image.JpegParser","org.apache.tika.parser.microsoft.WMFParser","org.apache.tika.parser.EmptyParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:content_handler":"ToTextContentHandler","tika_batch_fs:relative_path":"govdocs1/355/355118.xls","meta:print-date":"2007-06-11T21:36:54Z","dcterms:created":"2004-05-13T21:24:11Z","dcterms:modified":"2008-08-29T12:18:17Z","msoffice:has-comments":"true","extended-properties:TotalTime":"0","Content-Length":"1542656","X-TIKA:digest:MD5":"82302876894ca85adb4fb1a67652db1a","Content-Type":"application/vnd.ms-excel","msoffice:comment-person-display-name":["Anne Hampson","Joe McGervey"],"w:Comments":"Version: April 26, 2006\r\n","msoffice:excel:hidden-sheet-names":["Lists","STMTech","CHPTech","EGRID","Profiles","Factors","Calc1"],"extended-properties:Application":"Microsoft Excel","meta:last-author":"Bob","msoffice:excel:has-hidden-sheets":"true","resourceName":"355118.xls","msoffice:excel:has-hidden-cols":"true","msoffice:excel:protected-worksheet":"true","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"tika:file_ext":"xls","X-TIKA:parse_time_millis":"99","X-TIKA:embedded_depth":"0","X-TIKA:content":""},{"Transparency Alpha":"none","X-TIKA:embedded_id_path":"/1","tiff:ImageLength":"69","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","Dimension VerticalPixelSize":"0.26455027","IHDR":"width=444, height=69, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"32566","tiff:BitsPerSample":"8 8 8","X-TIKA:digest:MD5":"1d1901a8ca3e8d79125223ef6d552c59","X-TIKA:embedded_id":"1","Content-Type":"image/png","height":"69","imagereader:NumImages":"1","gAMA":"45448","X-TIKA:final_embedded_resource_path":"/embedded-1","pHYs":"pixelsPerUnitXAxis=3780, pixelsPerUnitYAxis=3780, unitSpecifier=meter","Chroma Gamma":"0.45448","Dimension PixelAspectRatio":"1.0","Compression NumProgressiveScans":"1","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Dimension HorizontalPixelSize":"0.26455027","Chroma BlackIsZero":"true","Compression Lossless":"true","X-TIKA:embedded_depth":"1","width":"444","X-TIKA:parse_time_millis":"1","Dimension ImageOrientation":"Normal","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-1","tiff:ImageWidth":"444","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"Transparency Alpha":"none","X-TIKA:embedded_id_path":"/2","tiff:ImageLength":"211","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","IHDR":"width=250, height=211, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"99582","tiff:BitsPerSample":"8 8 8","X-TIKA:digest:MD5":"d1998e7d99df6ce3c1e9d5a79d876aa7","X-TIKA:embedded_id":"2","Content-Type":"image/png","height":"211","imagereader:NumImages":"1","gAMA":"45448","X-TIKA:final_embedded_resource_path":"/embedded-2","Chroma Gamma":"0.45448","Dimension PixelAspectRatio":"1.0","Compression NumProgressiveScans":"1","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Chroma BlackIsZero":"true","Compression Lossless":"true","X-TIKA:embedded_depth":"1","width":"250","X-TIKA:parse_time_millis":"1","Dimension ImageOrientation":"Normal","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-2","tiff:ImageWidth":"250","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"X-TIKA:final_embedded_resource_path":"/embedded-3","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"X-TIKA:embedded_id_path":"/3","X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-3","Content-Length":"17300","X-TIKA:digest:MD5":"c8b11baf4d4a0e31c70cf39caecc00e4","X-TIKA:embedded_id":"3","Content-Type":"image/emf"},{"X-TIKA:final_embedded_resource_path":"/embedded-4","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"X-TIKA:embedded_id_path":"/4","X-TIKA:content_handler":"ToTextContentHandler","X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-4","Content-Length":"5452","X-TIKA:digest:MD5":"976b892e2298066db0170bfeae313997","X-TIKA:embedded_id":"4","Content-Type":"image/emf"},{"Number of Tables":"4 Huffman tables","Compression Type":"Baseline","X-TIKA:embedded_id_path":"/5","Data Precision":"8 bits","Number of Components":"3","tiff:ImageLength":"174","Component 2":"Cb component: Quantization table 1, Sampling factors 1 horiz/1 vert","Thumbnail Height Pixels":"0","Component 1":"Y component: Quantization table 0, Sampling factors 2 horiz/2 vert","X Resolution":"96 dots","File Size":"7518 bytes","Component 3":"Cr component: Quantization table 1, Sampling factors 1 horiz/1 vert","Version":"1.1","JPEG Comment":"Software: Microsoft Office","File Name":"apache-tika-18338140609647903764.tmp","Content-Length":"7518","tiff:BitsPerSample":"8","X-TIKA:digest:MD5":"c61f33248aaa54b875a6dd8408766a3a","X-TIKA:embedded_id":"5","Content-Type":"image/jpeg","w:Comments":"Software: Microsoft Office","Resolution Units":"inch","X-TIKA:final_embedded_resource_path":"/embedded-5","File Modified Date":"Wed Jun 25 23:46:34 +02:00 2025","Image Height":"174 pixels","Thumbnail Width Pixels":"0","Image Width":"262 pixels","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.JpegParser"],"X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-5","tiff:ImageWidth":"262","Y Resolution":"96 dots"},{"X-TIKA:final_embedded_resource_path":"/embedded-7/embedded-6","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"X-TIKA:embedded_id_path":"/6/7","X-TIKA:content_handler":"ToTextContentHandler","X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-6/embedded-7","Content-Length":"322","X-TIKA:digest:MD5":"68b315e61cb35528954cd5c1e9caa265","X-TIKA:embedded_id":"7","Content-Type":"image/wmf"},{"X-TIKA:final_embedded_resource_path":"/embedded-7","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"X-TIKA:embedded_id_path":"/6","X-TIKA:content_handler":"ToTextContentHandler","X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-6","Content-Length":"1216","X-TIKA:digest:MD5":"cf33b98dcc168e0b707e0ff17c33ebd2","X-TIKA:embedded_id":"6","Content-Type":"image/emf"},{"Transparency Alpha":"none","X-TIKA:embedded_id_path":"/8","tiff:ImageLength":"768","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","Dimension VerticalPixelSize":"0.26455027","IHDR":"width=1024, height=768, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"140967","tiff:BitsPerSample":"8 8 8","X-TIKA:digest:MD5":"bc809828b9d2c6fd1f45c5abc83a90fb","X-TIKA:embedded_id":"8","Content-Type":"image/png","height":"768","imagereader:NumImages":"1","X-TIKA:final_embedded_resource_path":"/embedded-8","pHYs":"pixelsPerUnitXAxis=3780, pixelsPerUnitYAxis=3780, unitSpecifier=meter","Dimension PixelAspectRatio":"1.0","sRGB":"Perceptual","Compression NumProgressiveScans":"1","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Dimension HorizontalPixelSize":"0.26455027","Chroma BlackIsZero":"true","Compression Lossless":"true","X-TIKA:embedded_depth":"1","width":"1024","X-TIKA:parse_time_millis":"1","Dimension ImageOrientation":"Normal","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-8","tiff:ImageWidth":"1024","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"X-TIKA:final_embedded_resource_path":"/embedded-10/embedded-9","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"X-TIKA:embedded_id_path":"/9/10","X-TIKA:content_handler":"ToTextContentHandler","X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-9/embedded-10","Content-Length":"322","X-TIKA:digest:MD5":"ffbea03f611e1c117a8972014028a41a","X-TIKA:embedded_id":"10","Content-Type":"image/wmf"},{"X-TIKA:final_embedded_resource_path":"/embedded-10","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"X-TIKA:embedded_id_path":"/9","X-TIKA:content_handler":"ToTextContentHandler","X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"2","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-9","Content-Length":"1216","X-TIKA:digest:MD5":"27790cde5223edf2d3edfb4f64afb5f1","X-TIKA:embedded_id":"9","Content-Type":"image/emf"},{"X-TIKA:final_embedded_resource_path":"/embedded-11","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"X-TIKA:embedded_id_path":"/11","X-TIKA:content_handler":"ToTextContentHandler","X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-11","Content-Length":"5460","X-TIKA:digest:MD5":"c03768adeb4ef5b38090384df8fc1a6b","X-TIKA:embedded_id":"11","Content-Type":"image/emf"},{"X-TIKA:final_embedded_resource_path":"/embedded-13/embedded-12","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"X-TIKA:embedded_id_path":"/12/13","X-TIKA:content_handler":"ToTextContentHandler","X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-12/embedded-13","Content-Length":"322","X-TIKA:digest:MD5":"b69f42682e0d0fa006bef26ad7f30258","X-TIKA:embedded_id":"13","Content-Type":"image/wmf"},{"X-TIKA:final_embedded_resource_path":"/embedded-13","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"X-TIKA:embedded_id_path":"/12","X-TIKA:content_handler":"ToTextContentHandler","X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"2","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/embedded-12","Content-Length":"1216","X-TIKA:digest:MD5":"e403f2995b2ed1df5691139694b79ca3","X-TIKA:embedded_id":"12","Content-Type":"image/emf"},{"X-TIKA:final_embedded_resource_path":"/MBD00114B29.doc/image1","X-TIKA:EXCEPTION:embedded_exception":"org.apache.tika.exception.ZeroByteFileException: InputStream must have > 0 bytes\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:191)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:275)\n\tat org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)\n\tat org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:111)\n\tat org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:224)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:137)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:111)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:102)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handlePictureCharacterRun(WordExtractor.java:576)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handleSpecialCharacterRuns(WordExtractor.java:492)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handleParagraph(WordExtractor.java:367)\n\tat org.apache.tika.parser.microsoft.WordExtractor.parse(WordExtractor.java:186)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:230)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:183)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:204)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:275)\n\tat org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)\n\tat org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:111)\n\tat org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:224)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.parseEmbedded(AbstractPOIFSExtractor.java:404)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:238)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:159)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:150)\n\tat org.apache.tika.parser.microsoft.ExcelExtractor.parse(ExcelExtractor.java:204)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:238)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:183)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:204)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:168)\n\tat org.apache.tika.batch.FileResourceConsumer.parse(FileResourceConsumer.java:372)\n\tat org.apache.tika.batch.fs.RecursiveParserWrapperFSConsumer.processFileResource(RecursiveParserWrapperFSConsumer.java:97)\n\tat org.apache.tika.batch.FileResourceConsumer._processFileResource(FileResourceConsumer.java:151)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:87)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:50)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:840)\n","X-TIKA:embedded_id_path":"/14/15","resourceName":"image1","X-TIKA:EXCEPTION:embedded_parser":"org.apache.tika.parser.DigestingParser","X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00114B29.doc/image1","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"15","Content-Type":"image/unknown"},{"Transparency Alpha":"none","X-TIKA:embedded_id_path":"/14/16","tiff:ImageLength":"768","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","Dimension VerticalPixelSize":"0.26455027","IHDR":"width=1024, height=768, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"140967","tiff:BitsPerSample":"8 8 8","X-TIKA:digest:MD5":"bc809828b9d2c6fd1f45c5abc83a90fb","X-TIKA:embedded_id":"16","Content-Type":"image/png","height":"768","imagereader:NumImages":"1","X-TIKA:final_embedded_resource_path":"/MBD00114B29.doc/image2.png","pHYs":"pixelsPerUnitXAxis=3780, pixelsPerUnitYAxis=3780, unitSpecifier=meter","Dimension PixelAspectRatio":"1.0","resourceName":"image2.png","sRGB":"Perceptual","Compression NumProgressiveScans":"1","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Dimension HorizontalPixelSize":"0.26455027","Chroma BlackIsZero":"true","Compression Lossless":"true","X-TIKA:embedded_depth":"2","width":"1024","X-TIKA:parse_time_millis":"1","Dimension ImageOrientation":"Normal","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00114B29.doc/image2.png","tiff:ImageWidth":"1024","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"cp:revision":"2","meta:word-count":"963","X-TIKA:embedded_id_path":"/14","X-TIKA:content_handler":"ToTextContentHandler","dcterms:created":"2008-08-18T21:59:00Z","dcterms:modified":"2008-08-18T21:59:00Z","meta:character-count":"5491","embeddedRelationshipId":"MBD00114B29","extended-properties:TotalTime":"0","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"14","Content-Type":"application/msword","X-TIKA:final_embedded_resource_path":"/MBD00114B29.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Anne Hampson","xmpTPg:NPages":"3","resourceName":"MBD00114B29.doc","extended-properties:Template":"Normal.dot","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"2","embeddedStorageClassId":"{00020906-0000-0000-C000-000000000046}","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00114B29.doc","meta:page-count":"3"},{"X-TIKA:final_embedded_resource_path":"/MBD00153B90.doc/image1.wmf","X-TIKA:embedded_id_path":"/17/18","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"image1.wmf","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00153B90.doc/image1.wmf","Content-Length":"512","X-TIKA:digest:MD5":"918e7def18f96f2df116dab5cd95347f","X-TIKA:embedded_id":"18","Content-Type":"image/wmf"},{"X-TIKA:final_embedded_resource_path":"/MBD00153B90.doc/_1148732450.unknown","X-TIKA:embedded_id_path":"/17/19","resourceName":"_1148732450.unknown","embeddedRelationshipId":"_1148732450","X-TIKA:Parsed-By":"org.apache.tika.parser.EmptyParser","X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"0","embeddedStorageClassId":"{0002CE02-0000-0000-C000-000000000046}","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00153B90.doc/_1148732450.unknown","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"19","Content-Type":"application/vnd.ms-equation"},{"cp:revision":"2","meta:word-count":"4660","X-TIKA:embedded_id_path":"/17","X-TIKA:content_handler":"ToTextContentHandler","meta:print-date":"2005-03-18T15:11:00Z","dcterms:created":"2008-08-28T16:30:00Z","dcterms:modified":"2008-08-28T16:31:00Z","meta:character-count":"26564","embeddedRelationshipId":"MBD00153B90","extended-properties:TotalTime":"600000000","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"17","Content-Type":"application/msword","X-TIKA:final_embedded_resource_path":"/MBD00153B90.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Bob Sidner","xmpTPg:NPages":"14","resourceName":"MBD00153B90.doc","extended-properties:Template":"Normal","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"5","embeddedStorageClassId":"{00020906-0000-0000-C000-000000000046}","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00153B90.doc","meta:page-count":"14"},{"X-TIKA:final_embedded_resource_path":"/MBD00114B2B.doc/image1.wmf","X-TIKA:embedded_id_path":"/20/21","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"image1.wmf","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00114B2B.doc/image1.wmf","Content-Length":"512","X-TIKA:digest:MD5":"918e7def18f96f2df116dab5cd95347f","X-TIKA:embedded_id":"21","Content-Type":"image/wmf"},{"X-TIKA:final_embedded_resource_path":"/MBD00114B2B.doc/_1148732450.unknown","X-TIKA:embedded_id_path":"/20/22","resourceName":"_1148732450.unknown","embeddedRelationshipId":"_1148732450","X-TIKA:Parsed-By":"org.apache.tika.parser.EmptyParser","X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"0","embeddedStorageClassId":"{0002CE02-0000-0000-C000-000000000046}","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00114B2B.doc/_1148732450.unknown","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"22","Content-Type":"application/vnd.ms-equation"},{"cp:revision":"2","meta:word-count":"4660","X-TIKA:embedded_id_path":"/20","X-TIKA:content_handler":"ToTextContentHandler","meta:print-date":"2005-03-18T15:11:00Z","dcterms:created":"2007-12-10T20:46:00Z","dcterms:modified":"2007-12-10T20:47:00Z","meta:character-count":"26565","embeddedRelationshipId":"MBD00114B2B","extended-properties:TotalTime":"600000000","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"20","Content-Type":"application/msword","X-TIKA:final_embedded_resource_path":"/MBD00114B2B.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Anne Hampson","xmpTPg:NPages":"14","resourceName":"MBD00114B2B.doc","extended-properties:Template":"Normal.dot","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"4","embeddedStorageClassId":"{00020906-0000-0000-C000-000000000046}","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00114B2B.doc","meta:page-count":"14"},{"X-TIKA:final_embedded_resource_path":"/MBD0001BE16.doc/image1.wmf","X-TIKA:embedded_id_path":"/23/24","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"image1.wmf","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD0001BE16.doc/image1.wmf","Content-Length":"512","X-TIKA:digest:MD5":"918e7def18f96f2df116dab5cd95347f","X-TIKA:embedded_id":"24","Content-Type":"image/wmf"},{"X-TIKA:final_embedded_resource_path":"/MBD0001BE16.doc/_1148732450.unknown","X-TIKA:embedded_id_path":"/23/25","resourceName":"_1148732450.unknown","embeddedRelationshipId":"_1148732450","X-TIKA:Parsed-By":"org.apache.tika.parser.EmptyParser","X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"0","embeddedStorageClassId":"{0002CE02-0000-0000-C000-000000000046}","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD0001BE16.doc/_1148732450.unknown","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"25","Content-Type":"application/vnd.ms-equation"},{"cp:revision":"4","meta:word-count":"4655","X-TIKA:embedded_id_path":"/23","X-TIKA:content_handler":"ToTextContentHandler","meta:print-date":"2005-03-18T15:11:00Z","dcterms:created":"2007-12-10T16:37:00Z","dcterms:modified":"2007-12-10T17:11:00Z","meta:character-count":"26535","embeddedRelationshipId":"MBD0001BE16","extended-properties:TotalTime":"3000000000","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"23","Content-Type":"application/msword","X-TIKA:final_embedded_resource_path":"/MBD0001BE16.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Anne Hampson","xmpTPg:NPages":"14","resourceName":"MBD0001BE16.doc","extended-properties:Template":"Normal.dot","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"5","embeddedStorageClassId":"{00020907-0000-0000-C000-000000000046}","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD0001BE16.doc","meta:page-count":"14"},{"X-TIKA:final_embedded_resource_path":"/MBD00065AD5.doc/image1","X-TIKA:EXCEPTION:embedded_exception":"org.apache.tika.exception.ZeroByteFileException: InputStream must have > 0 bytes\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:191)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:275)\n\tat org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)\n\tat org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:111)\n\tat org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:224)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:137)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:111)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:102)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handlePictureCharacterRun(WordExtractor.java:576)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handleSpecialCharacterRuns(WordExtractor.java:492)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handleParagraph(WordExtractor.java:367)\n\tat org.apache.tika.parser.microsoft.WordExtractor.parse(WordExtractor.java:186)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:230)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:183)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:204)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:275)\n\tat org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)\n\tat org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:111)\n\tat org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:224)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.parseEmbedded(AbstractPOIFSExtractor.java:404)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:238)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:159)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:150)\n\tat org.apache.tika.parser.microsoft.ExcelExtractor.parse(ExcelExtractor.java:204)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:238)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:183)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:204)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:168)\n\tat org.apache.tika.batch.FileResourceConsumer.parse(FileResourceConsumer.java:372)\n\tat org.apache.tika.batch.fs.RecursiveParserWrapperFSConsumer.processFileResource(RecursiveParserWrapperFSConsumer.java:97)\n\tat org.apache.tika.batch.FileResourceConsumer._processFileResource(FileResourceConsumer.java:151)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:87)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:50)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:840)\n","X-TIKA:embedded_id_path":"/26/27","resourceName":"image1","X-TIKA:EXCEPTION:embedded_parser":"org.apache.tika.parser.DigestingParser","X-TIKA:embedded_depth":"2","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00065AD5.doc/image1","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"27","Content-Type":"image/unknown"},{"Transparency Alpha":"none","X-TIKA:embedded_id_path":"/26/28","tiff:ImageLength":"768","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","Dimension VerticalPixelSize":"0.26455027","IHDR":"width=1024, height=768, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"140967","tiff:BitsPerSample":"8 8 8","X-TIKA:digest:MD5":"bc809828b9d2c6fd1f45c5abc83a90fb","X-TIKA:embedded_id":"28","Content-Type":"image/png","height":"768","imagereader:NumImages":"1","X-TIKA:final_embedded_resource_path":"/MBD00065AD5.doc/image2.png","pHYs":"pixelsPerUnitXAxis=3780, pixelsPerUnitYAxis=3780, unitSpecifier=meter","Dimension PixelAspectRatio":"1.0","resourceName":"image2.png","sRGB":"Perceptual","Compression NumProgressiveScans":"1","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Dimension HorizontalPixelSize":"0.26455027","Chroma BlackIsZero":"true","Compression Lossless":"true","X-TIKA:embedded_depth":"2","width":"1024","X-TIKA:parse_time_millis":"1","Dimension ImageOrientation":"Normal","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00065AD5.doc/image2.png","tiff:ImageWidth":"1024","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"cp:revision":"4","meta:word-count":"957","X-TIKA:embedded_id_path":"/26","X-TIKA:content_handler":"ToTextContentHandler","dcterms:created":"2007-12-10T17:18:00Z","dcterms:modified":"2007-12-10T17:20:00Z","meta:character-count":"5457","embeddedRelationshipId":"MBD00065AD5","extended-properties:TotalTime":"0","Content-Length":"0","X-TIKA:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","X-TIKA:embedded_id":"26","Content-Type":"application/msword","X-TIKA:final_embedded_resource_path":"/MBD00065AD5.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Anne Hampson","xmpTPg:NPages":"3","resourceName":"MBD00065AD5.doc","extended-properties:Template":"Normal.dot","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"X-TIKA:embedded_depth":"1","X-TIKA:parse_time_millis":"2","embeddedStorageClassId":"{00020906-0000-0000-C000-000000000046}","X-TIKA:content":"","X-TIKA:embedded_resource_path":"/MBD00065AD5.doc","meta:page-count":"3"},{"X-TIKA:final_embedded_resource_path":"/Sheet10","X-TIKA:embedded_id_path":"/29","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet10","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet10","Content-Length":"314","X-TIKA:digest:MD5":"3d6b3da6ee3384a2fe844861d1549445","X-TIKA:embedded_id":"29","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet11","X-TIKA:embedded_id_path":"/30","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet11","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet11","Content-Length":"300","X-TIKA:digest:MD5":"04f4ac9da3429c88e1ba78a4ac3d3f56","X-TIKA:embedded_id":"30","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Module1","X-TIKA:embedded_id_path":"/31","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Module1","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Module1","Content-Length":"67","X-TIKA:digest:MD5":"b2a8ae4340c43f4afa859091d511b1bd","X-TIKA:embedded_id":"31","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Module3","X-TIKA:embedded_id_path":"/32","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Module3","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Module3","Content-Length":"227","X-TIKA:digest:MD5":"8a4ee81efb48fcaeb5472e0e54796f6f","X-TIKA:embedded_id":"32","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet51","X-TIKA:embedded_id_path":"/33","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet51","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet51","Content-Length":"312","X-TIKA:digest:MD5":"44ce5d0325c3939843c0f621c5fc057c","X-TIKA:embedded_id":"33","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Module2","X-TIKA:embedded_id_path":"/34","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Module2","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Module2","Content-Length":"1002","X-TIKA:digest:MD5":"8cf5714fcf9beb2237a703844cddcbed","X-TIKA:embedded_id":"34","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/OPProfile","X-TIKA:embedded_id_path":"/35","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"OPProfile","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/OPProfile","Content-Length":"1181","X-TIKA:digest:MD5":"1f9d63861995e64d7745c670bc21be98","X-TIKA:embedded_id":"35","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/ThermCalc","X-TIKA:embedded_id_path":"/36","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"ThermCalc","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/ThermCalc","Content-Length":"1486","X-TIKA:digest:MD5":"cf7080fe5cde53297846c6e6aff9c7ec","X-TIKA:embedded_id":"36","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/GenProfiles","X-TIKA:embedded_id_path":"/37","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"GenProfiles","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/GenProfiles","Content-Length":"1877","X-TIKA:digest:MD5":"04fa71791fd7825ddf1958c2bf3544cc","X-TIKA:embedded_id":"37","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet9","X-TIKA:embedded_id_path":"/38","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet9","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet9","Content-Length":"313","X-TIKA:digest:MD5":"f9f8c1fe1685a3768b526099473f46ee","X-TIKA:embedded_id":"38","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/NextButtons","X-TIKA:embedded_id_path":"/39","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"NextButtons","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/NextButtons","Content-Length":"44894","X-TIKA:digest:MD5":"fe2ac3e4720161a1b44864677e5ae371","X-TIKA:embedded_id":"39","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet8","X-TIKA:embedded_id_path":"/40","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet8","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet8","Content-Length":"313","X-TIKA:digest:MD5":"1a737fefb61107ff402527e84bc18ac0","X-TIKA:embedded_id":"40","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet7","X-TIKA:embedded_id_path":"/41","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet7","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet7","Content-Length":"313","X-TIKA:digest:MD5":"99f232c7aae8346aa44d0d8590cc940e","X-TIKA:embedded_id":"41","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet2","X-TIKA:embedded_id_path":"/42","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet2","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet2","Content-Length":"313","X-TIKA:digest:MD5":"e46398cc14c3c4b4e956755c26e0c080","X-TIKA:embedded_id":"42","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet1","X-TIKA:embedded_id_path":"/43","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet1","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet1","Content-Length":"313","X-TIKA:digest:MD5":"10c1213d383e8453b15001cd4e05e8ef","X-TIKA:embedded_id":"43","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/ThisWorkbook","X-TIKA:embedded_id_path":"/44","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"ThisWorkbook","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/ThisWorkbook","Content-Length":"319","X-TIKA:digest:MD5":"7c76ef3324d2484f31c67caf5cc31c7f","X-TIKA:embedded_id":"44","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet6","X-TIKA:embedded_id_path":"/45","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet6","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet6","Content-Length":"313","X-TIKA:digest:MD5":"2f7e84c8df76af1de382b4d458f47aed","X-TIKA:embedded_id":"45","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet13","X-TIKA:embedded_id_path":"/46","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet13","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet13","Content-Length":"314","X-TIKA:digest:MD5":"65bba3c46a08f5fa1a4481c3446b6eae","X-TIKA:embedded_id":"46","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Inputs","X-TIKA:embedded_id_path":"/47","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Inputs","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Inputs","Content-Length":"34991","X-TIKA:digest:MD5":"f3757176dec4150f4e9afffdd6942457","X-TIKA:embedded_id":"47","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet5","X-TIKA:embedded_id_path":"/48","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet5","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet5","Content-Length":"299","X-TIKA:digest:MD5":"438be34e94b9480576b9c3181986ee7c","X-TIKA:embedded_id":"48","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet4","X-TIKA:embedded_id_path":"/49","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet4","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"1","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet4","Content-Length":"392","X-TIKA:digest:MD5":"caa254e87e60aace6e72550efc6e8735","X-TIKA:embedded_id":"49","Content-Type":"text/x-vbasic; charset=windows-1252"},{"X-TIKA:final_embedded_resource_path":"/Sheet3","X-TIKA:embedded_id_path":"/50","X-TIKA:content_handler":"ToTextContentHandler","resourceName":"Sheet3","X-TIKA:encodingDetector":"UniversalEncodingDetector","embeddedResourceType":"MACRO","X-TIKA:Parsed-By":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"X-TIKA:embedded_depth":"1","Content-Encoding":"windows-1252","X-TIKA:parse_time_millis":"0","X-TIKA:content":"","X-TIKA:detectedEncoding":"windows-1252","X-TIKA:embedded_resource_path":"/Sheet3","Content-Length":"313","X-TIKA:digest:MD5":"dc1d902f1835a9b44d81e233f35a25db","X-TIKA:embedded_id":"50","Content-Type":"text/x-vbasic; charset=windows-1252"}] \ No newline at end of file +[{"msoffice:excel:has-hidden-rows":"true","tk:parsed-by-full-set":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser","org.apache.tika.parser.microsoft.EMFParser","org.apache.tika.parser.image.JpegParser","org.apache.tika.parser.microsoft.WMFParser","org.apache.tika.parser.EmptyParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:content-handler":"ToTextContentHandler","tika_batch_fs:relative_path":"govdocs1/355/355118.xls","meta:print-date":"2007-06-11T21:36:54Z","dcterms:created":"2004-05-13T21:24:11Z","dcterms:modified":"2008-08-29T12:18:17Z","msoffice:has-comments":"true","extended-properties:TotalTime":"0","Content-Length":"1542656","tk:digest:MD5":"82302876894ca85adb4fb1a67652db1a","Content-Type":"application/vnd.ms-excel","msoffice:comment-person-display-name":["Anne Hampson","Joe McGervey"],"w:Comments":"Version: April 26, 2006\r\n","msoffice:excel:hidden-sheet-names":["Lists","STMTech","CHPTech","EGRID","Profiles","Factors","Calc1"],"extended-properties:Application":"Microsoft Excel","meta:last-author":"Bob","msoffice:excel:has-hidden-sheets":"true","resourceName":"355118.xls","msoffice:excel:has-hidden-cols":"true","msoffice:excel:protected-worksheet":"true","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"tika:file_ext":"xls","tk:parse-time-millis":"99","tk:embedded-depth":"0","tk:content":""},{"Transparency Alpha":"none","tk:embedded-id-path":"/1","tiff:ImageLength":"69","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","Dimension VerticalPixelSize":"0.26455027","IHDR":"width=444, height=69, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"32566","tiff:BitsPerSample":"8 8 8","tk:digest:MD5":"1d1901a8ca3e8d79125223ef6d552c59","tk:embedded-id":"1","Content-Type":"image/png","height":"69","tk:num-images":"1","gAMA":"45448","tk:final-embedded-resource-path":"/embedded-1","pHYs":"pixelsPerUnitXAxis=3780, pixelsPerUnitYAxis=3780, unitSpecifier=meter","Chroma Gamma":"0.45448","Dimension PixelAspectRatio":"1.0","Compression NumProgressiveScans":"1","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Dimension HorizontalPixelSize":"0.26455027","Chroma BlackIsZero":"true","Compression Lossless":"true","tk:embedded-depth":"1","width":"444","tk:parse-time-millis":"1","Dimension ImageOrientation":"Normal","tk:content":"","tk:embedded-resource-path":"/embedded-1","tiff:ImageWidth":"444","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"Transparency Alpha":"none","tk:embedded-id-path":"/2","tiff:ImageLength":"211","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","IHDR":"width=250, height=211, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"99582","tiff:BitsPerSample":"8 8 8","tk:digest:MD5":"d1998e7d99df6ce3c1e9d5a79d876aa7","tk:embedded-id":"2","Content-Type":"image/png","height":"211","tk:num-images":"1","gAMA":"45448","tk:final-embedded-resource-path":"/embedded-2","Chroma Gamma":"0.45448","Dimension PixelAspectRatio":"1.0","Compression NumProgressiveScans":"1","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Chroma BlackIsZero":"true","Compression Lossless":"true","tk:embedded-depth":"1","width":"250","tk:parse-time-millis":"1","Dimension ImageOrientation":"Normal","tk:content":"","tk:embedded-resource-path":"/embedded-2","tiff:ImageWidth":"250","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"tk:final-embedded-resource-path":"/embedded-3","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"tk:embedded-id-path":"/3","tk:embedded-depth":"1","tk:parse-time-millis":"1","tk:content":"","tk:embedded-resource-path":"/embedded-3","Content-Length":"17300","tk:digest:MD5":"c8b11baf4d4a0e31c70cf39caecc00e4","tk:embedded-id":"3","Content-Type":"image/emf"},{"tk:final-embedded-resource-path":"/embedded-4","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"tk:embedded-id-path":"/4","tk:content-handler":"ToTextContentHandler","tk:embedded-depth":"1","tk:parse-time-millis":"1","tk:content":"","tk:embedded-resource-path":"/embedded-4","Content-Length":"5452","tk:digest:MD5":"976b892e2298066db0170bfeae313997","tk:embedded-id":"4","Content-Type":"image/emf"},{"Number of Tables":"4 Huffman tables","Compression Type":"Baseline","tk:embedded-id-path":"/5","Data Precision":"8 bits","Number of Components":"3","tiff:ImageLength":"174","Component 2":"Cb component: Quantization table 1, Sampling factors 1 horiz/1 vert","Thumbnail Height Pixels":"0","Component 1":"Y component: Quantization table 0, Sampling factors 2 horiz/2 vert","X Resolution":"96 dots","File Size":"7518 bytes","Component 3":"Cr component: Quantization table 1, Sampling factors 1 horiz/1 vert","Version":"1.1","JPEG Comment":"Software: Microsoft Office","File Name":"apache-tika-18338140609647903764.tmp","Content-Length":"7518","tiff:BitsPerSample":"8","tk:digest:MD5":"c61f33248aaa54b875a6dd8408766a3a","tk:embedded-id":"5","Content-Type":"image/jpeg","w:Comments":"Software: Microsoft Office","Resolution Units":"inch","tk:final-embedded-resource-path":"/embedded-5","File Modified Date":"Wed Jun 25 23:46:34 +02:00 2025","Image Height":"174 pixels","Thumbnail Width Pixels":"0","Image Width":"262 pixels","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.JpegParser"],"tk:embedded-depth":"1","tk:parse-time-millis":"1","tk:content":"","tk:embedded-resource-path":"/embedded-5","tiff:ImageWidth":"262","Y Resolution":"96 dots"},{"tk:final-embedded-resource-path":"/embedded-7/embedded-6","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"tk:embedded-id-path":"/6/7","tk:content-handler":"ToTextContentHandler","tk:embedded-depth":"2","tk:parse-time-millis":"1","tk:content":"","tk:embedded-resource-path":"/embedded-6/embedded-7","Content-Length":"322","tk:digest:MD5":"68b315e61cb35528954cd5c1e9caa265","tk:embedded-id":"7","Content-Type":"image/wmf"},{"tk:final-embedded-resource-path":"/embedded-7","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"tk:embedded-id-path":"/6","tk:content-handler":"ToTextContentHandler","tk:embedded-depth":"1","tk:parse-time-millis":"1","tk:content":"","tk:embedded-resource-path":"/embedded-6","Content-Length":"1216","tk:digest:MD5":"cf33b98dcc168e0b707e0ff17c33ebd2","tk:embedded-id":"6","Content-Type":"image/emf"},{"Transparency Alpha":"none","tk:embedded-id-path":"/8","tiff:ImageLength":"768","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","Dimension VerticalPixelSize":"0.26455027","IHDR":"width=1024, height=768, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"140967","tiff:BitsPerSample":"8 8 8","tk:digest:MD5":"bc809828b9d2c6fd1f45c5abc83a90fb","tk:embedded-id":"8","Content-Type":"image/png","height":"768","tk:num-images":"1","tk:final-embedded-resource-path":"/embedded-8","pHYs":"pixelsPerUnitXAxis=3780, pixelsPerUnitYAxis=3780, unitSpecifier=meter","Dimension PixelAspectRatio":"1.0","sRGB":"Perceptual","Compression NumProgressiveScans":"1","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Dimension HorizontalPixelSize":"0.26455027","Chroma BlackIsZero":"true","Compression Lossless":"true","tk:embedded-depth":"1","width":"1024","tk:parse-time-millis":"1","Dimension ImageOrientation":"Normal","tk:content":"","tk:embedded-resource-path":"/embedded-8","tiff:ImageWidth":"1024","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"tk:final-embedded-resource-path":"/embedded-10/embedded-9","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"tk:embedded-id-path":"/9/10","tk:content-handler":"ToTextContentHandler","tk:embedded-depth":"2","tk:parse-time-millis":"1","tk:content":"","tk:embedded-resource-path":"/embedded-9/embedded-10","Content-Length":"322","tk:digest:MD5":"ffbea03f611e1c117a8972014028a41a","tk:embedded-id":"10","Content-Type":"image/wmf"},{"tk:final-embedded-resource-path":"/embedded-10","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"tk:embedded-id-path":"/9","tk:content-handler":"ToTextContentHandler","tk:embedded-depth":"1","tk:parse-time-millis":"2","tk:content":"","tk:embedded-resource-path":"/embedded-9","Content-Length":"1216","tk:digest:MD5":"27790cde5223edf2d3edfb4f64afb5f1","tk:embedded-id":"9","Content-Type":"image/emf"},{"tk:final-embedded-resource-path":"/embedded-11","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"tk:embedded-id-path":"/11","tk:content-handler":"ToTextContentHandler","tk:embedded-depth":"1","tk:parse-time-millis":"0","tk:content":"","tk:embedded-resource-path":"/embedded-11","Content-Length":"5460","tk:digest:MD5":"c03768adeb4ef5b38090384df8fc1a6b","tk:embedded-id":"11","Content-Type":"image/emf"},{"tk:final-embedded-resource-path":"/embedded-13/embedded-12","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"tk:embedded-id-path":"/12/13","tk:content-handler":"ToTextContentHandler","tk:embedded-depth":"2","tk:parse-time-millis":"1","tk:content":"","tk:embedded-resource-path":"/embedded-12/embedded-13","Content-Length":"322","tk:digest:MD5":"b69f42682e0d0fa006bef26ad7f30258","tk:embedded-id":"13","Content-Type":"image/wmf"},{"tk:final-embedded-resource-path":"/embedded-13","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.EMFParser"],"tk:embedded-id-path":"/12","tk:content-handler":"ToTextContentHandler","tk:embedded-depth":"1","tk:parse-time-millis":"2","tk:content":"","tk:embedded-resource-path":"/embedded-12","Content-Length":"1216","tk:digest:MD5":"e403f2995b2ed1df5691139694b79ca3","tk:embedded-id":"12","Content-Type":"image/emf"},{"tk:final-embedded-resource-path":"/MBD00114B29.doc/image1","tk:exception:embedded-exception":"org.apache.tika.exception.ZeroByteFileException: InputStream must have > 0 bytes\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:191)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:275)\n\tat org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)\n\tat org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:111)\n\tat org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:224)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:137)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:111)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:102)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handlePictureCharacterRun(WordExtractor.java:576)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handleSpecialCharacterRuns(WordExtractor.java:492)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handleParagraph(WordExtractor.java:367)\n\tat org.apache.tika.parser.microsoft.WordExtractor.parse(WordExtractor.java:186)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:230)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:183)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:204)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:275)\n\tat org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)\n\tat org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:111)\n\tat org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:224)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.parseEmbedded(AbstractPOIFSExtractor.java:404)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:238)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:159)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:150)\n\tat org.apache.tika.parser.microsoft.ExcelExtractor.parse(ExcelExtractor.java:204)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:238)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:183)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:204)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:168)\n\tat org.apache.tika.batch.FileResourceConsumer.parse(FileResourceConsumer.java:372)\n\tat org.apache.tika.batch.fs.RecursiveParserWrapperFSConsumer.processFileResource(RecursiveParserWrapperFSConsumer.java:97)\n\tat org.apache.tika.batch.FileResourceConsumer._processFileResource(FileResourceConsumer.java:151)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:87)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:50)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:840)\n","tk:embedded-id-path":"/14/15","resourceName":"image1","tk:exception:embedded-parser":"org.apache.tika.parser.DigestingParser","tk:embedded-depth":"2","tk:parse-time-millis":"0","tk:content":"","tk:embedded-resource-path":"/MBD00114B29.doc/image1","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"15","Content-Type":"image/unknown"},{"Transparency Alpha":"none","tk:embedded-id-path":"/14/16","tiff:ImageLength":"768","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","Dimension VerticalPixelSize":"0.26455027","IHDR":"width=1024, height=768, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"140967","tiff:BitsPerSample":"8 8 8","tk:digest:MD5":"bc809828b9d2c6fd1f45c5abc83a90fb","tk:embedded-id":"16","Content-Type":"image/png","height":"768","tk:num-images":"1","tk:final-embedded-resource-path":"/MBD00114B29.doc/image2.png","pHYs":"pixelsPerUnitXAxis=3780, pixelsPerUnitYAxis=3780, unitSpecifier=meter","Dimension PixelAspectRatio":"1.0","resourceName":"image2.png","sRGB":"Perceptual","Compression NumProgressiveScans":"1","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Dimension HorizontalPixelSize":"0.26455027","Chroma BlackIsZero":"true","Compression Lossless":"true","tk:embedded-depth":"2","width":"1024","tk:parse-time-millis":"1","Dimension ImageOrientation":"Normal","tk:content":"","tk:embedded-resource-path":"/MBD00114B29.doc/image2.png","tiff:ImageWidth":"1024","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"cp:revision":"2","meta:word-count":"963","tk:embedded-id-path":"/14","tk:content-handler":"ToTextContentHandler","dcterms:created":"2008-08-18T21:59:00Z","dcterms:modified":"2008-08-18T21:59:00Z","meta:character-count":"5491","embeddedRelationshipId":"MBD00114B29","extended-properties:TotalTime":"0","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"14","Content-Type":"application/msword","tk:final-embedded-resource-path":"/MBD00114B29.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Anne Hampson","xmpTPg:NPages":"3","resourceName":"MBD00114B29.doc","extended-properties:Template":"Normal.dot","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"tk:embedded-depth":"1","tk:parse-time-millis":"2","embeddedStorageClassId":"{00020906-0000-0000-C000-000000000046}","tk:content":"","tk:embedded-resource-path":"/MBD00114B29.doc","meta:page-count":"3"},{"tk:final-embedded-resource-path":"/MBD00153B90.doc/image1.wmf","tk:embedded-id-path":"/17/18","tk:content-handler":"ToTextContentHandler","resourceName":"image1.wmf","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"tk:embedded-depth":"2","tk:parse-time-millis":"0","tk:content":"","tk:embedded-resource-path":"/MBD00153B90.doc/image1.wmf","Content-Length":"512","tk:digest:MD5":"918e7def18f96f2df116dab5cd95347f","tk:embedded-id":"18","Content-Type":"image/wmf"},{"tk:final-embedded-resource-path":"/MBD00153B90.doc/_1148732450.unknown","tk:embedded-id-path":"/17/19","resourceName":"_1148732450.unknown","embeddedRelationshipId":"_1148732450","tk:parsed-by":"org.apache.tika.parser.EmptyParser","tk:embedded-depth":"2","tk:parse-time-millis":"0","embeddedStorageClassId":"{0002CE02-0000-0000-C000-000000000046}","tk:content":"","tk:embedded-resource-path":"/MBD00153B90.doc/_1148732450.unknown","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"19","Content-Type":"application/vnd.ms-equation"},{"cp:revision":"2","meta:word-count":"4660","tk:embedded-id-path":"/17","tk:content-handler":"ToTextContentHandler","meta:print-date":"2005-03-18T15:11:00Z","dcterms:created":"2008-08-28T16:30:00Z","dcterms:modified":"2008-08-28T16:31:00Z","meta:character-count":"26564","embeddedRelationshipId":"MBD00153B90","extended-properties:TotalTime":"600000000","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"17","Content-Type":"application/msword","tk:final-embedded-resource-path":"/MBD00153B90.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Bob Sidner","xmpTPg:NPages":"14","resourceName":"MBD00153B90.doc","extended-properties:Template":"Normal","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"tk:embedded-depth":"1","tk:parse-time-millis":"5","embeddedStorageClassId":"{00020906-0000-0000-C000-000000000046}","tk:content":"","tk:embedded-resource-path":"/MBD00153B90.doc","meta:page-count":"14"},{"tk:final-embedded-resource-path":"/MBD00114B2B.doc/image1.wmf","tk:embedded-id-path":"/20/21","tk:content-handler":"ToTextContentHandler","resourceName":"image1.wmf","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"tk:embedded-depth":"2","tk:parse-time-millis":"1","tk:content":"","tk:embedded-resource-path":"/MBD00114B2B.doc/image1.wmf","Content-Length":"512","tk:digest:MD5":"918e7def18f96f2df116dab5cd95347f","tk:embedded-id":"21","Content-Type":"image/wmf"},{"tk:final-embedded-resource-path":"/MBD00114B2B.doc/_1148732450.unknown","tk:embedded-id-path":"/20/22","resourceName":"_1148732450.unknown","embeddedRelationshipId":"_1148732450","tk:parsed-by":"org.apache.tika.parser.EmptyParser","tk:embedded-depth":"2","tk:parse-time-millis":"0","embeddedStorageClassId":"{0002CE02-0000-0000-C000-000000000046}","tk:content":"","tk:embedded-resource-path":"/MBD00114B2B.doc/_1148732450.unknown","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"22","Content-Type":"application/vnd.ms-equation"},{"cp:revision":"2","meta:word-count":"4660","tk:embedded-id-path":"/20","tk:content-handler":"ToTextContentHandler","meta:print-date":"2005-03-18T15:11:00Z","dcterms:created":"2007-12-10T20:46:00Z","dcterms:modified":"2007-12-10T20:47:00Z","meta:character-count":"26565","embeddedRelationshipId":"MBD00114B2B","extended-properties:TotalTime":"600000000","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"20","Content-Type":"application/msword","tk:final-embedded-resource-path":"/MBD00114B2B.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Anne Hampson","xmpTPg:NPages":"14","resourceName":"MBD00114B2B.doc","extended-properties:Template":"Normal.dot","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"tk:embedded-depth":"1","tk:parse-time-millis":"4","embeddedStorageClassId":"{00020906-0000-0000-C000-000000000046}","tk:content":"","tk:embedded-resource-path":"/MBD00114B2B.doc","meta:page-count":"14"},{"tk:final-embedded-resource-path":"/MBD0001BE16.doc/image1.wmf","tk:embedded-id-path":"/23/24","tk:content-handler":"ToTextContentHandler","resourceName":"image1.wmf","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.microsoft.WMFParser"],"tk:embedded-depth":"2","tk:parse-time-millis":"0","tk:content":"","tk:embedded-resource-path":"/MBD0001BE16.doc/image1.wmf","Content-Length":"512","tk:digest:MD5":"918e7def18f96f2df116dab5cd95347f","tk:embedded-id":"24","Content-Type":"image/wmf"},{"tk:final-embedded-resource-path":"/MBD0001BE16.doc/_1148732450.unknown","tk:embedded-id-path":"/23/25","resourceName":"_1148732450.unknown","embeddedRelationshipId":"_1148732450","tk:parsed-by":"org.apache.tika.parser.EmptyParser","tk:embedded-depth":"2","tk:parse-time-millis":"0","embeddedStorageClassId":"{0002CE02-0000-0000-C000-000000000046}","tk:content":"","tk:embedded-resource-path":"/MBD0001BE16.doc/_1148732450.unknown","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"25","Content-Type":"application/vnd.ms-equation"},{"cp:revision":"4","meta:word-count":"4655","tk:embedded-id-path":"/23","tk:content-handler":"ToTextContentHandler","meta:print-date":"2005-03-18T15:11:00Z","dcterms:created":"2007-12-10T16:37:00Z","dcterms:modified":"2007-12-10T17:11:00Z","meta:character-count":"26535","embeddedRelationshipId":"MBD0001BE16","extended-properties:TotalTime":"3000000000","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"23","Content-Type":"application/msword","tk:final-embedded-resource-path":"/MBD0001BE16.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Anne Hampson","xmpTPg:NPages":"14","resourceName":"MBD0001BE16.doc","extended-properties:Template":"Normal.dot","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"tk:embedded-depth":"1","tk:parse-time-millis":"5","embeddedStorageClassId":"{00020907-0000-0000-C000-000000000046}","tk:content":"","tk:embedded-resource-path":"/MBD0001BE16.doc","meta:page-count":"14"},{"tk:final-embedded-resource-path":"/MBD00065AD5.doc/image1","tk:exception:embedded-exception":"org.apache.tika.exception.ZeroByteFileException: InputStream must have > 0 bytes\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:191)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:275)\n\tat org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)\n\tat org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:111)\n\tat org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:224)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:137)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:111)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:102)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handlePictureCharacterRun(WordExtractor.java:576)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handleSpecialCharacterRuns(WordExtractor.java:492)\n\tat org.apache.tika.parser.microsoft.WordExtractor.handleParagraph(WordExtractor.java:367)\n\tat org.apache.tika.parser.microsoft.WordExtractor.parse(WordExtractor.java:186)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:230)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:183)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:204)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:275)\n\tat org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)\n\tat org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:111)\n\tat org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:224)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.parseEmbedded(AbstractPOIFSExtractor.java:404)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:238)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:159)\n\tat org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:150)\n\tat org.apache.tika.parser.microsoft.ExcelExtractor.parse(ExcelExtractor.java:204)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:238)\n\tat org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:183)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:204)\n\tat org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:153)\n\tat org.apache.tika.parser.DigestingParser.parse(DigestingParser.java:57)\n\tat org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:168)\n\tat org.apache.tika.batch.FileResourceConsumer.parse(FileResourceConsumer.java:372)\n\tat org.apache.tika.batch.fs.RecursiveParserWrapperFSConsumer.processFileResource(RecursiveParserWrapperFSConsumer.java:97)\n\tat org.apache.tika.batch.FileResourceConsumer._processFileResource(FileResourceConsumer.java:151)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:87)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:50)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:840)\n","tk:embedded-id-path":"/26/27","resourceName":"image1","tk:exception:embedded-parser":"org.apache.tika.parser.DigestingParser","tk:embedded-depth":"2","tk:parse-time-millis":"0","tk:content":"","tk:embedded-resource-path":"/MBD00065AD5.doc/image1","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"27","Content-Type":"image/unknown"},{"Transparency Alpha":"none","tk:embedded-id-path":"/26/28","tiff:ImageLength":"768","Compression CompressionTypeName":"deflate","Data BitsPerSample":"8 8 8","Data PlanarConfiguration":"PixelInterleaved","Dimension VerticalPixelSize":"0.26455027","IHDR":"width=1024, height=768, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none","Chroma ColorSpaceType":"RGB","Content-Length":"140967","tiff:BitsPerSample":"8 8 8","tk:digest:MD5":"bc809828b9d2c6fd1f45c5abc83a90fb","tk:embedded-id":"28","Content-Type":"image/png","height":"768","tk:num-images":"1","tk:final-embedded-resource-path":"/MBD00065AD5.doc/image2.png","pHYs":"pixelsPerUnitXAxis=3780, pixelsPerUnitYAxis=3780, unitSpecifier=meter","Dimension PixelAspectRatio":"1.0","resourceName":"image2.png","sRGB":"Perceptual","Compression NumProgressiveScans":"1","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.image.ImageParser"],"Dimension HorizontalPixelSize":"0.26455027","Chroma BlackIsZero":"true","Compression Lossless":"true","tk:embedded-depth":"2","width":"1024","tk:parse-time-millis":"1","Dimension ImageOrientation":"Normal","tk:content":"","tk:embedded-resource-path":"/MBD00065AD5.doc/image2.png","tiff:ImageWidth":"1024","Chroma NumChannels":"3","Data SampleFormat":"UnsignedIntegral"},{"cp:revision":"4","meta:word-count":"957","tk:embedded-id-path":"/26","tk:content-handler":"ToTextContentHandler","dcterms:created":"2007-12-10T17:18:00Z","dcterms:modified":"2007-12-10T17:20:00Z","meta:character-count":"5457","embeddedRelationshipId":"MBD00065AD5","extended-properties:TotalTime":"0","Content-Length":"0","tk:digest:MD5":"d41d8cd98f00b204e9800998ecf8427e","tk:embedded-id":"26","Content-Type":"application/msword","tk:final-embedded-resource-path":"/MBD00065AD5.doc","extended-properties:Application":"Microsoft Office Word","meta:last-author":"Anne Hampson","xmpTPg:NPages":"3","resourceName":"MBD00065AD5.doc","extended-properties:Template":"Normal.dot","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.microsoft.OfficeParser"],"tk:embedded-depth":"1","tk:parse-time-millis":"2","embeddedStorageClassId":"{00020906-0000-0000-C000-000000000046}","tk:content":"","tk:embedded-resource-path":"/MBD00065AD5.doc","meta:page-count":"3"},{"tk:final-embedded-resource-path":"/Sheet10","tk:embedded-id-path":"/29","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet10","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet10","Content-Length":"314","tk:digest:MD5":"3d6b3da6ee3384a2fe844861d1549445","tk:embedded-id":"29","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet11","tk:embedded-id-path":"/30","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet11","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet11","Content-Length":"300","tk:digest:MD5":"04f4ac9da3429c88e1ba78a4ac3d3f56","tk:embedded-id":"30","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Module1","tk:embedded-id-path":"/31","tk:content-handler":"ToTextContentHandler","resourceName":"Module1","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Module1","Content-Length":"67","tk:digest:MD5":"b2a8ae4340c43f4afa859091d511b1bd","tk:embedded-id":"31","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Module3","tk:embedded-id-path":"/32","tk:content-handler":"ToTextContentHandler","resourceName":"Module3","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Module3","Content-Length":"227","tk:digest:MD5":"8a4ee81efb48fcaeb5472e0e54796f6f","tk:embedded-id":"32","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet51","tk:embedded-id-path":"/33","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet51","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"0","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet51","Content-Length":"312","tk:digest:MD5":"44ce5d0325c3939843c0f621c5fc057c","tk:embedded-id":"33","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Module2","tk:embedded-id-path":"/34","tk:content-handler":"ToTextContentHandler","resourceName":"Module2","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Module2","Content-Length":"1002","tk:digest:MD5":"8cf5714fcf9beb2237a703844cddcbed","tk:embedded-id":"34","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/OPProfile","tk:embedded-id-path":"/35","tk:content-handler":"ToTextContentHandler","resourceName":"OPProfile","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/OPProfile","Content-Length":"1181","tk:digest:MD5":"1f9d63861995e64d7745c670bc21be98","tk:embedded-id":"35","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/ThermCalc","tk:embedded-id-path":"/36","tk:content-handler":"ToTextContentHandler","resourceName":"ThermCalc","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/ThermCalc","Content-Length":"1486","tk:digest:MD5":"cf7080fe5cde53297846c6e6aff9c7ec","tk:embedded-id":"36","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/GenProfiles","tk:embedded-id-path":"/37","tk:content-handler":"ToTextContentHandler","resourceName":"GenProfiles","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/GenProfiles","Content-Length":"1877","tk:digest:MD5":"04fa71791fd7825ddf1958c2bf3544cc","tk:embedded-id":"37","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet9","tk:embedded-id-path":"/38","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet9","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet9","Content-Length":"313","tk:digest:MD5":"f9f8c1fe1685a3768b526099473f46ee","tk:embedded-id":"38","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/NextButtons","tk:embedded-id-path":"/39","tk:content-handler":"ToTextContentHandler","resourceName":"NextButtons","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/NextButtons","Content-Length":"44894","tk:digest:MD5":"fe2ac3e4720161a1b44864677e5ae371","tk:embedded-id":"39","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet8","tk:embedded-id-path":"/40","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet8","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet8","Content-Length":"313","tk:digest:MD5":"1a737fefb61107ff402527e84bc18ac0","tk:embedded-id":"40","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet7","tk:embedded-id-path":"/41","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet7","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet7","Content-Length":"313","tk:digest:MD5":"99f232c7aae8346aa44d0d8590cc940e","tk:embedded-id":"41","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet2","tk:embedded-id-path":"/42","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet2","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"0","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet2","Content-Length":"313","tk:digest:MD5":"e46398cc14c3c4b4e956755c26e0c080","tk:embedded-id":"42","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet1","tk:embedded-id-path":"/43","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet1","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet1","Content-Length":"313","tk:digest:MD5":"10c1213d383e8453b15001cd4e05e8ef","tk:embedded-id":"43","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/ThisWorkbook","tk:embedded-id-path":"/44","tk:content-handler":"ToTextContentHandler","resourceName":"ThisWorkbook","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/ThisWorkbook","Content-Length":"319","tk:digest:MD5":"7c76ef3324d2484f31c67caf5cc31c7f","tk:embedded-id":"44","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet6","tk:embedded-id-path":"/45","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet6","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet6","Content-Length":"313","tk:digest:MD5":"2f7e84c8df76af1de382b4d458f47aed","tk:embedded-id":"45","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet13","tk:embedded-id-path":"/46","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet13","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet13","Content-Length":"314","tk:digest:MD5":"65bba3c46a08f5fa1a4481c3446b6eae","tk:embedded-id":"46","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Inputs","tk:embedded-id-path":"/47","tk:content-handler":"ToTextContentHandler","resourceName":"Inputs","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Inputs","Content-Length":"34991","tk:digest:MD5":"f3757176dec4150f4e9afffdd6942457","tk:embedded-id":"47","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet5","tk:embedded-id-path":"/48","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet5","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet5","Content-Length":"299","tk:digest:MD5":"438be34e94b9480576b9c3181986ee7c","tk:embedded-id":"48","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet4","tk:embedded-id-path":"/49","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet4","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"1","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet4","Content-Length":"392","tk:digest:MD5":"caa254e87e60aace6e72550efc6e8735","tk:embedded-id":"49","Content-Type":"text/x-vbasic; charset=windows-1252"},{"tk:final-embedded-resource-path":"/Sheet3","tk:embedded-id-path":"/50","tk:content-handler":"ToTextContentHandler","resourceName":"Sheet3","tk:encoding-detector":"UniversalEncodingDetector","tk:embedded-resource-type":"MACRO","tk:parsed-by":["org.apache.tika.parser.CompositeParser","org.apache.tika.parser.DefaultParser","org.apache.tika.parser.csv.TextAndCSVParser"],"tk:embedded-depth":"1","Content-Encoding":"windows-1252","tk:parse-time-millis":"0","tk:content":"","tk:detected-encoding":"windows-1252","tk:embedded-resource-path":"/Sheet3","Content-Length":"313","tk:digest:MD5":"dc1d902f1835a9b44d81e233f35a25db","tk:embedded-id":"50","Content-Type":"text/x-vbasic; charset=windows-1252"}] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file1.pdf.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file1.pdf.json index 99e4ecd5701..4d3ba94ea27 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file1.pdf.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file1.pdf.json @@ -1,7 +1,7 @@ [ { "Content-Type": "text/plain", - "X-TIKA:content": "the quick brown fox fox fox jumped over the lazy lazy dog 1,200 120000", + "tk:content": "the quick brown fox fox fox jumped over the lazy lazy dog 1,200 120000", "xmpTPg:NPages": "2" } ] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file12_es.txt.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file12_es.txt.json index 5ffd824a9a6..04c90381340 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file12_es.txt.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file12_es.txt.json @@ -1,6 +1,6 @@ [ { "Content-Type": "text/plain", - "X-TIKA:content": "El zorro marrón rápido saltó sobre el perro. El zorro marrón rápido saltó sobre el perro. El zorro marrón rápido saltó sobre el perro" + "tk:content": "El zorro marrón rápido saltó sobre el perro. El zorro marrón rápido saltó sobre el perro. El zorro marrón rápido saltó sobre el perro" } ] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file13_attachANotB.doc.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file13_attachANotB.doc.json index 15bc592a5b9..8bb3cc24cd1 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file13_attachANotB.doc.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file13_attachANotB.doc.json @@ -2,11 +2,11 @@ { "Content-Type": "text/plain", "_comment": "simplified", - "X-TIKA:content": "调整每一个心脏和每个声音,投标每个护理提取;让大家一起欢乐,赞美老拿骚.调整每一个心脏和每个声音,投标每个护理提取;让大家一起欢乐,赞美老拿骚 狐狸狐狸狐狸 " + "tk:content": "调整每一个心脏和每个声音,投标每个护理提取;让大家一起欢乐,赞美老拿骚.调整每一个心脏和每个声音,投标每个护理提取;让大家一起欢乐,赞美老拿骚 狐狸狐狸狐狸 " }, { "Content-Type": "text/plain", - "X-TIKA:embedded_resource_path": "inner.txt", - "X-TIKA:content": "attachment contents" + "tk:embedded-resource-path": "inner.txt", + "tk:content": "attachment contents" } ] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file14_diffAttachOrder.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file14_diffAttachOrder.json index 25f0db9a18e..063037334af 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file14_diffAttachOrder.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file14_diffAttachOrder.json @@ -1,21 +1,21 @@ [ { "Content-Type": "text/plain", - "X-TIKA:content": "the quick brown fox fox fox jumped over the lazy lazy dog", - "X-TIKA:digest:MD5": "471d98383e9f40444e5ecf821f2c8351" + "tk:content": "the quick brown fox fox fox jumped over the lazy lazy dog", + "tk:digest:MD5": "471d98383e9f40444e5ecf821f2c8351" }, { "Content-Type": "text/plain", - "X-TIKA:embedded_resource_path": "/0", - "X-TIKA:content": "a b c d e f g h i j k l m n", - "X-TIKA:digest:MD5": "471d98383e9f40444e5ecf821f2c8354", - "X-TIKA:embedded_depth": "1" + "tk:embedded-resource-path": "/0", + "tk:content": "a b c d e f g h i j k l m n", + "tk:digest:MD5": "471d98383e9f40444e5ecf821f2c8354", + "tk:embedded-depth": "1" }, { "Content-Type": "text/plain", - "X-TIKA:embedded_resource_path": "/1", - "X-TIKA:content": "o p q r s t u v w x y z", - "X-TIKA:digest:MD5": "471d98383e9f40444e5ecf821f2c8353", - "X-TIKA:embedded_depth": "1" + "tk:embedded-resource-path": "/1", + "tk:content": "o p q r s t u v w x y z", + "tk:digest:MD5": "471d98383e9f40444e5ecf821f2c8353", + "tk:embedded-depth": "1" } ] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file15_tags.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file15_tags.json index 5af73db807a..9412d0b4870 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file15_tags.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file15_tags.json @@ -7,9 +7,9 @@ "org.apache.tika.parser.DefaultParser", "org.apache.tika.parser.pdf.PDFParser" ], - "X-TIKA:content_handler": "ToXMLContentHandler", - "X-TIKA:content": "\u003chtml xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:modify_annotations\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print_degraded\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"dc:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"dcterms:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dcterms:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"Last-Modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dc:format\" content\u003d\"application/pdf; version\u003d1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator_tool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:fill_in_form\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"meta:save-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"pdf:encrypted\" content\u003d\"false\" /\u003e\n\u003cmeta name\u003d\"dc:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"Content-Length\" content\u003d\"34824\" /\u003e\n\u003cmeta name\u003d\"Content-Type\" content\u003d\"application/pdf\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.DefaultParser\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.pdf.PDFParser\" /\u003e\n\u003cmeta name\u003d\"meta:author\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"meta:creation-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_for_accessibility\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:assemble_document\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"xmpTPg:NPages\" content\u003d\"1\" /\u003e\n\u003cmeta name\u003d\"resourceName\" content\u003d\"testPDF.pdf\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_content\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_modify\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:producer\" content\u003d\"Mac OS X 10.4.10 Quartz PDFContext\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003ctitle\u003eApache Tika - Apache Tika\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\u003cdiv class\u003d\"page\"\u003e\u003cp /\u003e\n\u003cp\u003eApache Tika - Apache Tika http://incubator.apache.org/tika/\n\u003c/p\u003e\n\u003cp\u003e1 of 1 15.9.2007 11:02\n\u003c/p\u003e\n\u003cp\u003eTika - Content Analysis Toolkit\n\u003c/p\u003e\n\u003cp\u003eApache Tika is a toolkit for detecting and extracting metadata and structured text content \n\u003c/p\u003e\n\u003cp\u003efrom various documents using existing parser libraries. \n\u003c/p\u003e\n\u003cp\u003eApache Tika is an effort undergoing incubation at The Apache Software Foundation (ASF), \n\u003c/p\u003e\n\u003cp\u003esponsored by the Apache Lucene PMC. Incubation is required of all newly accepted projects \n\u003c/p\u003e\n\u003cp\u003euntil a further review indicates that the infrastructure, communications, and decision making \n\u003c/p\u003e\n\u003cp\u003eprocess have stabilized in a manner consistent with other successful ASF projects. While \n\u003c/p\u003e\n\u003cp\u003eincubation status is not necessarily a reflection of the completeness or stability of the code, it \n\u003c/p\u003e\n\u003cp\u003edoes indicate that the project has yet to be fully endorsed by the ASF.\n\u003c/p\u003e\n\u003cp\u003eSee the Apache Tika Incubation Status page for the current incubation status.\n\u003c/p\u003e\n\u003cp\u003eLatest News\n\u003c/p\u003e\n\u003cp\u003eMarch 22nd, 2007: Apache Tika project started\n\u003c/p\u003e\n\u003cp\u003eThe Apache Tika project was formally started when the Tika proposal was accepted by the Apache \n\u003c/p\u003e\n\u003cp\u003eIncubator PMC. \u003c/p\u003e\n\u003cp /\u003e\n\u003c/div\u003e\n\u003c/body\u003e\u003c/html\u003e", - "X-TIKA:parse_time_millis": "500", + "tk:content-handler": "ToXMLContentHandler", + "tk:content": "\u003chtml xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:modify_annotations\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print_degraded\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"dc:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"dcterms:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dcterms:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"Last-Modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dc:format\" content\u003d\"application/pdf; version\u003d1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator_tool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:fill_in_form\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"meta:save-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"pdf:encrypted\" content\u003d\"false\" /\u003e\n\u003cmeta name\u003d\"dc:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"Content-Length\" content\u003d\"34824\" /\u003e\n\u003cmeta name\u003d\"Content-Type\" content\u003d\"application/pdf\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.DefaultParser\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.pdf.PDFParser\" /\u003e\n\u003cmeta name\u003d\"meta:author\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"meta:creation-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_for_accessibility\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:assemble_document\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"xmpTPg:NPages\" content\u003d\"1\" /\u003e\n\u003cmeta name\u003d\"resourceName\" content\u003d\"testPDF.pdf\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_content\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_modify\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:producer\" content\u003d\"Mac OS X 10.4.10 Quartz PDFContext\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003ctitle\u003eApache Tika - Apache Tika\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\u003cdiv class\u003d\"page\"\u003e\u003cp /\u003e\n\u003cp\u003eApache Tika - Apache Tika http://incubator.apache.org/tika/\n\u003c/p\u003e\n\u003cp\u003e1 of 1 15.9.2007 11:02\n\u003c/p\u003e\n\u003cp\u003eTika - Content Analysis Toolkit\n\u003c/p\u003e\n\u003cp\u003eApache Tika is a toolkit for detecting and extracting metadata and structured text content \n\u003c/p\u003e\n\u003cp\u003efrom various documents using existing parser libraries. \n\u003c/p\u003e\n\u003cp\u003eApache Tika is an effort undergoing incubation at The Apache Software Foundation (ASF), \n\u003c/p\u003e\n\u003cp\u003esponsored by the Apache Lucene PMC. Incubation is required of all newly accepted projects \n\u003c/p\u003e\n\u003cp\u003euntil a further review indicates that the infrastructure, communications, and decision making \n\u003c/p\u003e\n\u003cp\u003eprocess have stabilized in a manner consistent with other successful ASF projects. While \n\u003c/p\u003e\n\u003cp\u003eincubation status is not necessarily a reflection of the completeness or stability of the code, it \n\u003c/p\u003e\n\u003cp\u003edoes indicate that the project has yet to be fully endorsed by the ASF.\n\u003c/p\u003e\n\u003cp\u003eSee the Apache Tika Incubation Status page for the current incubation status.\n\u003c/p\u003e\n\u003cp\u003eLatest News\n\u003c/p\u003e\n\u003cp\u003eMarch 22nd, 2007: Apache Tika project started\n\u003c/p\u003e\n\u003cp\u003eThe Apache Tika project was formally started when the Tika proposal was accepted by the Apache \n\u003c/p\u003e\n\u003cp\u003eIncubator PMC. \u003c/p\u003e\n\u003cp /\u003e\n\u003c/div\u003e\n\u003c/body\u003e\u003c/html\u003e", + "tk:parse-time-millis": "500", "access_permission:assemble_document": "true", "access_permission:can_modify": "true", "access_permission:can_print": "true", diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file16_badTags.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file16_badTags.json index 5c6272e43d2..4aaa07b47d9 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file16_badTags.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file16_badTags.json @@ -7,9 +7,9 @@ "org.apache.tika.parser.DefaultParser", "org.apache.tika.parser.pdf.PDFParser" ], - "X-TIKA:content_handler": "ToXMLContentHandler", - "X-TIKA:content": "\u003chtml xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" meta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" /\u003e\n\u003c\u003c\u003c\u003c\u003cmeta name\u003d\"access_permission:modify_annotations\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print_degraded\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"dc:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"dcterms:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dcterms:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"Last-Modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dc:format\" content\u003d\"application/pdf; version\u003d1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator_tool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:fill_in_form\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"meta:save-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"pdf:encrypted\" content\u003d\"false\" /\u003e\n\u003cmeta name\u003d\"dc:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"Content-Length\" content\u003d\"34824\" /\u003e\n\u003cmeta name\u003d\"Content-Type\" content\u003d\"application/pdf\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.DefaultParser\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.pdf.PDFParser\" /\u003e\n\u003cmeta name\u003d\"meta:author\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"meta:creation-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_for_accessibility\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:assemble_document\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"xmpTPg:NPages\" content\u003d\"1\" /\u003e\n\u003cmeta name\u003d\"resourceName\" content\u003d\"testPDF.pdf\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_content\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_modify\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:producer\" content\u003d\"Mac OS X 10.4.10 Quartz PDFContext\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003ctitle\u003eApache Tika - Apache Tika\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\u003cdiv class\u003d\"page\"\u003e\u003cp /\u003e\n\u003cp\u003eApache Tika - Apache Tika http://incubator.apache.org/tika/\n\u003c/p\u003e\n\u003cp\u003e1 of 1 15.9.2007 11:02\n\u003c/p\u003e\n\u003cp\u003eTika - Content Analysis Toolkit\n\u003c/p\u003e\n\u003cp\u003eApache Tika is a toolkit for detecting and extracting metadata and structured text content \n\u003c/p\u003e\n\u003cp\u003efrom various documents using existing parser libraries. \n\u003c/p\u003e\n\u003cp\u003eApache Tika is an effort undergoing incubation at The Apache Software Foundation (ASF), \n\u003c/p\u003e\n\u003cp\u003esponsored by the Apache Lucene PMC. Incubation is required of all newly accepted projects \n\u003c/p\u003e\n\u003cp\u003euntil a further review indicates that the infrastructure, communications, and decision making \n\u003c/p\u003e\n\u003cp\u003eprocess have stabilized in a manner consistent with other successful ASF projects. While \n\u003c/p\u003e\n\u003cp\u003eincubation status is not necessarily a reflection of the completeness or stability of the code, it \n\u003c/p\u003e\n\u003cp\u003edoes indicate that the project has yet to be fully endorsed by the ASF.\n\u003c/p\u003e\n\u003cp\u003eSee the Apache Tika Incubation Status page for the current incubation status.\n\u003c/p\u003e\n\u003cp\u003eLatest News\n\u003c/p\u003e\n\u003cp\u003eMarch 22nd, 2007: Apache Tika project started\n\u003c/p\u003e\n\u003cp\u003eThe Apache Tika project was formally started when the Tika proposal was accepted by the Apache \n\u003c/p\u003e\n\u003cp\u003eIncubator PMC. \u003c/p\u003e\n\u003cp /\u003e\n\u003c/div\u003e\n\u003c/body\u003e\u003c/html\u003e", - "X-TIKA:parse_time_millis": "500", + "tk:content-handler": "ToXMLContentHandler", + "tk:content": "\u003chtml xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" meta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" /\u003e\n\u003c\u003c\u003c\u003c\u003cmeta name\u003d\"access_permission:modify_annotations\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print_degraded\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"dc:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"dcterms:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dcterms:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"Last-Modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dc:format\" content\u003d\"application/pdf; version\u003d1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator_tool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:fill_in_form\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"meta:save-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"pdf:encrypted\" content\u003d\"false\" /\u003e\n\u003cmeta name\u003d\"dc:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"Content-Length\" content\u003d\"34824\" /\u003e\n\u003cmeta name\u003d\"Content-Type\" content\u003d\"application/pdf\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.DefaultParser\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.pdf.PDFParser\" /\u003e\n\u003cmeta name\u003d\"meta:author\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"meta:creation-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_for_accessibility\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:assemble_document\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"xmpTPg:NPages\" content\u003d\"1\" /\u003e\n\u003cmeta name\u003d\"resourceName\" content\u003d\"testPDF.pdf\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_content\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_modify\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:producer\" content\u003d\"Mac OS X 10.4.10 Quartz PDFContext\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003ctitle\u003eApache Tika - Apache Tika\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\u003cdiv class\u003d\"page\"\u003e\u003cp /\u003e\n\u003cp\u003eApache Tika - Apache Tika http://incubator.apache.org/tika/\n\u003c/p\u003e\n\u003cp\u003e1 of 1 15.9.2007 11:02\n\u003c/p\u003e\n\u003cp\u003eTika - Content Analysis Toolkit\n\u003c/p\u003e\n\u003cp\u003eApache Tika is a toolkit for detecting and extracting metadata and structured text content \n\u003c/p\u003e\n\u003cp\u003efrom various documents using existing parser libraries. \n\u003c/p\u003e\n\u003cp\u003eApache Tika is an effort undergoing incubation at The Apache Software Foundation (ASF), \n\u003c/p\u003e\n\u003cp\u003esponsored by the Apache Lucene PMC. Incubation is required of all newly accepted projects \n\u003c/p\u003e\n\u003cp\u003euntil a further review indicates that the infrastructure, communications, and decision making \n\u003c/p\u003e\n\u003cp\u003eprocess have stabilized in a manner consistent with other successful ASF projects. While \n\u003c/p\u003e\n\u003cp\u003eincubation status is not necessarily a reflection of the completeness or stability of the code, it \n\u003c/p\u003e\n\u003cp\u003edoes indicate that the project has yet to be fully endorsed by the ASF.\n\u003c/p\u003e\n\u003cp\u003eSee the Apache Tika Incubation Status page for the current incubation status.\n\u003c/p\u003e\n\u003cp\u003eLatest News\n\u003c/p\u003e\n\u003cp\u003eMarch 22nd, 2007: Apache Tika project started\n\u003c/p\u003e\n\u003cp\u003eThe Apache Tika project was formally started when the Tika proposal was accepted by the Apache \n\u003c/p\u003e\n\u003cp\u003eIncubator PMC. \u003c/p\u003e\n\u003cp /\u003e\n\u003c/div\u003e\n\u003c/body\u003e\u003c/html\u003e", + "tk:parse-time-millis": "500", "access_permission:assemble_document": "true", "access_permission:can_modify": "true", "access_permission:can_print": "true", diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file17_tagsOutOfOrder.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file17_tagsOutOfOrder.json index 97afec8adcd..419ba751b5e 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file17_tagsOutOfOrder.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file17_tagsOutOfOrder.json @@ -7,9 +7,9 @@ "org.apache.tika.parser.DefaultParser", "org.apache.tika.parser.pdf.PDFParser" ], - "X-TIKA:content_handler": "ToXMLContentHandler", - "X-TIKA:content": "\u003chtml xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:modify_annotations\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print_degraded\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"dc:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"dcterms:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dcterms:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"Last-Modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dc:format\" content\u003d\"application/pdf; version\u003d1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator_tool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:fill_in_form\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"meta:save-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"pdf:encrypted\" content\u003d\"false\" /\u003e\n\u003cmeta name\u003d\"dc:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"Content-Length\" content\u003d\"34824\" /\u003e\n\u003cmeta name\u003d\"Content-Type\" content\u003d\"application/pdf\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.DefaultParser\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.pdf.PDFParser\" /\u003e\n\u003cmeta name\u003d\"meta:author\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"meta:creation-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_for_accessibility\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:assemble_document\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"xmpTPg:NPages\" content\u003d\"1\" /\u003e\n\u003cmeta name\u003d\"resourceName\" content\u003d\"testPDF.pdf\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_content\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_modify\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:producer\" content\u003d\"Mac OS X 10.4.10 Quartz PDFContext\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003ctitle\u003eApache Tika - Apache Tika\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\u003cdiv class\u003d\"page\"\u003e\u003cp /\u003e\n\u003cp\u003eApache Tika - Apache Tika http://incubator.apache.org/tika/\n\u003c/p\u003e\n\u003cp\u003e1 of 1 15.9.2007 11:02\n\u003c/p\u003e\n\u003cp\u003eTika - Content Analysis Toolkit\n\u003c/p\u003e\n\u003cp\u003eApache Tika is a toolkit for detecting and extracting metadata and structured text content \n\u003c/p\u003e\n\u003cp\u003efrom various documents using existing parser libraries. \n\u003c/p\u003e\n\u003cp\u003eApache Tika is an effort undergoing incubation at The Apache Software Foundation (ASF), \n\u003c/p\u003e\n\u003cp\u003esponsored by the Apache Lucene PMC. Incubation is required of all newly accepted projects \n\u003c/p\u003e\n\u003cp\u003euntil a further review indicates that the infrastructure, communications, and decision making \n\u003c/p\u003e\n\u003cp\u003eprocess have stabilized in a manner consistent with other successful ASF projects. While \n\u003c/p\u003e\n\u003cp\u003eincubation \u003cb\u003e\u003ci\u003estatus \u003c/b\u003e\u003c/i\u003eis not necessarily a reflection of the completeness or stability of the code, it \n\u003c/p\u003e\n\u003cp\u003edoes indicate that the project has yet to be fully endorsed by the ASF.\n\u003c/p\u003e\n\u003cp\u003eSee the Apache Tika Incubation Status page for the current incubation status.\n\u003c/p\u003e\n\u003cp\u003eLatest News\n\u003c/p\u003e\n\u003cp\u003eMarch 22nd, 2007: Apache Tika project started\n\u003c/p\u003e\n\u003cp\u003eThe Apache Tika project was formally started when the Tika proposal was accepted by the Apache \n\u003c/p\u003e\n\u003cp\u003eIncubator PMC. \u003c/p\u003e\n\u003cp /\u003e\n\u003c/div\u003e\n\u003c/body\u003e\u003c/html\u003e", - "X-TIKA:parse_time_millis": "500", + "tk:content-handler": "ToXMLContentHandler", + "tk:content": "\u003chtml xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:modify_annotations\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print_degraded\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"dc:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"dcterms:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dcterms:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"Last-Modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dc:format\" content\u003d\"application/pdf; version\u003d1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator_tool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:fill_in_form\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"meta:save-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"pdf:encrypted\" content\u003d\"false\" /\u003e\n\u003cmeta name\u003d\"dc:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"Content-Length\" content\u003d\"34824\" /\u003e\n\u003cmeta name\u003d\"Content-Type\" content\u003d\"application/pdf\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.DefaultParser\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.pdf.PDFParser\" /\u003e\n\u003cmeta name\u003d\"meta:author\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"meta:creation-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_for_accessibility\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:assemble_document\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"xmpTPg:NPages\" content\u003d\"1\" /\u003e\n\u003cmeta name\u003d\"resourceName\" content\u003d\"testPDF.pdf\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_content\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_modify\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:producer\" content\u003d\"Mac OS X 10.4.10 Quartz PDFContext\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003ctitle\u003eApache Tika - Apache Tika\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\u003cdiv class\u003d\"page\"\u003e\u003cp /\u003e\n\u003cp\u003eApache Tika - Apache Tika http://incubator.apache.org/tika/\n\u003c/p\u003e\n\u003cp\u003e1 of 1 15.9.2007 11:02\n\u003c/p\u003e\n\u003cp\u003eTika - Content Analysis Toolkit\n\u003c/p\u003e\n\u003cp\u003eApache Tika is a toolkit for detecting and extracting metadata and structured text content \n\u003c/p\u003e\n\u003cp\u003efrom various documents using existing parser libraries. \n\u003c/p\u003e\n\u003cp\u003eApache Tika is an effort undergoing incubation at The Apache Software Foundation (ASF), \n\u003c/p\u003e\n\u003cp\u003esponsored by the Apache Lucene PMC. Incubation is required of all newly accepted projects \n\u003c/p\u003e\n\u003cp\u003euntil a further review indicates that the infrastructure, communications, and decision making \n\u003c/p\u003e\n\u003cp\u003eprocess have stabilized in a manner consistent with other successful ASF projects. While \n\u003c/p\u003e\n\u003cp\u003eincubation \u003cb\u003e\u003ci\u003estatus \u003c/b\u003e\u003c/i\u003eis not necessarily a reflection of the completeness or stability of the code, it \n\u003c/p\u003e\n\u003cp\u003edoes indicate that the project has yet to be fully endorsed by the ASF.\n\u003c/p\u003e\n\u003cp\u003eSee the Apache Tika Incubation Status page for the current incubation status.\n\u003c/p\u003e\n\u003cp\u003eLatest News\n\u003c/p\u003e\n\u003cp\u003eMarch 22nd, 2007: Apache Tika project started\n\u003c/p\u003e\n\u003cp\u003eThe Apache Tika project was formally started when the Tika proposal was accepted by the Apache \n\u003c/p\u003e\n\u003cp\u003eIncubator PMC. \u003c/p\u003e\n\u003cp /\u003e\n\u003c/div\u003e\n\u003c/body\u003e\u003c/html\u003e", + "tk:parse-time-millis": "500", "access_permission:assemble_document": "true", "access_permission:can_modify": "true", "access_permission:can_print": "true", diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file2_attachANotB.doc.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file2_attachANotB.doc.json index 67f4f2ceaa4..3b94b4aacd8 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file2_attachANotB.doc.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file2_attachANotB.doc.json @@ -1,12 +1,12 @@ [ { "Content-Type": "text/plain", - "X-TIKA:content": "the quick brown fox fox fox jumped over the lazy lazy dog" + "tk:content": "the quick brown fox fox fox jumped over the lazy lazy dog" }, { "Content-Type": "text/plain", - "X-TIKA:embedded_resource_path": "inner.txt", - "X-TIKA:content": "attachment contents", - "X-TIKA:embedded_depth": "1" + "tk:embedded-resource-path": "inner.txt", + "tk:content": "attachment contents", + "tk:embedded-depth": "1" } ] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file3_attachBNotA.doc.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file3_attachBNotA.doc.json index 36a84bed7c7..c8f94215a20 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file3_attachBNotA.doc.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file3_attachBNotA.doc.json @@ -1,6 +1,6 @@ [ { "Content-Type": "text/plain", - "X-TIKA:content": "the quick brown fox fox fox jumped over the lazy lazy dog" + "tk:content": "the quick brown fox fox fox jumped over the lazy lazy dog" } ] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file4_emptyB.pdf.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file4_emptyB.pdf.json index 36a84bed7c7..c8f94215a20 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file4_emptyB.pdf.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file4_emptyB.pdf.json @@ -1,6 +1,6 @@ [ { "Content-Type": "text/plain", - "X-TIKA:content": "the quick brown fox fox fox jumped over the lazy lazy dog" + "tk:content": "the quick brown fox fox fox jumped over the lazy lazy dog" } ] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file6_accessEx.pdf.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file6_accessEx.pdf.json index d9bfad0f369..beeae5ed669 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file6_accessEx.pdf.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file6_accessEx.pdf.json @@ -5,7 +5,7 @@ "org.apache.tika.parser.DefaultParser", "org.apache.tika.parser.pdf.PDFParser" ], - "X-TIKA:EXCEPTION:container_exception": "org.apache.tika.exception.AccessPermissionException: Content extraction is not allowed.\n\tat org.apache.tika.parser.pdf.AccessChecker.check(AccessChecker.java:77)\n\tat org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:147)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:270)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:270)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120)\n\tat org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:130)\n\tat org.apache.tika.batch.fs.RecursiveParserWrapperFSConsumer.processFileResource(RecursiveParserWrapperFSConsumer.java:123)\n\tat org.apache.tika.batch.FileResourceConsumer._processFileResource(FileResourceConsumer.java:171)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:104)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:44)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n\tat java.lang.Thread.run(Thread.java:745)\n", + "tk:exception:container-exception": "org.apache.tika.exception.AccessPermissionException: Content extraction is not allowed.\n\tat org.apache.tika.parser.pdf.AccessChecker.check(AccessChecker.java:77)\n\tat org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:147)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:270)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:270)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120)\n\tat org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:130)\n\tat org.apache.tika.batch.fs.RecursiveParserWrapperFSConsumer.processFileResource(RecursiveParserWrapperFSConsumer.java:123)\n\tat org.apache.tika.batch.FileResourceConsumer._processFileResource(FileResourceConsumer.java:171)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:104)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:44)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n\tat java.lang.Thread.run(Thread.java:745)\n", "access_permission:assemble_document": "false", "access_permission:can_modify": "false", "access_permission:can_print": "true", diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file7_badJson.pdf.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file7_badJson.pdf.json index 7393ed8f2a3..d12c9f4290e 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file7_badJson.pdf.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file7_badJson.pdf.json @@ -1,7 +1,7 @@ [ { "Content-Type": "text/plain", - "X-TIKA:content": 2, + "tk:content": 2, 100 } ] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file8_IOEx.pdf.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file8_IOEx.pdf.json index ccd8b88c881..66bf7d5043d 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file8_IOEx.pdf.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file8_IOEx.pdf.json @@ -6,7 +6,7 @@ "org.apache.tika.parser.DefaultParser", "org.apache.tika.parser.pdf.PDFParser" ], - "X-TIKA:EXCEPTION:runtime": "java.lang.RuntimeException: java.io.IOException: Value is not an integer: 8546736428538085463808\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser$1.tryNext(PDFStreamParser.java:186)\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser$1.hasNext(PDFStreamParser.java:193)\n\tat org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:255)\n\tat org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:235)\n\tat org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:215)\n\tat org.apache.pdfbox.util.PDFTextStripper.processPage(PDFTextStripper.java:456)\n\tat org.apache.pdfbox.util.PDFTextStripper.processPages(PDFTextStripper.java:381)\n\tat org.apache.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:340)\n\tat org.apache.tika.parser.pdf.PDF2XHTML.process(PDF2XHTML.java:106)\n\tat org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:148)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:247)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:247)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120)\n\tat org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:130)\n\tat org.apache.tika.batch.FileResourceConsumer.parse(FileResourceConsumer.java:410)\n\tat org.apache.tika.batch.fs.RecursiveParserWrapperFSConsumer.processFileResource(RecursiveParserWrapperFSConsumer.java:106)\n\tat org.apache.tika.batch.FileResourceConsumer._processFileResource(FileResourceConsumer.java:182)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:115)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:49)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n\tat java.lang.Thread.run(Thread.java:745)\nCaused by: java.io.IOException: Value is not an integer: 8546736428538085463808\n\tat org.apache.pdfbox.cos.COSNumber.get(COSNumber.java:104)\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser.parseNextToken(PDFStreamParser.java:350)\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser.access$000(PDFStreamParser.java:46)\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser$1.tryNext(PDFStreamParser.java:181)\n\t... 24 more\n", + "tk:exception:runtime": "java.lang.RuntimeException: java.io.IOException: Value is not an integer: 8546736428538085463808\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser$1.tryNext(PDFStreamParser.java:186)\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser$1.hasNext(PDFStreamParser.java:193)\n\tat org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:255)\n\tat org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:235)\n\tat org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:215)\n\tat org.apache.pdfbox.util.PDFTextStripper.processPage(PDFTextStripper.java:456)\n\tat org.apache.pdfbox.util.PDFTextStripper.processPages(PDFTextStripper.java:381)\n\tat org.apache.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:340)\n\tat org.apache.tika.parser.pdf.PDF2XHTML.process(PDF2XHTML.java:106)\n\tat org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:148)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:247)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:247)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120)\n\tat org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:130)\n\tat org.apache.tika.batch.FileResourceConsumer.parse(FileResourceConsumer.java:410)\n\tat org.apache.tika.batch.fs.RecursiveParserWrapperFSConsumer.processFileResource(RecursiveParserWrapperFSConsumer.java:106)\n\tat org.apache.tika.batch.FileResourceConsumer._processFileResource(FileResourceConsumer.java:182)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:115)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:49)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n\tat java.lang.Thread.run(Thread.java:745)\nCaused by: java.io.IOException: Value is not an integer: 8546736428538085463808\n\tat org.apache.pdfbox.cos.COSNumber.get(COSNumber.java:104)\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser.parseNextToken(PDFStreamParser.java:350)\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser.access$000(PDFStreamParser.java:46)\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser$1.tryNext(PDFStreamParser.java:181)\n\t... 24 more\n", "access_permission:assemble_document": "true", "access_permission:can_modify": "true", "access_permission:can_print": "true", diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file1.pdf.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file1.pdf.json index 2712e980b89..6a36bc11462 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file1.pdf.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file1.pdf.json @@ -1,6 +1,6 @@ [ { "Content-Type": "text/plain", - "X-TIKA:content": "the quick brown fox jumped over the lazy dog and then ran into the dark forest" + "tk:content": "the quick brown fox jumped over the lazy dog and then ran into the dark forest" } ] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file12_es.txt.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file12_es.txt.json index 5ffd824a9a6..04c90381340 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file12_es.txt.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file12_es.txt.json @@ -1,6 +1,6 @@ [ { "Content-Type": "text/plain", - "X-TIKA:content": "El zorro marrón rápido saltó sobre el perro. El zorro marrón rápido saltó sobre el perro. El zorro marrón rápido saltó sobre el perro" + "tk:content": "El zorro marrón rápido saltó sobre el perro. El zorro marrón rápido saltó sobre el perro. El zorro marrón rápido saltó sobre el perro" } ] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file14_diffAttachOrder.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file14_diffAttachOrder.json index 76bc8a81ead..8de37a389c5 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file14_diffAttachOrder.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file14_diffAttachOrder.json @@ -1,21 +1,21 @@ [ { "Content-Type": "text/plain", - "X-TIKA:content": "the quick brown fox fox fox jumped over the lazy lazy dog", - "X-TIKA:digest:MD5": "471d98383e9f40444e5ecf821f2c8351" + "tk:content": "the quick brown fox fox fox jumped over the lazy lazy dog", + "tk:digest:MD5": "471d98383e9f40444e5ecf821f2c8351" }, { "Content-Type": "text/plain", - "X-TIKA:embedded_resource_path": "inner2.txt", - "X-TIKA:content": "o p q r s t u v w x y z", - "X-TIKA:digest:MD5": "471d98383e9f40444e5ecf821f2c8353", - "X-TIKA:embedded_depth": "1" + "tk:embedded-resource-path": "inner2.txt", + "tk:content": "o p q r s t u v w x y z", + "tk:digest:MD5": "471d98383e9f40444e5ecf821f2c8353", + "tk:embedded-depth": "1" }, { "Content-Type": "text/plain", - "X-TIKA:embedded_resource_path": "inner1.txt", - "X-TIKA:content": "a b c d e f g h i j k l m n", - "X-TIKA:digest:MD5": "471d98383e9f40444e5ecf821f2c8354", - "X-TIKA:embedded_depth": "1" + "tk:embedded-resource-path": "inner1.txt", + "tk:content": "a b c d e f g h i j k l m n", + "tk:digest:MD5": "471d98383e9f40444e5ecf821f2c8354", + "tk:embedded-depth": "1" } ] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file2_attachANotB.doc.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file2_attachANotB.doc.json index 36a84bed7c7..c8f94215a20 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file2_attachANotB.doc.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file2_attachANotB.doc.json @@ -1,6 +1,6 @@ [ { "Content-Type": "text/plain", - "X-TIKA:content": "the quick brown fox fox fox jumped over the lazy lazy dog" + "tk:content": "the quick brown fox fox fox jumped over the lazy lazy dog" } ] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file3_attachBNotA.doc.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file3_attachBNotA.doc.json index 67f4f2ceaa4..3b94b4aacd8 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file3_attachBNotA.doc.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file3_attachBNotA.doc.json @@ -1,12 +1,12 @@ [ { "Content-Type": "text/plain", - "X-TIKA:content": "the quick brown fox fox fox jumped over the lazy lazy dog" + "tk:content": "the quick brown fox fox fox jumped over the lazy lazy dog" }, { "Content-Type": "text/plain", - "X-TIKA:embedded_resource_path": "inner.txt", - "X-TIKA:content": "attachment contents", - "X-TIKA:embedded_depth": "1" + "tk:embedded-resource-path": "inner.txt", + "tk:content": "attachment contents", + "tk:embedded-depth": "1" } ] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file5_emptyA.pdf.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file5_emptyA.pdf.json index 36a84bed7c7..c8f94215a20 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file5_emptyA.pdf.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file5_emptyA.pdf.json @@ -1,6 +1,6 @@ [ { "Content-Type": "text/plain", - "X-TIKA:content": "the quick brown fox fox fox jumped over the lazy lazy dog" + "tk:content": "the quick brown fox fox fox jumped over the lazy lazy dog" } ] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file6_accessEx.pdf.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file6_accessEx.pdf.json index d9bfad0f369..beeae5ed669 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file6_accessEx.pdf.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file6_accessEx.pdf.json @@ -5,7 +5,7 @@ "org.apache.tika.parser.DefaultParser", "org.apache.tika.parser.pdf.PDFParser" ], - "X-TIKA:EXCEPTION:container_exception": "org.apache.tika.exception.AccessPermissionException: Content extraction is not allowed.\n\tat org.apache.tika.parser.pdf.AccessChecker.check(AccessChecker.java:77)\n\tat org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:147)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:270)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:270)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120)\n\tat org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:130)\n\tat org.apache.tika.batch.fs.RecursiveParserWrapperFSConsumer.processFileResource(RecursiveParserWrapperFSConsumer.java:123)\n\tat org.apache.tika.batch.FileResourceConsumer._processFileResource(FileResourceConsumer.java:171)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:104)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:44)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n\tat java.lang.Thread.run(Thread.java:745)\n", + "tk:exception:container-exception": "org.apache.tika.exception.AccessPermissionException: Content extraction is not allowed.\n\tat org.apache.tika.parser.pdf.AccessChecker.check(AccessChecker.java:77)\n\tat org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:147)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:270)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:270)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120)\n\tat org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:130)\n\tat org.apache.tika.batch.fs.RecursiveParserWrapperFSConsumer.processFileResource(RecursiveParserWrapperFSConsumer.java:123)\n\tat org.apache.tika.batch.FileResourceConsumer._processFileResource(FileResourceConsumer.java:171)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:104)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:44)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n\tat java.lang.Thread.run(Thread.java:745)\n", "access_permission:assemble_document": "false", "access_permission:can_modify": "false", "access_permission:can_print": "true", diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file8_IOEx.pdf.json b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file8_IOEx.pdf.json index ccd8b88c881..66bf7d5043d 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file8_IOEx.pdf.json +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file8_IOEx.pdf.json @@ -6,7 +6,7 @@ "org.apache.tika.parser.DefaultParser", "org.apache.tika.parser.pdf.PDFParser" ], - "X-TIKA:EXCEPTION:runtime": "java.lang.RuntimeException: java.io.IOException: Value is not an integer: 8546736428538085463808\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser$1.tryNext(PDFStreamParser.java:186)\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser$1.hasNext(PDFStreamParser.java:193)\n\tat org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:255)\n\tat org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:235)\n\tat org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:215)\n\tat org.apache.pdfbox.util.PDFTextStripper.processPage(PDFTextStripper.java:456)\n\tat org.apache.pdfbox.util.PDFTextStripper.processPages(PDFTextStripper.java:381)\n\tat org.apache.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:340)\n\tat org.apache.tika.parser.pdf.PDF2XHTML.process(PDF2XHTML.java:106)\n\tat org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:148)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:247)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:247)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120)\n\tat org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:130)\n\tat org.apache.tika.batch.FileResourceConsumer.parse(FileResourceConsumer.java:410)\n\tat org.apache.tika.batch.fs.RecursiveParserWrapperFSConsumer.processFileResource(RecursiveParserWrapperFSConsumer.java:106)\n\tat org.apache.tika.batch.FileResourceConsumer._processFileResource(FileResourceConsumer.java:182)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:115)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:49)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n\tat java.lang.Thread.run(Thread.java:745)\nCaused by: java.io.IOException: Value is not an integer: 8546736428538085463808\n\tat org.apache.pdfbox.cos.COSNumber.get(COSNumber.java:104)\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser.parseNextToken(PDFStreamParser.java:350)\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser.access$000(PDFStreamParser.java:46)\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser$1.tryNext(PDFStreamParser.java:181)\n\t... 24 more\n", + "tk:exception:runtime": "java.lang.RuntimeException: java.io.IOException: Value is not an integer: 8546736428538085463808\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser$1.tryNext(PDFStreamParser.java:186)\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser$1.hasNext(PDFStreamParser.java:193)\n\tat org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:255)\n\tat org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:235)\n\tat org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:215)\n\tat org.apache.pdfbox.util.PDFTextStripper.processPage(PDFTextStripper.java:456)\n\tat org.apache.pdfbox.util.PDFTextStripper.processPages(PDFTextStripper.java:381)\n\tat org.apache.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:340)\n\tat org.apache.tika.parser.pdf.PDF2XHTML.process(PDF2XHTML.java:106)\n\tat org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:148)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:247)\n\tat org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:247)\n\tat org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120)\n\tat org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:130)\n\tat org.apache.tika.batch.FileResourceConsumer.parse(FileResourceConsumer.java:410)\n\tat org.apache.tika.batch.fs.RecursiveParserWrapperFSConsumer.processFileResource(RecursiveParserWrapperFSConsumer.java:106)\n\tat org.apache.tika.batch.FileResourceConsumer._processFileResource(FileResourceConsumer.java:182)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:115)\n\tat org.apache.tika.batch.FileResourceConsumer.call(FileResourceConsumer.java:49)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n\tat java.lang.Thread.run(Thread.java:745)\nCaused by: java.io.IOException: Value is not an integer: 8546736428538085463808\n\tat org.apache.pdfbox.cos.COSNumber.get(COSNumber.java:104)\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser.parseNextToken(PDFStreamParser.java:350)\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser.access$000(PDFStreamParser.java:46)\n\tat org.apache.pdfbox.pdfparser.PDFStreamParser$1.tryNext(PDFStreamParser.java:181)\n\t... 24 more\n", "access_permission:assemble_document": "true", "access_permission:can_modify": "true", "access_permission:can_print": "true", diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file12_es.txt b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file12_es.txt index 5ffd824a9a6..04c90381340 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file12_es.txt +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file12_es.txt @@ -1,6 +1,6 @@ [ { "Content-Type": "text/plain", - "X-TIKA:content": "El zorro marrón rápido saltó sobre el perro. El zorro marrón rápido saltó sobre el perro. El zorro marrón rápido saltó sobre el perro" + "tk:content": "El zorro marrón rápido saltó sobre el perro. El zorro marrón rápido saltó sobre el perro. El zorro marrón rápido saltó sobre el perro" } ] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file13_attachANotB.doc b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file13_attachANotB.doc index 15bc592a5b9..8bb3cc24cd1 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file13_attachANotB.doc +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file13_attachANotB.doc @@ -2,11 +2,11 @@ { "Content-Type": "text/plain", "_comment": "simplified", - "X-TIKA:content": "调整每一个心脏和每个声音,投标每个护理提取;让大家一起欢乐,赞美老拿骚.调整每一个心脏和每个声音,投标每个护理提取;让大家一起欢乐,赞美老拿骚 狐狸狐狸狐狸 " + "tk:content": "调整每一个心脏和每个声音,投标每个护理提取;让大家一起欢乐,赞美老拿骚.调整每一个心脏和每个声音,投标每个护理提取;让大家一起欢乐,赞美老拿骚 狐狸狐狸狐狸 " }, { "Content-Type": "text/plain", - "X-TIKA:embedded_resource_path": "inner.txt", - "X-TIKA:content": "attachment contents" + "tk:embedded-resource-path": "inner.txt", + "tk:content": "attachment contents" } ] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file14_diffAttachOrder b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file14_diffAttachOrder index 25f0db9a18e..063037334af 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file14_diffAttachOrder +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file14_diffAttachOrder @@ -1,21 +1,21 @@ [ { "Content-Type": "text/plain", - "X-TIKA:content": "the quick brown fox fox fox jumped over the lazy lazy dog", - "X-TIKA:digest:MD5": "471d98383e9f40444e5ecf821f2c8351" + "tk:content": "the quick brown fox fox fox jumped over the lazy lazy dog", + "tk:digest:MD5": "471d98383e9f40444e5ecf821f2c8351" }, { "Content-Type": "text/plain", - "X-TIKA:embedded_resource_path": "/0", - "X-TIKA:content": "a b c d e f g h i j k l m n", - "X-TIKA:digest:MD5": "471d98383e9f40444e5ecf821f2c8354", - "X-TIKA:embedded_depth": "1" + "tk:embedded-resource-path": "/0", + "tk:content": "a b c d e f g h i j k l m n", + "tk:digest:MD5": "471d98383e9f40444e5ecf821f2c8354", + "tk:embedded-depth": "1" }, { "Content-Type": "text/plain", - "X-TIKA:embedded_resource_path": "/1", - "X-TIKA:content": "o p q r s t u v w x y z", - "X-TIKA:digest:MD5": "471d98383e9f40444e5ecf821f2c8353", - "X-TIKA:embedded_depth": "1" + "tk:embedded-resource-path": "/1", + "tk:content": "o p q r s t u v w x y z", + "tk:digest:MD5": "471d98383e9f40444e5ecf821f2c8353", + "tk:embedded-depth": "1" } ] \ No newline at end of file diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file15_tags b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file15_tags index 5af73db807a..9412d0b4870 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file15_tags +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file15_tags @@ -7,9 +7,9 @@ "org.apache.tika.parser.DefaultParser", "org.apache.tika.parser.pdf.PDFParser" ], - "X-TIKA:content_handler": "ToXMLContentHandler", - "X-TIKA:content": "\u003chtml xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:modify_annotations\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print_degraded\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"dc:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"dcterms:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dcterms:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"Last-Modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dc:format\" content\u003d\"application/pdf; version\u003d1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator_tool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:fill_in_form\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"meta:save-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"pdf:encrypted\" content\u003d\"false\" /\u003e\n\u003cmeta name\u003d\"dc:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"Content-Length\" content\u003d\"34824\" /\u003e\n\u003cmeta name\u003d\"Content-Type\" content\u003d\"application/pdf\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.DefaultParser\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.pdf.PDFParser\" /\u003e\n\u003cmeta name\u003d\"meta:author\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"meta:creation-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_for_accessibility\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:assemble_document\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"xmpTPg:NPages\" content\u003d\"1\" /\u003e\n\u003cmeta name\u003d\"resourceName\" content\u003d\"testPDF.pdf\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_content\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_modify\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:producer\" content\u003d\"Mac OS X 10.4.10 Quartz PDFContext\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003ctitle\u003eApache Tika - Apache Tika\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\u003cdiv class\u003d\"page\"\u003e\u003cp /\u003e\n\u003cp\u003eApache Tika - Apache Tika http://incubator.apache.org/tika/\n\u003c/p\u003e\n\u003cp\u003e1 of 1 15.9.2007 11:02\n\u003c/p\u003e\n\u003cp\u003eTika - Content Analysis Toolkit\n\u003c/p\u003e\n\u003cp\u003eApache Tika is a toolkit for detecting and extracting metadata and structured text content \n\u003c/p\u003e\n\u003cp\u003efrom various documents using existing parser libraries. \n\u003c/p\u003e\n\u003cp\u003eApache Tika is an effort undergoing incubation at The Apache Software Foundation (ASF), \n\u003c/p\u003e\n\u003cp\u003esponsored by the Apache Lucene PMC. Incubation is required of all newly accepted projects \n\u003c/p\u003e\n\u003cp\u003euntil a further review indicates that the infrastructure, communications, and decision making \n\u003c/p\u003e\n\u003cp\u003eprocess have stabilized in a manner consistent with other successful ASF projects. While \n\u003c/p\u003e\n\u003cp\u003eincubation status is not necessarily a reflection of the completeness or stability of the code, it \n\u003c/p\u003e\n\u003cp\u003edoes indicate that the project has yet to be fully endorsed by the ASF.\n\u003c/p\u003e\n\u003cp\u003eSee the Apache Tika Incubation Status page for the current incubation status.\n\u003c/p\u003e\n\u003cp\u003eLatest News\n\u003c/p\u003e\n\u003cp\u003eMarch 22nd, 2007: Apache Tika project started\n\u003c/p\u003e\n\u003cp\u003eThe Apache Tika project was formally started when the Tika proposal was accepted by the Apache \n\u003c/p\u003e\n\u003cp\u003eIncubator PMC. \u003c/p\u003e\n\u003cp /\u003e\n\u003c/div\u003e\n\u003c/body\u003e\u003c/html\u003e", - "X-TIKA:parse_time_millis": "500", + "tk:content-handler": "ToXMLContentHandler", + "tk:content": "\u003chtml xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:modify_annotations\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print_degraded\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"dc:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"dcterms:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dcterms:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"Last-Modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dc:format\" content\u003d\"application/pdf; version\u003d1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator_tool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:fill_in_form\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"meta:save-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"pdf:encrypted\" content\u003d\"false\" /\u003e\n\u003cmeta name\u003d\"dc:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"Content-Length\" content\u003d\"34824\" /\u003e\n\u003cmeta name\u003d\"Content-Type\" content\u003d\"application/pdf\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.DefaultParser\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.pdf.PDFParser\" /\u003e\n\u003cmeta name\u003d\"meta:author\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"meta:creation-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_for_accessibility\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:assemble_document\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"xmpTPg:NPages\" content\u003d\"1\" /\u003e\n\u003cmeta name\u003d\"resourceName\" content\u003d\"testPDF.pdf\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_content\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_modify\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:producer\" content\u003d\"Mac OS X 10.4.10 Quartz PDFContext\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003ctitle\u003eApache Tika - Apache Tika\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\u003cdiv class\u003d\"page\"\u003e\u003cp /\u003e\n\u003cp\u003eApache Tika - Apache Tika http://incubator.apache.org/tika/\n\u003c/p\u003e\n\u003cp\u003e1 of 1 15.9.2007 11:02\n\u003c/p\u003e\n\u003cp\u003eTika - Content Analysis Toolkit\n\u003c/p\u003e\n\u003cp\u003eApache Tika is a toolkit for detecting and extracting metadata and structured text content \n\u003c/p\u003e\n\u003cp\u003efrom various documents using existing parser libraries. \n\u003c/p\u003e\n\u003cp\u003eApache Tika is an effort undergoing incubation at The Apache Software Foundation (ASF), \n\u003c/p\u003e\n\u003cp\u003esponsored by the Apache Lucene PMC. Incubation is required of all newly accepted projects \n\u003c/p\u003e\n\u003cp\u003euntil a further review indicates that the infrastructure, communications, and decision making \n\u003c/p\u003e\n\u003cp\u003eprocess have stabilized in a manner consistent with other successful ASF projects. While \n\u003c/p\u003e\n\u003cp\u003eincubation status is not necessarily a reflection of the completeness or stability of the code, it \n\u003c/p\u003e\n\u003cp\u003edoes indicate that the project has yet to be fully endorsed by the ASF.\n\u003c/p\u003e\n\u003cp\u003eSee the Apache Tika Incubation Status page for the current incubation status.\n\u003c/p\u003e\n\u003cp\u003eLatest News\n\u003c/p\u003e\n\u003cp\u003eMarch 22nd, 2007: Apache Tika project started\n\u003c/p\u003e\n\u003cp\u003eThe Apache Tika project was formally started when the Tika proposal was accepted by the Apache \n\u003c/p\u003e\n\u003cp\u003eIncubator PMC. \u003c/p\u003e\n\u003cp /\u003e\n\u003c/div\u003e\n\u003c/body\u003e\u003c/html\u003e", + "tk:parse-time-millis": "500", "access_permission:assemble_document": "true", "access_permission:can_modify": "true", "access_permission:can_print": "true", diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file16_badTags b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file16_badTags index 5c6272e43d2..4aaa07b47d9 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file16_badTags +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file16_badTags @@ -7,9 +7,9 @@ "org.apache.tika.parser.DefaultParser", "org.apache.tika.parser.pdf.PDFParser" ], - "X-TIKA:content_handler": "ToXMLContentHandler", - "X-TIKA:content": "\u003chtml xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" meta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" /\u003e\n\u003c\u003c\u003c\u003c\u003cmeta name\u003d\"access_permission:modify_annotations\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print_degraded\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"dc:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"dcterms:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dcterms:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"Last-Modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dc:format\" content\u003d\"application/pdf; version\u003d1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator_tool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:fill_in_form\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"meta:save-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"pdf:encrypted\" content\u003d\"false\" /\u003e\n\u003cmeta name\u003d\"dc:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"Content-Length\" content\u003d\"34824\" /\u003e\n\u003cmeta name\u003d\"Content-Type\" content\u003d\"application/pdf\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.DefaultParser\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.pdf.PDFParser\" /\u003e\n\u003cmeta name\u003d\"meta:author\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"meta:creation-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_for_accessibility\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:assemble_document\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"xmpTPg:NPages\" content\u003d\"1\" /\u003e\n\u003cmeta name\u003d\"resourceName\" content\u003d\"testPDF.pdf\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_content\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_modify\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:producer\" content\u003d\"Mac OS X 10.4.10 Quartz PDFContext\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003ctitle\u003eApache Tika - Apache Tika\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\u003cdiv class\u003d\"page\"\u003e\u003cp /\u003e\n\u003cp\u003eApache Tika - Apache Tika http://incubator.apache.org/tika/\n\u003c/p\u003e\n\u003cp\u003e1 of 1 15.9.2007 11:02\n\u003c/p\u003e\n\u003cp\u003eTika - Content Analysis Toolkit\n\u003c/p\u003e\n\u003cp\u003eApache Tika is a toolkit for detecting and extracting metadata and structured text content \n\u003c/p\u003e\n\u003cp\u003efrom various documents using existing parser libraries. \n\u003c/p\u003e\n\u003cp\u003eApache Tika is an effort undergoing incubation at The Apache Software Foundation (ASF), \n\u003c/p\u003e\n\u003cp\u003esponsored by the Apache Lucene PMC. Incubation is required of all newly accepted projects \n\u003c/p\u003e\n\u003cp\u003euntil a further review indicates that the infrastructure, communications, and decision making \n\u003c/p\u003e\n\u003cp\u003eprocess have stabilized in a manner consistent with other successful ASF projects. While \n\u003c/p\u003e\n\u003cp\u003eincubation status is not necessarily a reflection of the completeness or stability of the code, it \n\u003c/p\u003e\n\u003cp\u003edoes indicate that the project has yet to be fully endorsed by the ASF.\n\u003c/p\u003e\n\u003cp\u003eSee the Apache Tika Incubation Status page for the current incubation status.\n\u003c/p\u003e\n\u003cp\u003eLatest News\n\u003c/p\u003e\n\u003cp\u003eMarch 22nd, 2007: Apache Tika project started\n\u003c/p\u003e\n\u003cp\u003eThe Apache Tika project was formally started when the Tika proposal was accepted by the Apache \n\u003c/p\u003e\n\u003cp\u003eIncubator PMC. \u003c/p\u003e\n\u003cp /\u003e\n\u003c/div\u003e\n\u003c/body\u003e\u003c/html\u003e", - "X-TIKA:parse_time_millis": "500", + "tk:content-handler": "ToXMLContentHandler", + "tk:content": "\u003chtml xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" meta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" /\u003e\n\u003c\u003c\u003c\u003c\u003cmeta name\u003d\"access_permission:modify_annotations\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print_degraded\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"dc:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"dcterms:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dcterms:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"Last-Modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dc:format\" content\u003d\"application/pdf; version\u003d1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator_tool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:fill_in_form\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"meta:save-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"pdf:encrypted\" content\u003d\"false\" /\u003e\n\u003cmeta name\u003d\"dc:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"Content-Length\" content\u003d\"34824\" /\u003e\n\u003cmeta name\u003d\"Content-Type\" content\u003d\"application/pdf\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.DefaultParser\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.pdf.PDFParser\" /\u003e\n\u003cmeta name\u003d\"meta:author\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"meta:creation-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_for_accessibility\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:assemble_document\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"xmpTPg:NPages\" content\u003d\"1\" /\u003e\n\u003cmeta name\u003d\"resourceName\" content\u003d\"testPDF.pdf\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_content\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_modify\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:producer\" content\u003d\"Mac OS X 10.4.10 Quartz PDFContext\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003ctitle\u003eApache Tika - Apache Tika\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\u003cdiv class\u003d\"page\"\u003e\u003cp /\u003e\n\u003cp\u003eApache Tika - Apache Tika http://incubator.apache.org/tika/\n\u003c/p\u003e\n\u003cp\u003e1 of 1 15.9.2007 11:02\n\u003c/p\u003e\n\u003cp\u003eTika - Content Analysis Toolkit\n\u003c/p\u003e\n\u003cp\u003eApache Tika is a toolkit for detecting and extracting metadata and structured text content \n\u003c/p\u003e\n\u003cp\u003efrom various documents using existing parser libraries. \n\u003c/p\u003e\n\u003cp\u003eApache Tika is an effort undergoing incubation at The Apache Software Foundation (ASF), \n\u003c/p\u003e\n\u003cp\u003esponsored by the Apache Lucene PMC. Incubation is required of all newly accepted projects \n\u003c/p\u003e\n\u003cp\u003euntil a further review indicates that the infrastructure, communications, and decision making \n\u003c/p\u003e\n\u003cp\u003eprocess have stabilized in a manner consistent with other successful ASF projects. While \n\u003c/p\u003e\n\u003cp\u003eincubation status is not necessarily a reflection of the completeness or stability of the code, it \n\u003c/p\u003e\n\u003cp\u003edoes indicate that the project has yet to be fully endorsed by the ASF.\n\u003c/p\u003e\n\u003cp\u003eSee the Apache Tika Incubation Status page for the current incubation status.\n\u003c/p\u003e\n\u003cp\u003eLatest News\n\u003c/p\u003e\n\u003cp\u003eMarch 22nd, 2007: Apache Tika project started\n\u003c/p\u003e\n\u003cp\u003eThe Apache Tika project was formally started when the Tika proposal was accepted by the Apache \n\u003c/p\u003e\n\u003cp\u003eIncubator PMC. \u003c/p\u003e\n\u003cp /\u003e\n\u003c/div\u003e\n\u003c/body\u003e\u003c/html\u003e", + "tk:parse-time-millis": "500", "access_permission:assemble_document": "true", "access_permission:can_modify": "true", "access_permission:can_print": "true", diff --git a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file17_tagsOutOfOrder b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file17_tagsOutOfOrder index 97afec8adcd..419ba751b5e 100644 --- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file17_tagsOutOfOrder +++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file17_tagsOutOfOrder @@ -7,9 +7,9 @@ "org.apache.tika.parser.DefaultParser", "org.apache.tika.parser.pdf.PDFParser" ], - "X-TIKA:content_handler": "ToXMLContentHandler", - "X-TIKA:content": "\u003chtml xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:modify_annotations\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print_degraded\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"dc:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"dcterms:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dcterms:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"Last-Modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dc:format\" content\u003d\"application/pdf; version\u003d1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator_tool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:fill_in_form\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"meta:save-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"pdf:encrypted\" content\u003d\"false\" /\u003e\n\u003cmeta name\u003d\"dc:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"Content-Length\" content\u003d\"34824\" /\u003e\n\u003cmeta name\u003d\"Content-Type\" content\u003d\"application/pdf\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.DefaultParser\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.pdf.PDFParser\" /\u003e\n\u003cmeta name\u003d\"meta:author\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"meta:creation-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_for_accessibility\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:assemble_document\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"xmpTPg:NPages\" content\u003d\"1\" /\u003e\n\u003cmeta name\u003d\"resourceName\" content\u003d\"testPDF.pdf\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_content\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_modify\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:producer\" content\u003d\"Mac OS X 10.4.10 Quartz PDFContext\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003ctitle\u003eApache Tika - Apache Tika\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\u003cdiv class\u003d\"page\"\u003e\u003cp /\u003e\n\u003cp\u003eApache Tika - Apache Tika http://incubator.apache.org/tika/\n\u003c/p\u003e\n\u003cp\u003e1 of 1 15.9.2007 11:02\n\u003c/p\u003e\n\u003cp\u003eTika - Content Analysis Toolkit\n\u003c/p\u003e\n\u003cp\u003eApache Tika is a toolkit for detecting and extracting metadata and structured text content \n\u003c/p\u003e\n\u003cp\u003efrom various documents using existing parser libraries. \n\u003c/p\u003e\n\u003cp\u003eApache Tika is an effort undergoing incubation at The Apache Software Foundation (ASF), \n\u003c/p\u003e\n\u003cp\u003esponsored by the Apache Lucene PMC. Incubation is required of all newly accepted projects \n\u003c/p\u003e\n\u003cp\u003euntil a further review indicates that the infrastructure, communications, and decision making \n\u003c/p\u003e\n\u003cp\u003eprocess have stabilized in a manner consistent with other successful ASF projects. While \n\u003c/p\u003e\n\u003cp\u003eincubation \u003cb\u003e\u003ci\u003estatus \u003c/b\u003e\u003c/i\u003eis not necessarily a reflection of the completeness or stability of the code, it \n\u003c/p\u003e\n\u003cp\u003edoes indicate that the project has yet to be fully endorsed by the ASF.\n\u003c/p\u003e\n\u003cp\u003eSee the Apache Tika Incubation Status page for the current incubation status.\n\u003c/p\u003e\n\u003cp\u003eLatest News\n\u003c/p\u003e\n\u003cp\u003eMarch 22nd, 2007: Apache Tika project started\n\u003c/p\u003e\n\u003cp\u003eThe Apache Tika project was formally started when the Tika proposal was accepted by the Apache \n\u003c/p\u003e\n\u003cp\u003eIncubator PMC. \u003c/p\u003e\n\u003cp /\u003e\n\u003c/div\u003e\n\u003c/body\u003e\u003c/html\u003e", - "X-TIKA:parse_time_millis": "500", + "tk:content-handler": "ToXMLContentHandler", + "tk:content": "\u003chtml xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:modify_annotations\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print_degraded\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"dc:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"dcterms:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dcterms:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"Last-Modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"dc:format\" content\u003d\"application/pdf; version\u003d1.3\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator_tool\" content\u003d\"Firefox\" /\u003e\n\u003cmeta name\u003d\"access_permission:fill_in_form\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:modified\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"meta:save-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"pdf:encrypted\" content\u003d\"false\" /\u003e\n\u003cmeta name\u003d\"dc:title\" content\u003d\"Apache Tika - Apache Tika\" /\u003e\n\u003cmeta name\u003d\"Content-Length\" content\u003d\"34824\" /\u003e\n\u003cmeta name\u003d\"Content-Type\" content\u003d\"application/pdf\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:creator\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.DefaultParser\" /\u003e\n\u003cmeta name\u003d\"X-Parsed-By\" content\u003d\"org.apache.tika.parser.pdf.PDFParser\" /\u003e\n\u003cmeta name\u003d\"meta:author\" content\u003d\"Bertrand DelacrΘtaz\" /\u003e\n\u003cmeta name\u003d\"meta:creation-date\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_for_accessibility\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:assemble_document\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"xmpTPg:NPages\" content\u003d\"1\" /\u003e\n\u003cmeta name\u003d\"resourceName\" content\u003d\"testPDF.pdf\" /\u003e\n\u003cmeta name\u003d\"access_permission:extract_content\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_print\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"access_permission:can_modify\" content\u003d\"true\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:producer\" content\u003d\"Mac OS X 10.4.10 Quartz PDFContext\" /\u003e\n\u003cmeta name\u003d\"pdf:docinfo:created\" content\u003d\"2007-09-15T09:02:31Z\" /\u003e\n\u003ctitle\u003eApache Tika - Apache Tika\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\u003cdiv class\u003d\"page\"\u003e\u003cp /\u003e\n\u003cp\u003eApache Tika - Apache Tika http://incubator.apache.org/tika/\n\u003c/p\u003e\n\u003cp\u003e1 of 1 15.9.2007 11:02\n\u003c/p\u003e\n\u003cp\u003eTika - Content Analysis Toolkit\n\u003c/p\u003e\n\u003cp\u003eApache Tika is a toolkit for detecting and extracting metadata and structured text content \n\u003c/p\u003e\n\u003cp\u003efrom various documents using existing parser libraries. \n\u003c/p\u003e\n\u003cp\u003eApache Tika is an effort undergoing incubation at The Apache Software Foundation (ASF), \n\u003c/p\u003e\n\u003cp\u003esponsored by the Apache Lucene PMC. Incubation is required of all newly accepted projects \n\u003c/p\u003e\n\u003cp\u003euntil a further review indicates that the infrastructure, communications, and decision making \n\u003c/p\u003e\n\u003cp\u003eprocess have stabilized in a manner consistent with other successful ASF projects. While \n\u003c/p\u003e\n\u003cp\u003eincubation \u003cb\u003e\u003ci\u003estatus \u003c/b\u003e\u003c/i\u003eis not necessarily a reflection of the completeness or stability of the code, it \n\u003c/p\u003e\n\u003cp\u003edoes indicate that the project has yet to be fully endorsed by the ASF.\n\u003c/p\u003e\n\u003cp\u003eSee the Apache Tika Incubation Status page for the current incubation status.\n\u003c/p\u003e\n\u003cp\u003eLatest News\n\u003c/p\u003e\n\u003cp\u003eMarch 22nd, 2007: Apache Tika project started\n\u003c/p\u003e\n\u003cp\u003eThe Apache Tika project was formally started when the Tika proposal was accepted by the Apache \n\u003c/p\u003e\n\u003cp\u003eIncubator PMC. \u003c/p\u003e\n\u003cp /\u003e\n\u003c/div\u003e\n\u003c/body\u003e\u003c/html\u003e", + "tk:parse-time-millis": "500", "access_permission:assemble_document": "true", "access_permission:can_modify": "true", "access_permission:can_print": "true", diff --git a/tika-example/src/test/java/org/apache/tika/example/TestParsingExample.java b/tika-example/src/test/java/org/apache/tika/example/TestParsingExample.java index face417445b..c4c792208b6 100644 --- a/tika-example/src/test/java/org/apache/tika/example/TestParsingExample.java +++ b/tika-example/src/test/java/org/apache/tika/example/TestParsingExample.java @@ -80,9 +80,9 @@ public void testRecursiveParserWrapperExample() throws IOException, SAXException assertEquals(12, metadataList.size(), "Number of embedded documents + 1 for the container document"); Metadata m = metadataList.get(6); //this is the location the embed3.txt text file within the outer .docx - assertEquals("/embed1.zip/embed2.zip/embed3.zip/embed3.txt", m.get("X-TIKA:embedded_resource_path")); + assertEquals("/embed1.zip/embed2.zip/embed3.zip/embed3.txt", m.get("tk:embedded-resource-path")); //it contains some html encoded content - assertContains("When in the Course", m.get("X-TIKA:content")); + assertContains("When in the Course", m.get("tk:content")); } @Test diff --git a/tika-integration-tests/tika-pipes-es-integration-tests/src/test/resources/elasticsearch/plugins-template.json b/tika-integration-tests/tika-pipes-es-integration-tests/src/test/resources/elasticsearch/plugins-template.json index 4c382b59e3c..4abd5268bd2 100644 --- a/tika-integration-tests/tika-pipes-es-integration-tests/src/test/resources/elasticsearch/plugins-template.json +++ b/tika-integration-tests/tika-pipes-es-integration-tests/src/test/resources/elasticsearch/plugins-template.json @@ -80,12 +80,12 @@ "field-name-mapping-filter": { "excludeUnmapped": true, "mappings": { - "X-TIKA:content": "content", + "tk:content": "content", "Content-Length": "length", "dc:creator": "creators", "dc:title": "title", "Content-Type": "mime", - "X-TIKA:EXCEPTION:container_exception": "tika_exception" + "tk:exception:container-exception": "tika_exception" } } } diff --git a/tika-integration-tests/tika-pipes-kafka-integration-tests/src/test/resources/kafka/plugins-template.json b/tika-integration-tests/tika-pipes-kafka-integration-tests/src/test/resources/kafka/plugins-template.json index 9f859f89070..1954551646a 100644 --- a/tika-integration-tests/tika-pipes-kafka-integration-tests/src/test/resources/kafka/plugins-template.json +++ b/tika-integration-tests/tika-pipes-kafka-integration-tests/src/test/resources/kafka/plugins-template.json @@ -36,12 +36,12 @@ "field-name-mapping-filter": { "excludeUnmapped": true, "mappings": { - "X-TIKA:content": "content_s", + "tk:content": "content_s", "Content-Length": "length_i", "dc:creator": "creators_ss", "dc:title": "title_s", "Content-Type": "mime_s", - "X-TIKA:EXCEPTION:container_exception": "tika_exception_s" + "tk:exception:container-exception": "tika_exception_s" } } } diff --git a/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/resources/opensearch/plugins-template.json b/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/resources/opensearch/plugins-template.json index 7232174321e..c79efc39c2f 100644 --- a/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/resources/opensearch/plugins-template.json +++ b/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/resources/opensearch/plugins-template.json @@ -79,12 +79,12 @@ "field-name-mapping-filter": { "excludeUnmapped": true, "mappings": { - "X-TIKA:content": "content", + "tk:content": "content", "Content-Length": "length", "dc:creator": "creators", "dc:title": "title", "Content-Type": "mime", - "X-TIKA:EXCEPTION:container_exception": "tika_exception" + "tk:exception:container-exception": "tika_exception" } } } diff --git a/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/resources/opensearch/tika-config-opensearch.json b/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/resources/opensearch/tika-config-opensearch.json index 475a9b166cf..ef882531327 100644 --- a/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/resources/opensearch/tika-config-opensearch.json +++ b/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/resources/opensearch/tika-config-opensearch.json @@ -37,12 +37,12 @@ "field-name-mapping-filter": { "excludeUnmapped": true, "mappings": { - "X-TIKA:content": "content", + "tk:content": "content", "Content-Length": "length", "dc:creator": "creators", "dc:title": "title", "Content-Type": "mime", - "X-TIKA:EXCEPTION:container_exception": "tika_exception" + "tk:exception:container-exception": "tika_exception" } } } diff --git a/tika-integration-tests/tika-pipes-s3-integration-tests/src/test/resources/s3/tika-config-s3.json b/tika-integration-tests/tika-pipes-s3-integration-tests/src/test/resources/s3/tika-config-s3.json index 03b18eec914..f742907d362 100644 --- a/tika-integration-tests/tika-pipes-s3-integration-tests/src/test/resources/s3/tika-config-s3.json +++ b/tika-integration-tests/tika-pipes-s3-integration-tests/src/test/resources/s3/tika-config-s3.json @@ -34,12 +34,12 @@ "field-name-mapping-filter": { "excludeUnmapped": true, "mappings": { - "X-TIKA:content": "content_s", + "tk:content": "content_s", "Content-Length": "length_i", "dc:creator": "creators_ss", "dc:title": "title_s", "Content-Type": "mime_s", - "X-TIKA:EXCEPTION:container_exception": "tika_exception_s" + "tk:exception:container-exception": "tika_exception_s" } } } diff --git a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/resources/solr/plugins-template.json b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/resources/solr/plugins-template.json index 4f8d8b6d59e..f4a63685a1e 100644 --- a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/resources/solr/plugins-template.json +++ b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/resources/solr/plugins-template.json @@ -36,12 +36,12 @@ "field-name-mapping-filter": { "excludeUnmapped": true, "mappings": { - "X-TIKA:content": "content_s", + "tk:content": "content_s", "Content-Length": "length_i", "dc:creator": "creators_ss", "dc:title": "title_s", "Content-Type": "mime_s", - "X-TIKA:EXCEPTION:container_exception": "tika_exception_s" + "tk:exception:container-exception": "tika_exception_s" } } } diff --git a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/resources/tika-config-solr-urls.json b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/resources/tika-config-solr-urls.json index 15f65e2814f..fa6beba3b4e 100644 --- a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/resources/tika-config-solr-urls.json +++ b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/resources/tika-config-solr-urls.json @@ -30,12 +30,12 @@ "field-name-mapping-filter": { "excludeUnmapped": true, "mappings": { - "X-TIKA:content": "content_s", + "tk:content": "content_s", "Content-Length": "length_i", "dc:creator": "creators_ss", "dc:title": "title_s", "Content-Type": "mime_s", - "X-TIKA:EXCEPTION:container_exception": "tika_exception_s" + "tk:exception:container-exception": "tika_exception_s" } } } diff --git a/tika-ml/tika-ml-junkdetect-tools/src/test/java/org/apache/tika/ml/junkdetect/tools/BuildJunkAugmentationData.java b/tika-ml/tika-ml-junkdetect-tools/src/test/java/org/apache/tika/ml/junkdetect/tools/BuildJunkAugmentationData.java index ad05cf5292a..b5b76b198ee 100644 --- a/tika-ml/tika-ml-junkdetect-tools/src/test/java/org/apache/tika/ml/junkdetect/tools/BuildJunkAugmentationData.java +++ b/tika-ml/tika-ml-junkdetect-tools/src/test/java/org/apache/tika/ml/junkdetect/tools/BuildJunkAugmentationData.java @@ -61,7 +61,7 @@ *

Pipeline

*
    *
  1. For each {@code .json} extract under {@code --extracts} (tika-app output - * via {@link JsonMetadataList}), read {@code X-TIKA:content}.
  2. + * via {@link JsonMetadataList}), read {@code tk:content}. *
  3. Per document: determine the dominant Unicode script (non-COMMON / non- * INHERITED tally) and drop documents whose dominant-script fraction is * below {@link #MIN_DOC_SCRIPT_DOMINANCE} — mixed-script pages are too @@ -523,7 +523,7 @@ static long countGzLines(Path path) throws IOException { return count; } - /** Reads {@code X-TIKA:content} from the first metadata record of a tika-app RMETA JSON. */ + /** Reads {@code tk:content} from the first metadata record of a tika-app RMETA JSON. */ static String readContent(Path jsonFile) { try (Reader r = new InputStreamReader( Files.newInputStream(jsonFile), StandardCharsets.UTF_8)) { diff --git a/tika-parsers/tika-parsers-ml/tika-inference/src/main/java/org/apache/tika/inference/ChunkSerializer.java b/tika-parsers/tika-parsers-ml/tika-inference/src/main/java/org/apache/tika/inference/ChunkSerializer.java index 84ecafb806c..2821647e9b4 100644 --- a/tika-parsers/tika-parsers-ml/tika-inference/src/main/java/org/apache/tika/inference/ChunkSerializer.java +++ b/tika-parsers/tika-parsers-ml/tika-inference/src/main/java/org/apache/tika/inference/ChunkSerializer.java @@ -91,7 +91,14 @@ public static void mergeInto( existing = new ArrayList<>(); } existing.addAll(newChunks); - metadata.set(fieldName, toJson(existing)); + // Chunks are Tika-native output; the default field (tk:chunks) is reserved, so write trusted. + boolean wasTrusted = metadata.isTrusted(); + metadata.setTrusted(true); + try { + metadata.set(fieldName, toJson(existing)); + } finally { + metadata.setTrusted(wasTrusted); + } } /** diff --git a/tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/JinaEmbeddingFilterTest.java b/tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/JinaEmbeddingFilterTest.java index ae25f3915a9..b9e208bf370 100644 --- a/tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/JinaEmbeddingFilterTest.java +++ b/tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/JinaEmbeddingFilterTest.java @@ -124,8 +124,8 @@ void testEndToEnd() throws Exception { list.add(metadata); filter.filter(list); - String chunksJson = metadata.get("tika:chunks"); - assertNotNull(chunksJson, "Should have tika:chunks"); + String chunksJson = metadata.get("tk:chunks"); + assertNotNull(chunksJson, "Should have tk:chunks"); List chunks = ChunkSerializer.fromJson(chunksJson); assertEquals(2, chunks.size()); diff --git a/tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/OpenAIEmbeddingFilterTest.java b/tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/OpenAIEmbeddingFilterTest.java index cda29abe2d0..9b7be5f3873 100644 --- a/tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/OpenAIEmbeddingFilterTest.java +++ b/tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/OpenAIEmbeddingFilterTest.java @@ -78,8 +78,8 @@ void testEndToEnd() throws Exception { metadataList.add(metadata); filter.filter(metadataList); - String chunksJson = metadata.get("tika:chunks"); - assertNotNull(chunksJson, "Should have tika:chunks"); + String chunksJson = metadata.get("tk:chunks"); + assertNotNull(chunksJson, "Should have tk:chunks"); List chunks = ChunkSerializer.fromJson(chunksJson); assertEquals(2, chunks.size()); @@ -124,7 +124,7 @@ void testEmptyContent() throws Exception { list.add(metadata); filter.filter(list); - assertNull(metadata.get("tika:chunks")); + assertNull(metadata.get("tk:chunks")); assertEquals(0, server.getRequestCount()); } @@ -136,7 +136,7 @@ void testBlankContent() throws Exception { list.add(metadata); filter.filter(list); - assertNull(metadata.get("tika:chunks")); + assertNull(metadata.get("tk:chunks")); assertEquals(0, server.getRequestCount()); } @@ -188,7 +188,7 @@ void testVectorSerialization() throws Exception { list.add(metadata); filter.filter(list); - String chunksJson = metadata.get("tika:chunks"); + String chunksJson = metadata.get("tk:chunks"); JsonNode array = MAPPER.readTree(chunksJson); assertEquals(1, array.size()); @@ -214,8 +214,8 @@ void testMergeWithExistingChunks() throws Exception { new org.apache.tika.inference.locator .PaginatedLocator(1))); imgChunk.setVector(new float[]{0.5f, 0.6f}); - metadata.set(TikaCoreProperties.TIKA_CHUNKS, - ChunkSerializer.toJson(List.of(imgChunk))); + // simulate a prior producer via the real (trusted) merge path; tk:chunks is reserved + ChunkSerializer.mergeInto(metadata, List.of(imgChunk)); List list = new ArrayList<>(); list.add(metadata); diff --git a/tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/OpenAIImageEmbeddingParserTest.java b/tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/OpenAIImageEmbeddingParserTest.java index 5258027c3d3..359e4f35768 100644 --- a/tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/OpenAIImageEmbeddingParserTest.java +++ b/tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/OpenAIImageEmbeddingParserTest.java @@ -79,7 +79,7 @@ void testEndToEnd() throws Exception { } String output = metadata.get(TikaCoreProperties.TIKA_CHUNKS); - assertNotNull(output, "Should have tika:chunks"); + assertNotNull(output, "Should have tk:chunks"); List chunks = ChunkSerializer.fromJson(output); assertEquals(1, chunks.size()); @@ -225,8 +225,8 @@ void testMergeWithExistingChunks() throws Exception { // Pre-populate with a text chunk (simulating text chunker ran first) Chunk textChunk = new Chunk("existing text", 0, 13); textChunk.setVector(new float[]{0.1f, 0.2f}); - metadata.set(TikaCoreProperties.TIKA_CHUNKS, - ChunkSerializer.toJson(List.of(textChunk))); + // simulate the text chunker via the real (trusted) merge path; tk:chunks is reserved + ChunkSerializer.mergeInto(metadata, List.of(textChunk)); try (TikaInputStream tis = TikaInputStream.get(fakeImage)) { parser.parse(tis, new DefaultHandler(), metadata, new ParseContext()); diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/AutoDetectParserConfigTest.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/AutoDetectParserConfigTest.java index d46ed8592da..5085e0de015 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/AutoDetectParserConfigTest.java +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/AutoDetectParserConfigTest.java @@ -92,7 +92,7 @@ public void testWriteFilter() throws Exception { metadata, parseContext, true); for (Metadata m : metadataList) { for (String k : m.names()) { - assertTrue(k.startsWith("X-TIKA:") || k.startsWith("access_permission:") + assertTrue(k.startsWith("tk:") || k.startsWith("access_permission:") || k.startsWith("Content-") || k.equals("dc:creator"), "unexpected key: " + k); } @@ -109,15 +109,15 @@ public void testDigests() throws Exception { List metadataList = getRecursiveMetadata("testPPT_EmbeddedPDF.pptx", p, context); // SHA256 with BASE32 encoding includes encoding in the key assertEquals("SO67W5OGGMOFPMFQTHTNL5YU5EQXWPMNEPU7HKOZX2ULHRQICRZA====", - metadataList.get(0).get("X-TIKA:digest:SHA256:BASE32")); + metadataList.get(0).get("tk:digest:SHA256:BASE32")); assertEquals("a16f14215ebbfa47bd995e799f03cb18", - metadataList.get(0).get("X-TIKA:digest:MD5")); + metadataList.get(0).get("tk:digest:MD5")); assertEquals("Q7D3RFV6DNGZ4BQIS6UKNWX4CDIKPIGDU2D7ADBUDVOBYSZHF7FQ====", - metadataList.get(6).get("X-TIKA:digest:SHA256:BASE32")); + metadataList.get(6).get("tk:digest:SHA256:BASE32")); assertEquals("90a8b249a6d6b6cb127c59e01cef3aaa", - metadataList.get(6).get("X-TIKA:digest:MD5")); + metadataList.get(6).get("tk:digest:MD5")); } @Test @@ -129,13 +129,13 @@ public void testDigestsSkipContainer() throws Exception { ParseContext context = loader.loadParseContext(); List metadataList = getRecursiveMetadata("testPPT_EmbeddedPDF.pptx", p, context); // SHA256 with BASE32 encoding includes encoding in the key - assertNull(metadataList.get(0).get("X-TIKA:digest:SHA256:BASE32")); - assertNull(metadataList.get(0).get("X-TIKA:digest:MD5")); + assertNull(metadataList.get(0).get("tk:digest:SHA256:BASE32")); + assertNull(metadataList.get(0).get("tk:digest:MD5")); assertEquals("Q7D3RFV6DNGZ4BQIS6UKNWX4CDIKPIGDU2D7ADBUDVOBYSZHF7FQ====", - metadataList.get(6).get("X-TIKA:digest:SHA256:BASE32")); + metadataList.get(6).get("tk:digest:SHA256:BASE32")); assertEquals("90a8b249a6d6b6cb127c59e01cef3aaa", - metadataList.get(6).get("X-TIKA:digest:MD5")); + metadataList.get(6).get("tk:digest:MD5")); } @Test @@ -147,9 +147,9 @@ public void testDigestsEmptyParser() throws Exception { List metadataList = getRecursiveMetadata("testPDF.pdf", p, context); assertEquals(1, metadataList.size()); assertEquals("4ef0d3bdb12ba603f4caf7d2e2c6112e", - metadataList.get(0).get("X-TIKA:digest:MD5")); + metadataList.get(0).get("tk:digest:MD5")); assertEquals("org.apache.tika.parser.EmptyParser", - metadataList.get(0).get("X-TIKA:Parsed-By")); + metadataList.get(0).get("tk:parsed-by")); } @Test @@ -161,7 +161,7 @@ public void testContainerZeroBytes() throws Exception { ParseContext context = loader.loadParseContext(); List metadataList = getRecursiveMetadata(tmp, p, context, true); assertEquals("d41d8cd98f00b204e9800998ecf8427e", - metadataList.get(0).get("X-TIKA:digest:MD5")); + metadataList.get(0).get("tk:digest:MD5")); assertEquals("0", metadataList.get(0).get(Metadata.CONTENT_LENGTH)); } finally { Files.delete(tmp); diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/RecursiveParserWrapperTest.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/RecursiveParserWrapperTest.java index 62c55d617e5..955e050d39d 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/RecursiveParserWrapperTest.java +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/RecursiveParserWrapperTest.java @@ -441,7 +441,7 @@ public void testDigesters() throws Exception { new BasicContentHandlerFactory(BasicContentHandlerFactory.HANDLER_TYPE.TEXT, -1), true, true); - String md5Key = "X-TIKA:digest:MD5"; + String md5Key = "tk:digest:MD5"; assertEquals("59f626e09a8c16ab6dbc2800c685f772", list.get(0).get(md5Key)); assertEquals("ccdf3882e7e4c2454e28884db9b0a54d", list.get(6).get(md5Key)); assertEquals("a869bf6432ebd14e19fc79416274e0c9", list.get(7).get(md5Key)); diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParserTest.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParserTest.java index 003f3a8ae43..c0572d93891 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParserTest.java +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParserTest.java @@ -58,7 +58,7 @@ public void testDigestTranslator() throws Exception { getRecursiveMetadata("testMSChart-govdocs-428996.pptx", parser, parseContext); assertEquals(4, metadataList.size()); for (Metadata m : metadataList) { - assertNotNull(m.get("X-TIKA:digest:SHA256:BASE32")); + assertNotNull(m.get("tk:digest:SHA256:BASE32")); assertNull(m.get(TikaCoreProperties.EMBEDDED_EXCEPTION)); } } diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/microsoft/ooxml/OleObjectRegressionTest.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/microsoft/ooxml/OleObjectRegressionTest.java index a258badfb00..273f035e61c 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/microsoft/ooxml/OleObjectRegressionTest.java +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/microsoft/ooxml/OleObjectRegressionTest.java @@ -79,7 +79,7 @@ public void testOleObjectExtractedWithDigester() throws Exception { // Sanity check that the digester actually ran (so we know the test is exercising // the digest code path). long digested = list.stream() - .filter(m -> m.get("X-TIKA:digest:MD5") != null) + .filter(m -> m.get("tk:digest:MD5") != null) .count(); assertTrue(digested > 0, "expected the digester to have computed at least one MD5; " @@ -108,9 +108,9 @@ private static void assertOleGraphPresent(List list) { .contains("openxmlformats-officedocument.oleobject"), "expected " + n + " to be detected as its inner POIFS type, not " + "as the dead-end oleobject mime; ct=" + ct); - assertNull(m.get("X-TIKA:EXCEPTION:embedded_exception"), + assertNull(m.get("tk:exception:embedded-exception"), "expected no embedded_exception on " + n - + "; got: " + m.get("X-TIKA:EXCEPTION:embedded_exception")); + + "; got: " + m.get("tk:exception:embedded-exception")); } } } diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/microsoft/ooxml/TruncatedOOXMLTest.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/microsoft/ooxml/TruncatedOOXMLTest.java index 4ce88d1a287..8385cf999d8 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/microsoft/ooxml/TruncatedOOXMLTest.java +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/microsoft/ooxml/TruncatedOOXMLTest.java @@ -53,10 +53,10 @@ public void testWordTrunc774() throws Exception { /* for debuging problems in commons compress 1.25.0 -> 1.26.0 metadataList.forEach(m -> { - System.out.println("depth: " + m.get("X-TIKA:embedded_depth")); + System.out.println("depth: " + m.get("tk:embedded-depth")); System.out.println("relid: " + m.get("embeddedRelationshipId")); System.out.println("res: " + m.get(TikaCoreProperties.RESOURCE_NAME_KEY)); - System.out.println("cont: " + m.get("X-TIKA:content")); + System.out.println("cont: " + m.get("tk:content")); }); */ assertEquals(4, metadataList.size()); diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java index 37db33923cc..79f2a707a79 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java @@ -359,7 +359,7 @@ public void testEmbeddedJBIG2Image() throws Exception { metadatas.get(0).get(TikaCoreProperties.TIKA_CONTENT)); for (String key : metadatas.get(1).names()) { - if (key.startsWith("X-TIKA:EXCEPTION")) { + if (key.startsWith("tk:exception")) { fail("Exception: " + metadatas.get(1).get(key)); } } diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/pkg/ZipParserTest.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/pkg/ZipParserTest.java index 8a22855bd82..3b73c016bc6 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/pkg/ZipParserTest.java +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/pkg/ZipParserTest.java @@ -114,13 +114,13 @@ public void testDataDescriptorWithEmptyEntry() throws Exception { //mime is 0 bytes assertContains("InputStream must have > 0 bytes", - results.get(1).get("X-TIKA:EXCEPTION:embedded_exception")); + results.get(1).get("tk:exception:embedded-exception")); //source.xml is binary, not xml assertContains("TikaException: XML parse error", - results.get(2).get("X-TIKA:EXCEPTION:embedded_exception")); + results.get(2).get("tk:exception:embedded-exception")); //manifest.xml has malformed xml assertContains("TikaException: XML parse error", - results.get(4).get("X-TIKA:EXCEPTION:embedded_exception")); + results.get(4).get("tk:exception:embedded-exception")); } private static class GatherInternalPathsDocumentExtractor implements EmbeddedDocumentExtractor { diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/resources/configs/TIKA-3137-include.json b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/resources/configs/TIKA-3137-include.json index b9acf2658f2..8df52e9ab57 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/resources/configs/TIKA-3137-include.json +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/resources/configs/TIKA-3137-include.json @@ -3,7 +3,7 @@ { "include-field-metadata-filter" : { "include": [ - "X-TIKA:content", + "tk:content", "extended-properties:Application", "Content-Type" ] diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/resources/configs/tika-config-write-filter.json b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/resources/configs/tika-config-write-filter.json index 1d96edb6316..6475d0c57fd 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/resources/configs/tika-config-write-filter.json +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/resources/configs/tika-config-write-filter.json @@ -12,7 +12,7 @@ }, "standard-metadata-limiter-factory": { "includeFields": [ - "X-TIKA:content", + "tk:content", "dc:creator" ] } diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/test/java/org/apache/tika/parser/mp4/MP4ParserTest.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/test/java/org/apache/tika/parser/mp4/MP4ParserTest.java index addf349d739..fd26092d153 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/test/java/org/apache/tika/parser/mp4/MP4ParserTest.java +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/test/java/org/apache/tika/parser/mp4/MP4ParserTest.java @@ -64,16 +64,16 @@ public class MP4ParserTest extends TikaTest { @Before public void setUp() { - skipKeysB.add("X-TIKA:Parsed-By"); - skipKeysA.add("X-TIKA:parse_time_millis"); - skipKeysB.add("X-TIKA:content_handler"); - skipKeysA.add("X-TIKA:content_handler"); - skipKeysB.add("X-TIKA:parse_time_millis"); + skipKeysB.add("tk:parsed-by"); + skipKeysA.add("tk:parse-time-millis"); + skipKeysB.add("tk:content-handler"); + skipKeysA.add("tk:content-handler"); + skipKeysB.add("tk:parse-time-millis"); skipKeysB.add("xmpDM:videoCompressor"); //skipKeysB.add("xmpDM:audioChannelType"); //skipKeysB.add("xmpDM:audioChannelType"); - skipKeysA.add("X-TIKA:content"); - skipKeysB.add("X-TIKA:content"); + skipKeysA.add("tk:content"); + skipKeysB.add("tk:content"); skipKeysB.add("xmpDM:copyright"); }*/ /** diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OutlookExtractor.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OutlookExtractor.java index d17bd9edd42..7001e53d48c 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OutlookExtractor.java +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OutlookExtractor.java @@ -357,7 +357,7 @@ private void updateAttachmentMetadata(AttachmentChunks attachment, Metadata meta if (contentId != null && contentIdNames.contains(contentId)) { // Layer 1: CID referenced in the message body — high confidence inline - metadata.set(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE_KEY, + metadata.set(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE, TikaCoreProperties.EmbeddedResourceType.INLINE.name()); } else if (contentId != null && attachFlags != null @@ -365,7 +365,7 @@ private void updateAttachmentMetadata(AttachmentChunks attachment, Metadata meta && isInlineableMimeType(metadata.get(MAPI.ATTACH_MIME))) { // Layer 2: MAPI says rendered in body + image MIME type — the CID regex // missed it (e.g. encapsulated RTF with stripped img tags) - metadata.set(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE_KEY, + metadata.set(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE, TikaCoreProperties.EmbeddedResourceType.INLINE.name()); } } diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/AbstractPDF2XHTML.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/AbstractPDF2XHTML.java index 83891fcb845..1e7b4c33c9c 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/AbstractPDF2XHTML.java +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/AbstractPDF2XHTML.java @@ -584,12 +584,19 @@ void doOCROnCurrentPage(PDPage pdPage, OcrConfig.Strategy ocrStrategy) ocrParser.parse(tis, new EmbeddedContentHandler(new BodyContentHandler(xhtml)), renderMetadata, context); } - // Propagate enrichment metadata added by the OCR parser (e.g. tika:chunks + // Propagate enrichment metadata added by the OCR parser (e.g. tk:chunks // from image embedding parsers) back to the parent document so it isn't // silently discarded when the renderMetadata goes out of scope. String renderChunks = renderMetadata.get(TikaCoreProperties.TIKA_CHUNKS); if (renderChunks != null && metadata.get(TikaCoreProperties.TIKA_CHUNKS) == null) { - metadata.set(TikaCoreProperties.TIKA_CHUNKS, renderChunks); + // tk:chunks is reserved; this is Tika propagating its own native output + boolean wasTrusted = metadata.isTrusted(); + metadata.setTrusted(true); + try { + metadata.set(TikaCoreProperties.TIKA_CHUNKS, renderChunks); + } finally { + metadata.setTrusted(wasTrusted); + } } } } catch (IOException e) { diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-webarchive-module/src/test/java/org/apache/tika/parser/warc/WARCParserTest.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-webarchive-module/src/test/java/org/apache/tika/parser/warc/WARCParserTest.java index d0718c9ac5e..2e48036718c 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-webarchive-module/src/test/java/org/apache/tika/parser/warc/WARCParserTest.java +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-webarchive-module/src/test/java/org/apache/tika/parser/warc/WARCParserTest.java @@ -57,9 +57,9 @@ public void testMultipleRecords() throws Exception { BasicContentHandlerFactory.HANDLER_TYPE.TEXT); Set fieldsToIgnore = new HashSet<>(); - fieldsToIgnore.add("X-TIKA:parse_time_millis"); + fieldsToIgnore.add("tk:parse-time-millis"); fieldsToIgnore.add("Content-Type"); - fieldsToIgnore.add("Content-Type-Magic-Detected"); + fieldsToIgnore.add("tk:content-type-magic-detected"); assertMetadataListEquals(metadataList, gzMetadataList, fieldsToIgnore); assertEquals("application/warc", metadataList.get(0).get(Metadata.CONTENT_TYPE)); diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xmp-commons/src/main/java/org/apache/tika/parser/xmp/XmpExtractor.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xmp-commons/src/main/java/org/apache/tika/parser/xmp/XmpExtractor.java index 9ae8b4b325f..3d4f687be0b 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xmp-commons/src/main/java/org/apache/tika/parser/xmp/XmpExtractor.java +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xmp-commons/src/main/java/org/apache/tika/parser/xmp/XmpExtractor.java @@ -73,7 +73,7 @@ public class XmpExtractor { // "uri localName" keys that are neither mapped nor passed through as raw (known junk/bloat) private static final Set DROP = new HashSet<>(); // Unmapped XMP goes under this prefix so raw, untrusted keys can't shadow a known Tika or - // X-TIKA: field. Best-effort discovery surface: keys use the document's prefix (not the URI) + // tk: field. Best-effort discovery surface: keys use the document's prefix (not the URI) // and are non-contractual -- promote a field into TABLE when it needs a stable key. static final String RAW_PREFIX = "xmp-raw:"; // strip a trailing array index so a raw bag/seq is one multi-valued key, not foo:Bag[1], foo:Bag[2] diff --git a/tika-pipes/tika-pipes-api/src/main/java/org/apache/tika/pipes/api/ParseMode.java b/tika-pipes/tika-pipes-api/src/main/java/org/apache/tika/pipes/api/ParseMode.java index bc4536dc7f2..7e53a8cac66 100644 --- a/tika-pipes/tika-pipes-api/src/main/java/org/apache/tika/pipes/api/ParseMode.java +++ b/tika-pipes/tika-pipes-api/src/main/java/org/apache/tika/pipes/api/ParseMode.java @@ -62,7 +62,7 @@ public enum ParseMode { *

    * This mode parses like CONCATENATE (producing a single metadata object with * merged content from all embedded documents), but at emit time, emitters - * write only the value of {@code X-TIKA:content} as a raw string instead of + * write only the value of {@code tk:content} as a raw string instead of * serializing the full metadata list as JSON. *

    * This is useful when you want plain text, markdown, or HTML output files diff --git a/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/metadata/filter/AttachmentCountingListFilter.java b/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/metadata/filter/AttachmentCountingListFilter.java index 4706dbe9d0a..94a54c6f141 100644 --- a/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/metadata/filter/AttachmentCountingListFilter.java +++ b/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/metadata/filter/AttachmentCountingListFilter.java @@ -33,7 +33,7 @@ protected void doFilter(List metadataList, ParseContext parseContext) if (metadataList == null || metadataList.isEmpty()) { return; } - metadataList.get(0).set("X-TIKA:attachment_count", Integer.toString(metadataList.size() - 1)); + metadataList.get(0).set("tk:attachment-count", Integer.toString(metadataList.size() - 1)); count += metadataList.size(); } diff --git a/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/DigestingOpenContainersTest.java b/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/DigestingOpenContainersTest.java index bf02f11697f..6055cace561 100644 --- a/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/DigestingOpenContainersTest.java +++ b/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/DigestingOpenContainersTest.java @@ -49,7 +49,7 @@ public void testDigestingOpenContainers() throws Exception { } List metadataList = getRecursiveMetadata("testLargeOLEDoc.doc", autoDetectParser, parseContext); - assertEquals(expectedSha, metadataList.get(2).get("X-TIKA:digest:SHA256")); + assertEquals(expectedSha, metadataList.get(2).get("tk:digest:SHA256")); assertNull(metadataList.get(2).get(TikaCoreProperties.EMBEDDED_EXCEPTION)); assertEquals(2049290L, Long.parseLong(metadataList.get(2).get(Metadata.CONTENT_LENGTH))); } diff --git a/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/MetadataWriteLimiterTest.java b/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/MetadataWriteLimiterTest.java index 0a763dff1c4..248748f8d9d 100644 --- a/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/MetadataWriteLimiterTest.java +++ b/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/MetadataWriteLimiterTest.java @@ -54,7 +54,7 @@ private PipesClient initWithWriteLimiter(Path tmp, String testFileName) throws E /** * Test that MetadataWriteLimiterFactory is loaded from config and limits are applied. - * The config specifies includeFields: ["dc:creator", "Content-Type", "X-TIKA:content"] + * The config specifies includeFields: ["dc:creator", "Content-Type", "tk:content"] * so other fields like "pdf:PDFVersion" should be filtered out. */ @Test @@ -73,29 +73,29 @@ public void testWriteLimiterFromConfig(@TempDir Path tmp) throws Exception { assertNotNull(metadata.get("Content-Type"), "Content-Type should be present"); // Fields not in includeFields should be filtered out - // (unless they're "must add" fields like X-TIKA:Parsed-By) + // (unless they're "must add" fields like tk:parsed-by) assertNull(metadata.get("pdf:PDFVersion"), "pdf:PDFVersion should be filtered out"); assertNull(metadata.get("dc:format"), "dc:format should be filtered out"); } /** * Test that MetadataWriteLimiterFactory can be overridden via ParseContext. - * The default config excludes X-TIKA:parse_time_millis, but the override allows it. + * The default config excludes tk:parse-time-millis, but the override allows it. * - * Note: We use X-TIKA:parse_time_millis instead of pdf:PDFVersion because the PDF parser + * Note: We use tk:parse-time-millis instead of pdf:PDFVersion because the PDF parser * module is not a dependency of this test module, so PDF-specific metadata isn't extracted. */ @Test public void testWriteLimiterOverrideViaParseContext(@TempDir Path tmp) throws Exception { Metadata metadata; try (PipesClient pipesClient = initWithWriteLimiter(tmp, TEST_DOC)) { - // Create a ParseContext with an override that allows X-TIKA:parse_time_millis - // The default config's includeFields (dc:creator, Content-Type, X-TIKA:content) - // does NOT include X-TIKA:parse_time_millis, but this override does. + // Create a ParseContext with an override that allows tk:parse-time-millis + // The default config's includeFields (dc:creator, Content-Type, tk:content) + // does NOT include tk:parse-time-millis, but this override does. ParseContext parseContext = new ParseContext(); String overrideJson = """ { - "includeFields": ["Content-Type", "X-TIKA:parse_time_millis"], + "includeFields": ["Content-Type", "tk:parse-time-millis"], "maxKeySize": 100, "maxFieldSize": 1000, "maxTotalBytes": 10000, @@ -113,7 +113,7 @@ public void testWriteLimiterOverrideViaParseContext(@TempDir Path tmp) throws Ex // These fields should be present (in the override includeFields or ALWAYS_SET/ADD_FIELDS) assertNotNull(metadata.get("Content-Type"), "Content-Type should be present"); - assertNotNull(metadata.get("X-TIKA:parse_time_millis"), "X-TIKA:parse_time_millis should be present (allowed by override)"); + assertNotNull(metadata.get("tk:parse-time-millis"), "tk:parse-time-millis should be present (allowed by override)"); // dc:creator was in the default config's includeFields but NOT in the override assertNull(metadata.get("dc:creator"), "dc:creator should be filtered out (not in override)"); diff --git a/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/PipesClientTest.java b/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/PipesClientTest.java index 011d1688e53..f29a7437396 100644 --- a/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/PipesClientTest.java +++ b/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/PipesClientTest.java @@ -107,7 +107,7 @@ public void testMetadataListFilter(@TempDir Path tmp) throws Exception { Assertions.assertNotNull(pipesResult.emitData().getMetadataList()); assertEquals(5, pipesResult.emitData().getMetadataList().size()); Metadata metadata = pipesResult.emitData().getMetadataList().get(0); - assertEquals(4, Integer.parseInt(metadata.get("X-TIKA:attachment_count"))); + assertEquals(4, Integer.parseInt(metadata.get("tk:attachment-count"))); } } @@ -158,7 +158,7 @@ public void testMultipleMetadataFiltersFromJsonConfig(@TempDir Path tmp) throws } // AttachmentCountingListFilter should have added the count - assertEquals(4, Integer.parseInt(metadata.get("X-TIKA:attachment_count"))); + assertEquals(4, Integer.parseInt(metadata.get("tk:attachment-count"))); // MockUpperCaseFilter should have uppercased the resource name assertEquals("MOCK-EMBEDDED.XML", metadata.get(TikaCoreProperties.RESOURCE_NAME_KEY)); @@ -720,7 +720,7 @@ public void testHeartbeatProtocol(@TempDir Path tmp) throws Exception { @Test public void testContentOnlyMode(@TempDir Path tmp) throws Exception { - // Test that CONTENT_ONLY mode strips all metadata except X-TIKA:content + // Test that CONTENT_ONLY mode strips all metadata except tk:content try (PipesClient pipesClient = init(tmp, testDoc)) { ParseContext parseContext = new ParseContext(); parseContext.set(ParseMode.class, ParseMode.CONTENT_ONLY); diff --git a/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/PipesServerTest.java b/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/PipesServerTest.java index c428128b2cd..c7cf8ff86d5 100644 --- a/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/PipesServerTest.java +++ b/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/PipesServerTest.java @@ -47,7 +47,7 @@ public void testBasic(@TempDir Path tmp) throws Exception { parseData = pipesServer.parseFromTuple(fetchEmitTuple, fetcher); assertEquals("5f3b924303e960ce35d7f705e91d3018dd110a9c3cef0546a91fe013d6dad6fd", - parseData.metadataList.get(0).get("X-TIKA:digest:SHA-256")); + parseData.metadataList.get(0).get("tk:digest:SHA-256")); } */ } diff --git a/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/async/AsyncChaosMonkeyTest.java b/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/async/AsyncChaosMonkeyTest.java index f195e3222ea..13411a00115 100644 --- a/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/async/AsyncChaosMonkeyTest.java +++ b/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/async/AsyncChaosMonkeyTest.java @@ -191,7 +191,7 @@ public void testEmitIntermediate(@TempDir Path tmpDir) throws Exception { metadataList = JsonMetadataList.fromJson(reader); } assertEquals(64, - metadataList.get(0).get("X-TIKA:digest:SHA-256").trim().length()); + metadataList.get(0).get("tk:digest:SHA-256").trim().length()); assertEquals("application/mock+xml", metadataList.get(0).get(Metadata.CONTENT_TYPE)); String val = metadataList.get(0).get(TikaCoreProperties.PIPES_RESULT); diff --git a/tika-pipes/tika-pipes-integration-tests/src/test/resources/configs/tika-config-write-limiter.json b/tika-pipes/tika-pipes-integration-tests/src/test/resources/configs/tika-config-write-limiter.json index 8fecf2a11f1..e5b28c369ea 100644 --- a/tika-pipes/tika-pipes-integration-tests/src/test/resources/configs/tika-config-write-limiter.json +++ b/tika-pipes/tika-pipes-integration-tests/src/test/resources/configs/tika-config-write-limiter.json @@ -47,7 +47,7 @@ }, "parse-context": { "standard-metadata-limiter-factory": { - "includeFields": ["dc:creator", "Content-Type", "X-TIKA:content"], + "includeFields": ["dc:creator", "Content-Type", "tk:content"], "maxKeySize": 100, "maxFieldSize": 1000, "maxTotalBytes": 10000, diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-es/src/main/java/org/apache/tika/pipes/emitter/es/ESClient.java b/tika-pipes/tika-pipes-plugins/tika-pipes-es/src/main/java/org/apache/tika/pipes/emitter/es/ESClient.java index 81965594d9f..6369722f35e 100644 --- a/tika-pipes/tika-pipes-plugins/tika-pipes-es/src/main/java/org/apache/tika/pipes/emitter/es/ESClient.java +++ b/tika-pipes/tika-pipes-plugins/tika-pipes-es/src/main/java/org/apache/tika/pipes/emitter/es/ESClient.java @@ -334,7 +334,7 @@ public String getBulkJson(String id, String routing) throws IOException { * (arrays/objects) rather than escaped strings so that * ES can index vectors, locators, etc. natively. */ - static final Set INFERENCE_JSON_FIELDS = Set.of("tika:chunks"); + static final Set INFERENCE_JSON_FIELDS = Set.of("tk:chunks"); private static void writeMetadata(Metadata metadata, JsonGenerator jsonGenerator) throws IOException { diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-es/src/test/java/org/apache/tika/pipes/emitter/es/ESClientTest.java b/tika-pipes/tika-pipes-plugins/tika-pipes-es/src/test/java/org/apache/tika/pipes/emitter/es/ESClientTest.java index fac02a1bab5..83d7ffb5e89 100644 --- a/tika-pipes/tika-pipes-plugins/tika-pipes-es/src/test/java/org/apache/tika/pipes/emitter/es/ESClientTest.java +++ b/tika-pipes/tika-pipes-plugins/tika-pipes-es/src/test/java/org/apache/tika/pipes/emitter/es/ESClientTest.java @@ -26,6 +26,7 @@ import org.apache.tika.TikaTest; import org.apache.tika.metadata.Metadata; +import org.apache.tika.metadata.TikaCoreProperties; public class ESClientTest extends TikaTest { @@ -91,13 +92,20 @@ public void testSeparateDocumentsEmbedded() throws Exception { assertNotContained("relation_type", json); } + /** tk:chunks is reserved; simulate a trusted producer having written it. */ + private static void setChunks(Metadata metadata, String json) { + metadata.setTrusted(true); + metadata.set(TikaCoreProperties.TIKA_CHUNKS, json); + metadata.setTrusted(false); + } + @Test public void testChunksFieldWrittenAsRawJson() throws Exception { Metadata metadata = new Metadata(); metadata.set("title", "test doc"); // "PwAAAEEgAABAwAAA" is the ES-documented base64 for [0.5, 10.0, 6.0] // in big-endian float32 — the exact format ES dense_vector expects. - metadata.set("tika:chunks", + setChunks(metadata, "[{\"text\":\"hello\",\"vector\":\"PwAAAEEgAABAwAAA\"," + "\"locators\":{\"text\":[{\"start_offset\":0," + "\"end_offset\":5}]}}]"); @@ -105,9 +113,9 @@ public void testChunksFieldWrittenAsRawJson() throws Exception { metadata, ESEmitterConfig.AttachmentStrategy.SEPARATE_DOCUMENTS); JsonNode doc = MAPPER.readTree(json); - JsonNode chunks = doc.get("tika:chunks"); + JsonNode chunks = doc.get("tk:chunks"); assertTrue(chunks.isArray(), - "tika:chunks should be a JSON array, not a string"); + "tk:chunks should be a JSON array, not a string"); assertEquals(1, chunks.size()); assertEquals("hello", chunks.get(0).get("text").asText()); assertEquals("PwAAAEEgAABAwAAA", chunks.get(0).get("vector").asText()); @@ -116,12 +124,12 @@ public void testChunksFieldWrittenAsRawJson() throws Exception { @Test public void testNonJsonFieldStaysString() throws Exception { Metadata metadata = new Metadata(); - metadata.set("tika:chunks", "not json at all"); + setChunks(metadata, "not json at all"); String json = ESClient.metadataToJsonContainerInsert( metadata, ESEmitterConfig.AttachmentStrategy.SEPARATE_DOCUMENTS); JsonNode doc = MAPPER.readTree(json); - assertTrue(doc.get("tika:chunks").isTextual()); - assertEquals("not json at all", doc.get("tika:chunks").asText()); + assertTrue(doc.get("tk:chunks").isTextual()); + assertEquals("not json at all", doc.get("tk:chunks").asText()); } @Test @@ -139,12 +147,12 @@ public void testTrailingContentRejected() throws Exception { // A value that passes a naive readTree() check but contains trailing // content that would inject extra fields into the document via writeRawValue. Metadata metadata = new Metadata(); - metadata.set("tika:chunks", "[1,2,3], \"injected\": true"); + setChunks(metadata, "[1,2,3], \"injected\": true"); String json = ESClient.metadataToJsonContainerInsert( metadata, ESEmitterConfig.AttachmentStrategy.SEPARATE_DOCUMENTS); JsonNode doc = MAPPER.readTree(json); // Must be written as an escaped string, not raw JSON — no injection - assertTrue(doc.get("tika:chunks").isTextual(), + assertTrue(doc.get("tk:chunks").isTextual(), "trailing-content value must be escaped, not written as raw JSON"); assertFalse(doc.has("injected"), "injected field must not appear in document"); diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-jdbc/src/main/java/org/apache/tika/pipes/emitter/jdbc/JDBCEmitterFactory.java b/tika-pipes/tika-pipes-plugins/tika-pipes-jdbc/src/main/java/org/apache/tika/pipes/emitter/jdbc/JDBCEmitterFactory.java index 26e0cfa3546..a63c6995128 100644 --- a/tika-pipes/tika-pipes-plugins/tika-pipes-jdbc/src/main/java/org/apache/tika/pipes/emitter/jdbc/JDBCEmitterFactory.java +++ b/tika-pipes/tika-pipes-plugins/tika-pipes-jdbc/src/main/java/org/apache/tika/pipes/emitter/jdbc/JDBCEmitterFactory.java @@ -35,7 +35,7 @@ * "my-jdbc-emitter": { * "connection": "jdbc:postgresql://localhost/mydb", * "insert": "insert into docs (id, content) values (?, ?)", - * "keys": {"id": "X-TIKA:content", "content": "content"} + * "keys": {"id": "tk:content", "content": "content"} * } * } * } diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-opensearch/src/main/java/org/apache/tika/pipes/emitter/opensearch/OpenSearchClient.java b/tika-pipes/tika-pipes-plugins/tika-pipes-opensearch/src/main/java/org/apache/tika/pipes/emitter/opensearch/OpenSearchClient.java index cc543da2c99..e02c96a3779 100644 --- a/tika-pipes/tika-pipes-plugins/tika-pipes-opensearch/src/main/java/org/apache/tika/pipes/emitter/opensearch/OpenSearchClient.java +++ b/tika-pipes/tika-pipes-plugins/tika-pipes-opensearch/src/main/java/org/apache/tika/pipes/emitter/opensearch/OpenSearchClient.java @@ -318,7 +318,7 @@ public String getBulkJson(String id, String routing) throws IOException { * OpenSearch can index vectors, locators, etc. natively. */ static final Set INFERENCE_JSON_FIELDS = Set.of( - "tika:chunks"); + "tk:chunks"); private static void writeMetadata(Metadata metadata, JsonGenerator jsonGenerator) throws IOException { //writes the metadata without the start { or the end } diff --git a/tika-serialization/src/test/java/org/apache/tika/digest/MockDigesterFactory.java b/tika-serialization/src/test/java/org/apache/tika/digest/MockDigesterFactory.java index b86dd2c43a9..a9b9684e580 100644 --- a/tika-serialization/src/test/java/org/apache/tika/digest/MockDigesterFactory.java +++ b/tika-serialization/src/test/java/org/apache/tika/digest/MockDigesterFactory.java @@ -23,7 +23,7 @@ public class MockDigesterFactory implements DigesterFactory { @Override public Digester build() { - return new InputStreamDigester("SHA-256", "X-TIKA:digest:SHA-256", new MockEncoder()); + return new InputStreamDigester("SHA-256", "tk:digest:SHA-256", new MockEncoder()); } private static class MockEncoder implements Encoder { diff --git a/tika-serialization/src/test/java/org/apache/tika/metadata/filter/AttachmentCountingListFilter.java b/tika-serialization/src/test/java/org/apache/tika/metadata/filter/AttachmentCountingListFilter.java index 5cde289d8e4..48af7094382 100644 --- a/tika-serialization/src/test/java/org/apache/tika/metadata/filter/AttachmentCountingListFilter.java +++ b/tika-serialization/src/test/java/org/apache/tika/metadata/filter/AttachmentCountingListFilter.java @@ -32,7 +32,7 @@ protected void doFilter(List metadataList, ParseContext parseContext) if (metadataList == null || metadataList.isEmpty()) { return; } - metadataList.get(0).set("X-TIKA:attachment_count", Integer.toString(metadataList.size() - 1)); + metadataList.get(0).set("tk:attachment-count", Integer.toString(metadataList.size() - 1)); count += metadataList.size(); } diff --git a/tika-serialization/src/test/java/org/apache/tika/metadata/writefilter/StandardMetadataLimiterTest.java b/tika-serialization/src/test/java/org/apache/tika/metadata/writefilter/StandardMetadataLimiterTest.java index 5edfc80ea2a..989d1cdf11b 100644 --- a/tika-serialization/src/test/java/org/apache/tika/metadata/writefilter/StandardMetadataLimiterTest.java +++ b/tika-serialization/src/test/java/org/apache/tika/metadata/writefilter/StandardMetadataLimiterTest.java @@ -76,7 +76,9 @@ public void testMetadataFactoryConfig() throws Exception { String[] creators = metadata.getValues("dc:creator"); assertEquals(2, creators.length); - assertEquals("012345678901", creators[1]); + // tk: keys are shorter than the old X-TIKA: keys, so ALWAYS_SET_FIELDS overhead + // shrank by 4 bytes (tk:parsed-by vs X-TIKA:Parsed-By) -> 4 more value bytes survive + assertEquals("0123456789012345", creators[1]); assertContainsCount(" hello ", metadata.get(TikaCoreProperties.TIKA_CONTENT), 30); assertTruncated(metadata); } @@ -123,7 +125,8 @@ public void testMetadataFactoryFieldsConfig() throws Exception { //this gets more than the other test because this is filtering out some fields assertEquals(3, creators.length); - assertEquals("012345678901234", creators[2]); + // +4 value bytes vs the old X-TIKA: keys (see testMetadataFactoryConfig) + assertEquals("0123456789012345678", creators[2]); assertContainsCount(" hello ", metadata.get(TikaCoreProperties.TIKA_CONTENT), 30); assertTruncated(metadata); } diff --git a/tika-serialization/src/test/java/org/apache/tika/serialization/JsonMetadataListTest.java b/tika-serialization/src/test/java/org/apache/tika/serialization/JsonMetadataListTest.java index 655fa572252..6fe325ab310 100644 --- a/tika-serialization/src/test/java/org/apache/tika/serialization/JsonMetadataListTest.java +++ b/tika-serialization/src/test/java/org/apache/tika/serialization/JsonMetadataListTest.java @@ -117,7 +117,7 @@ public void testPrettyPrint() throws Exception { JsonMetadataList.setPrettyPrinting(true); JsonMetadataList.toJson(metadataList, writer); String expected = "[ {[NEWLINE] \"zk1\" : [ \"v1\", \"v2\", \"v3\", \"v4\", \"v4\" ],[NEWLINE] \"zk2\" : \"v1\",[NEWLINE]" + - " \"X-TIKA:content\" : \"this is the content\"[NEWLINE]}, " + + " \"tk:content\" : \"this is the content\"[NEWLINE]}, " + "{[NEWLINE] \"k3\" : [ \"v1\", \"v2\", \"v3\", \"v4\", \"v4\" ],[NEWLINE] \"k4\" : \"v1\"[NEWLINE]} ]"; assertEquals(expected, writer .toString() diff --git a/tika-serialization/src/test/java/org/apache/tika/serialization/JsonMetadataTest.java b/tika-serialization/src/test/java/org/apache/tika/serialization/JsonMetadataTest.java index d2fa94b6b03..735cc8bcccf 100644 --- a/tika-serialization/src/test/java/org/apache/tika/serialization/JsonMetadataTest.java +++ b/tika-serialization/src/test/java/org/apache/tika/serialization/JsonMetadataTest.java @@ -72,7 +72,7 @@ public void testBasicSerializationAndDeserialization() throws Exception { String expected = "{[NEWLINE] \"alma_mater\" : \"普林斯顿大学\",[NEWLINE] \"html\" : \"& \"," + "[NEWLINE] \"json_escapes\" : \"the: \\\"quick\\\" brown, fox\"," + "[NEWLINE] \"k1\" : [ \"v1\", \"v2\" ],[NEWLINE] \"k3\" : [ \"v3\", \"v3\" ],[NEWLINE] \"k4\" : \"500,000\"," + - "[NEWLINE] \"url\" : \"/myApp/myAction.html?method=router&cmd=1\",[NEWLINE] \"X-TIKA:content\" : \"this is the content\"[NEWLINE]}"; + "[NEWLINE] \"url\" : \"/myApp/myAction.html?method=router&cmd=1\",[NEWLINE] \"tk:content\" : \"this is the content\"[NEWLINE]}"; assertEquals(expected, writer .toString() .replaceAll("[\r\n]+", "[NEWLINE]")); diff --git a/tika-serialization/src/test/resources/configs/TIKA-3137-field-mapping.json b/tika-serialization/src/test/resources/configs/TIKA-3137-field-mapping.json index 1be71c363aa..6f442e03ca2 100644 --- a/tika-serialization/src/test/resources/configs/TIKA-3137-field-mapping.json +++ b/tika-serialization/src/test/resources/configs/TIKA-3137-field-mapping.json @@ -4,7 +4,7 @@ "field-name-mapping-filter": { "excludeUnmapped": true, "mappings": { - "X-TIKA:content": "content", + "tk:content": "content", "a": "b", "b": "c", "c": "d" diff --git a/tika-serialization/src/test/resources/configs/TIKA-3695-fields.json b/tika-serialization/src/test/resources/configs/TIKA-3695-fields.json index 42167068468..174830cf356 100644 --- a/tika-serialization/src/test/resources/configs/TIKA-3695-fields.json +++ b/tika-serialization/src/test/resources/configs/TIKA-3695-fields.json @@ -7,7 +7,7 @@ "maxKeySize": 999, "maxFieldSize": 10001, // maxTotalBytes accounts for ~244 bytes of ALWAYS_SET_FIELDS overhead - // (Content-Type, X-TIKA:Parsed-By, etc.) plus room for dc:title and 3 dc:creator values + // (Content-Type, tk:parsed-by, etc.) plus room for dc:title and 3 dc:creator values "maxTotalBytes": 421, "maxValuesPerField": 100, "includeFields": ["dc:creator", "dc:title"] diff --git a/tika-serialization/src/test/resources/configs/TIKA-3695.json b/tika-serialization/src/test/resources/configs/TIKA-3695.json index a4b785fbecd..b00c50e57b2 100644 --- a/tika-serialization/src/test/resources/configs/TIKA-3695.json +++ b/tika-serialization/src/test/resources/configs/TIKA-3695.json @@ -5,7 +5,7 @@ "parse-context": { "standard-metadata-limiter-factory": { // maxTotalBytes accounts for ~244 bytes of ALWAYS_SET_FIELDS overhead - // (Content-Type, X-TIKA:Parsed-By, etc.) plus room for 2 dc:creator values + // (Content-Type, tk:parsed-by, etc.) plus room for 2 dc:creator values "maxTotalBytes": 330, "includeFields": ["dc:creator"] } diff --git a/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/TikaResource.java b/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/TikaResource.java index 31265d99ae1..2971a87b810 100644 --- a/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/TikaResource.java +++ b/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/TikaResource.java @@ -783,7 +783,7 @@ private StreamingOutput produceRawOutputWithContext(TikaInputStream tis, Metadat handlerTypeName, context.get(ContentHandlerFactory.class)); // Parse with pipes using CONTENT_ONLY mode - the metadata filter in - // EmitHandler will strip everything except X-TIKA:content + // EmitHandler will strip everything except tk:content List metadataList; try { metadataList = parseWithPipes(tis, metadata, context, ParseMode.CONTENT_ONLY); diff --git a/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerIntegrationTest.java b/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerIntegrationTest.java index 0bc085274b3..46bcb14d9ac 100644 --- a/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerIntegrationTest.java +++ b/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerIntegrationTest.java @@ -279,7 +279,7 @@ public void testStdErrOutBasic() throws Exception { assertEquals(1, metadataList.size()); assertContains("quick brown fox", metadataList .get(0) - .get("X-TIKA:content")); + .get("tk:content")); testBaseline(); } @@ -312,7 +312,7 @@ public void test1WayTLS() throws Exception { .get("author")); assertContains("hello world", metadataList .get(0) - .get("X-TIKA:content")); + .get("tk:content")); //now test no tls config webClient = WebClient.create(httpsEndpoint + RMETA_PATH); @@ -355,7 +355,7 @@ public void test2WayTLS() throws Exception { .get("author")); assertContains("hello world", metadataList .get(0) - .get("X-TIKA:content")); + .get("tk:content")); //now test that no tls config fails webClient = WebClient.create(httpsEndpoint + RMETA_PATH); @@ -453,7 +453,7 @@ private void testBaseline() throws Exception { .get("author")); assertContains("hello world", metadataList .get(0) - .get("X-TIKA:content")); + .get("tk:content")); return; } fail("should have completed within 3 tries"); diff --git a/tika-server/tika-server-core/src/test/resources/configs/metadata-filter-include.json b/tika-server/tika-server-core/src/test/resources/configs/metadata-filter-include.json index 25f6b9d41a4..9e1f1982d8d 100644 --- a/tika-server/tika-server-core/src/test/resources/configs/metadata-filter-include.json +++ b/tika-server/tika-server-core/src/test/resources/configs/metadata-filter-include.json @@ -3,7 +3,7 @@ { "include-field-metadata-filter": { "include": [ - "X-TIKA:content", + "tk:content", "extended-properties:Application", "Content-Type" ] diff --git a/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/MetadataResourceTest.java b/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/MetadataResourceTest.java index 0a0a25b7619..863a7735acc 100644 --- a/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/MetadataResourceTest.java +++ b/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/MetadataResourceTest.java @@ -102,7 +102,7 @@ public void testSimpleWord() throws Exception { assertNotNull(metadata.get(TikaCoreProperties.CREATOR.getName())); assertEquals("Maxim Valyanskiy", metadata.get(TikaCoreProperties.CREATOR.getName())); - assertEquals("f8be45c34e8919eedba48cc8d207fbf0", metadata.get("X-TIKA:digest:MD5"), "X-TIKA:digest:MD5"); + assertEquals("f8be45c34e8919eedba48cc8d207fbf0", metadata.get("tk:digest:MD5"), "tk:digest:MD5"); } @Test diff --git a/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/OpenNLPMetadataFilterTest.java b/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/OpenNLPMetadataFilterTest.java index 849cf21cce3..cad8a260ab2 100644 --- a/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/OpenNLPMetadataFilterTest.java +++ b/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/OpenNLPMetadataFilterTest.java @@ -90,11 +90,11 @@ public void testMeta() throws Exception { .get(OfficeOpenXMLExtended.APPLICATION)); assertContains("plundered our seas", metadataList .get(6) - .get("X-TIKA:content")); + .get("tk:content")); assertEquals("a38e6c7b38541af87148dee9634cb811", metadataList .get(10) - .get("X-TIKA:digest:MD5")); + .get("tk:digest:MD5")); assertEquals("eng", metadataList .get(6) diff --git a/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/OptimaizeMetadataFilterTest.java b/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/OptimaizeMetadataFilterTest.java index 3b225b94ca5..327af86f51d 100644 --- a/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/OptimaizeMetadataFilterTest.java +++ b/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/OptimaizeMetadataFilterTest.java @@ -90,11 +90,11 @@ public void testMeta() throws Exception { .get(OfficeOpenXMLExtended.APPLICATION)); assertContains("plundered our seas", metadataList .get(6) - .get("X-TIKA:content")); + .get("tk:content")); assertEquals("a38e6c7b38541af87148dee9634cb811", metadataList .get(10) - .get("X-TIKA:digest:MD5")); + .get("tk:digest:MD5")); assertEquals("en", metadataList .get(6) diff --git a/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/RecursiveMetadataFilterTest.java b/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/RecursiveMetadataFilterTest.java index 99e05f75ba0..d200fa88a83 100644 --- a/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/RecursiveMetadataFilterTest.java +++ b/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/RecursiveMetadataFilterTest.java @@ -80,7 +80,7 @@ public void testBasicFilter() throws Exception { assertEquals(5, metadataList.size()); Set expectedKeys = new HashSet<>(); - expectedKeys.add("X-TIKA:content"); + expectedKeys.add("tk:content"); expectedKeys.add("extended-properties:Application"); expectedKeys.add("Content-Type"); for (Metadata m : metadataList) { diff --git a/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/RecursiveMetadataResourceTest.java b/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/RecursiveMetadataResourceTest.java index 3203950a348..a7610581b05 100644 --- a/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/RecursiveMetadataResourceTest.java +++ b/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/RecursiveMetadataResourceTest.java @@ -107,11 +107,11 @@ public void testGZOut() throws Exception { .get(OfficeOpenXMLExtended.APPLICATION)); assertContains("plundered our seas", metadataList .get(6) - .get("X-TIKA:content")); + .get("tk:content")); assertEquals("a38e6c7b38541af87148dee9634cb811", metadataList .get(10) - .get("X-TIKA:digest:MD5")); + .get("tk:digest:MD5")); } @Test @@ -148,7 +148,7 @@ public void testGZIn() throws Exception { .get(OfficeOpenXMLExtended.APPLICATION)); assertContains("plundered our seas", metadataList .get(6) - .get("X-TIKA:content")); + .get("tk:content")); } @@ -168,11 +168,11 @@ public void testSimpleWord() throws Exception { .get(OfficeOpenXMLExtended.APPLICATION)); assertContains("plundered our seas", metadataList .get(6) - .get("X-TIKA:content")); + .get("tk:content")); assertEquals("a38e6c7b38541af87148dee9634cb811", metadataList .get(10) - .get("X-TIKA:digest:MD5")); + .get("tk:digest:MD5")); } @Test diff --git a/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/UnpackerResourceTest.java b/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/UnpackerResourceTest.java index 4f3a87093fe..56eb711c473 100644 --- a/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/UnpackerResourceTest.java +++ b/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/UnpackerResourceTest.java @@ -761,7 +761,7 @@ public void testFrictionlessUnpackAllAddsContainerAsUnpackedZero() throws Except /** * Documents that includeFullMetadata=true in FRICTIONLESS adds a - * metadata.json envelope whose entries carry X-TIKA:content (the extracted + * metadata.json envelope whose entries carry tk:content (the extracted * text) and Content-Type alongside the per-document metadata. */ @Test @@ -804,10 +804,10 @@ public void testFrictionlessIncludeFullMetadataAddsMetadataJson() throws Excepti "Container metadata entry should carry Content-Type. Entry: " + container); assertEquals("application/msword", container.get("Content-Type").asText(), "Container metadata entry should describe the submitted .doc"); - assertTrue(container.has("X-TIKA:content"), - "Container metadata entry should carry X-TIKA:content (extracted text). Entry: " + container); - assertTrue(container.get("X-TIKA:content").asText().length() > 0, - "X-TIKA:content for the container should be non-empty"); + assertTrue(container.has("tk:content"), + "Container metadata entry should carry tk:content (extracted text). Entry: " + container); + assertTrue(container.get("tk:content").asText().length() > 0, + "tk:content for the container should be non-empty"); } /** diff --git a/tika-server/tika-server-standard/src/test/resources/configs/TIKA-3137-include.json b/tika-server/tika-server-standard/src/test/resources/configs/TIKA-3137-include.json index 0355de40da0..2f3fcd00644 100644 --- a/tika-server/tika-server-standard/src/test/resources/configs/TIKA-3137-include.json +++ b/tika-server/tika-server-standard/src/test/resources/configs/TIKA-3137-include.json @@ -3,7 +3,7 @@ { "include-field-metadata-filter": { "include": [ - "X-TIKA:content", + "tk:content", "extended-properties:Application", "Content-Type" ]