From 583ff91e9ea266ad7037dd50f172d4d416d00c8b Mon Sep 17 00:00:00 2001 From: Tilman Hausherr Date: Fri, 28 Oct 2022 20:17:37 +0200 Subject: [PATCH 01/14] TIKA-3896: update slf4j --- tika-parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tika-parent/pom.xml b/tika-parent/pom.xml index 0a733776eb..1d3a3b5777 100644 --- a/tika-parent/pom.xml +++ b/tika-parent/pom.xml @@ -377,7 +377,7 @@ 1.18.0 1.13.0 1.2 - 2.0.1 + 2.0.3 8.11.2 5.3.23 3.39.3.0 From cb462b004d07090503b1ecc2d292b871df53ed25 Mon Sep 17 00:00:00 2001 From: Tilman Hausherr Date: Sat, 29 Oct 2022 11:59:58 +0200 Subject: [PATCH 02/14] TIKA-3896: update aws --- tika-parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tika-parent/pom.xml b/tika-parent/pom.xml index 1d3a3b5777..d7a5b20375 100644 --- a/tika-parent/pom.xml +++ b/tika-parent/pom.xml @@ -296,7 +296,7 @@ 2.14.0 - 1.12.330 + 1.12.331 9.4 1.1.0 From fc289d7a14be8b9db9e03f896e93572d5364f16f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Oct 2022 05:26:07 +0000 Subject: [PATCH 03/14] Bump dd-plist from 1.25 to 1.26 Bumps [dd-plist](https://github.com/3breadt/dd-plist) from 1.25 to 1.26. - [Release notes](https://github.com/3breadt/dd-plist/releases) - [Commits](https://github.com/3breadt/dd-plist/compare/v1.25.0...v1.26.0) --- updated-dependencies: - dependency-name: com.googlecode.plist:dd-plist dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- tika-parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tika-parent/pom.xml b/tika-parent/pom.xml index d7a5b20375..e0f1f22fa8 100644 --- a/tika-parent/pom.xml +++ b/tika-parent/pom.xml @@ -315,7 +315,7 @@ 3.6.1 4.0.0.1 3.5.4 - 1.25 + 1.26 1.0.0-M2 0.4.0 From 1236f5bc05a7c0d18578c5426d270aa5c0f8f03b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Oct 2022 05:28:19 +0000 Subject: [PATCH 04/14] Bump curator-recipes from 2.13.0 to 5.4.0 Bumps [curator-recipes](https://github.com/apache/curator) from 2.13.0 to 5.4.0. - [Release notes](https://github.com/apache/curator/releases) - [Commits](https://github.com/apache/curator/compare/apache-curator-2.13.0...apache-curator-5.4.0) --- updated-dependencies: - dependency-name: org.apache.curator:curator-recipes dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- tika-parsers/tika-parsers-ml/tika-age-recogniser/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tika-parsers/tika-parsers-ml/tika-age-recogniser/pom.xml b/tika-parsers/tika-parsers-ml/tika-age-recogniser/pom.xml index 7910175f19..e2800571ac 100644 --- a/tika-parsers/tika-parsers-ml/tika-age-recogniser/pom.xml +++ b/tika-parsers/tika-parsers-ml/tika-age-recogniser/pom.xml @@ -128,7 +128,7 @@ org.apache.curator curator-recipes - 2.13.0 + 5.4.0 From 0c69f7d8106141cf40abdfe4266f32ce244b4789 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Oct 2022 05:28:36 +0000 Subject: [PATCH 05/14] Bump jackcess from 4.0.2 to 4.0.4 Bumps [jackcess](https://github.com/jahlborn/jackcess) from 4.0.2 to 4.0.4. - [Release notes](https://github.com/jahlborn/jackcess/releases) - [Commits](https://github.com/jahlborn/jackcess/compare/jackcess-4.0.2...jackcess-4.0.4) --- updated-dependencies: - dependency-name: com.healthmarketscience.jackcess:jackcess dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- tika-parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tika-parent/pom.xml b/tika-parent/pom.xml index d7a5b20375..c9abe2e70f 100644 --- a/tika-parent/pom.xml +++ b/tika-parent/pom.xml @@ -326,7 +326,7 @@ 62.2 1.4.0 - 4.0.2 + 4.0.4 4.0.1 2.21.13 2.13.4 From 8d694fe66e3a88cb1403cfa5e7dcf9cdde53a05e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Nov 2022 05:38:53 +0000 Subject: [PATCH 06/14] Bump commons-compress from 1.21 to 1.22 Bumps commons-compress from 1.21 to 1.22. --- updated-dependencies: - dependency-name: org.apache.commons:commons-compress dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- tika-parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tika-parent/pom.xml b/tika-parent/pom.xml index ac6e95ed84..2eb9dbd235 100644 --- a/tika-parent/pom.xml +++ b/tika-parent/pom.xml @@ -306,7 +306,7 @@ 1.5.0 1.15 4.4 - 1.21 + 1.22 1.9.0 1.3 2.11.0 From 1a4ee335a94f0e6cfe42548fc2c7aea0a66abd66 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Nov 2022 05:39:21 +0000 Subject: [PATCH 07/14] Bump aws.version from 1.12.331 to 1.12.332 Bumps `aws.version` from 1.12.331 to 1.12.332. Updates `aws-java-sdk-transcribe` from 1.12.331 to 1.12.332 - [Release notes](https://github.com/aws/aws-sdk-java/releases) - [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.331...1.12.332) Updates `aws-java-sdk-s3` from 1.12.331 to 1.12.332 - [Release notes](https://github.com/aws/aws-sdk-java/releases) - [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.331...1.12.332) --- updated-dependencies: - dependency-name: com.amazonaws:aws-java-sdk-transcribe dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: com.amazonaws:aws-java-sdk-s3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- tika-parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tika-parent/pom.xml b/tika-parent/pom.xml index ac6e95ed84..b857294bcf 100644 --- a/tika-parent/pom.xml +++ b/tika-parent/pom.xml @@ -296,7 +296,7 @@ 2.14.0 - 1.12.331 + 1.12.332 9.4 1.1.0 From 6ab7a0abeffb6282fc6820a531409e1e6b43243e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Nov 2022 05:40:12 +0000 Subject: [PATCH 08/14] Bump uimaj-core from 3.3.0 to 3.3.1 Bumps [uimaj-core](https://github.com/apache/uima-uimaj) from 3.3.0 to 3.3.1. - [Release notes](https://github.com/apache/uima-uimaj/releases) - [Changelog](https://github.com/apache/uima-uimaj/blob/rel/uimaj-3.3.1/RELEASE_NOTES.md) - [Commits](https://github.com/apache/uima-uimaj/compare/rel/uimaj-3.3.0...rel/uimaj-3.3.1) --- updated-dependencies: - dependency-name: org.apache.uima:uimaj-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- tika-parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tika-parent/pom.xml b/tika-parent/pom.xml index ac6e95ed84..35d631e376 100644 --- a/tika-parent/pom.xml +++ b/tika-parent/pom.xml @@ -386,7 +386,7 @@ 1.9 3.9.3 - 3.3.0 + 3.3.1 3.3.0 0.8 2.12.2 From e1d9bcd9ae75999078df616c61874cac0a0165e5 Mon Sep 17 00:00:00 2001 From: tballison Date: Tue, 1 Nov 2022 14:50:54 -0400 Subject: [PATCH 09/14] TIKA-3869 -- update jackson databind version --- tika-parent/pom.xml | 10 ++-------- .../tika-parser-cad-module/pom.xml | 5 +---- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/tika-parent/pom.xml b/tika-parent/pom.xml index e42c269245..7aad1a3e41 100644 --- a/tika-parent/pom.xml +++ b/tika-parent/pom.xml @@ -330,6 +330,7 @@ 4.0.1 2.21.13 2.13.4 + 2.13.4.2 1.3.2 2.0 2.1.1 @@ -437,7 +438,7 @@ com.fasterxml.jackson.core jackson-databind - ${jackson.version} + ${jackson.databind.version} com.fasterxml.jackson.datatype @@ -881,13 +882,6 @@ h2 2.1.214 - - - com.fasterxml.jackson.core - jackson-databind - 2.13.4 - true diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/pom.xml b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/pom.xml index c08ebeeee6..5588afa8e4 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/pom.xml +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/pom.xml @@ -36,16 +36,13 @@ tika-parser-microsoft-module ${project.version} - com.fasterxml.jackson.core jackson-core - ${jackson.version} - + com.fasterxml.jackson.core jackson-databind - ${jackson.version} From 533ea871f7384c35576365f6dcd0d7f9640f8fdd Mon Sep 17 00:00:00 2001 From: Tim Allison Date: Tue, 1 Nov 2022 18:38:37 -0400 Subject: [PATCH 10/14] TIKA-3903 -- try to maintain file's extension in temporary files to help with detection. (#769) --- .../tika/detect/FileCommandDetector.java | 2 +- .../extractor/ParserContainerExtractor.java | 2 +- .../ParsingEmbeddedDocumentExtractor.java | 3 +- .../org/apache/tika/io/FilenameUtils.java | 21 +++++++- .../apache/tika/io/TemporaryResources.java | 39 ++++++++++++--- .../org/apache/tika/io/TikaInputStream.java | 50 +++++++++++++++---- .../apache/tika/parser/AutoDetectParser.java | 2 +- .../apache/tika/parser/CompositeParser.java | 2 +- .../apache/tika/parser/DigestingParser.java | 2 +- .../org/apache/tika/parser/NetworkParser.java | 2 +- .../tika/parser/RecursiveParserWrapper.java | 2 +- .../tika/parser/digest/CompositeDigester.java | 2 +- .../parser/digest/InputStreamDigester.java | 2 +- .../tika/parser/external/ExternalParser.java | 2 +- .../tika/parser/external2/ExternalParser.java | 2 +- .../multiple/AbstractMultipleParser.java | 2 +- .../org/apache/tika/utils/ParserUtils.java | 7 +-- .../test/java/org/apache/tika/TikaTest.java | 5 +- .../apache/tika/parser/gdal/GDALParser.java | 2 +- .../geoinfo/GeographicInformationParser.java | 2 +- .../tika/parser/isatab/ISArchiveParser.java | 2 +- .../tika/parser/netcdf/NetCDFParser.java | 2 +- .../parser/pot/PooledTimeSeriesParser.java | 2 +- .../tika/parser/journal/JournalParser.java | 2 +- .../org/apache/tika/parser/mp4/MP4Parser.java | 2 +- .../org/apache/tika/parser/mat/MatParser.java | 2 +- .../apache/tika/parser/html/HtmlParser.java | 2 +- .../parser/image/AbstractImageParser.java | 2 +- .../apache/tika/parser/image/JpegParser.java | 2 +- .../apache/tika/parser/image/TiffParser.java | 2 +- .../apache/tika/parser/image/WebPParser.java | 2 +- .../apache/tika/parser/epub/EpubParser.java | 6 ++- .../tika/parser/ocr/TesseractOCRParser.java | 2 +- .../tika/parser/pdf/AbstractPDF2XHTML.java | 1 + .../renderer/pdf/mutool/MuPDFRenderer.java | 2 +- .../apache/tika/parser/pkg/PackageParser.java | 4 +- .../org/apache/tika/parser/pkg/RarParser.java | 2 +- .../tika/parser/strings/StringsParser.java | 2 +- .../tika/pipes/fetcher/http/HttpFetcher.java | 5 +- .../pipes/fetcher/http/HttpFetcherTest.java | 2 +- .../tika/pipes/fetcher/s3/S3Fetcher.java | 3 +- 41 files changed, 142 insertions(+), 62 deletions(-) diff --git a/tika-core/src/main/java/org/apache/tika/detect/FileCommandDetector.java b/tika-core/src/main/java/org/apache/tika/detect/FileCommandDetector.java index e3e7b10f9b..42349faec1 100644 --- a/tika-core/src/main/java/org/apache/tika/detect/FileCommandDetector.java +++ b/tika-core/src/main/java/org/apache/tika/detect/FileCommandDetector.java @@ -108,7 +108,7 @@ public MediaType detect(InputStream input, Metadata metadata) throws IOException input.mark(maxBytes); try (TemporaryResources tmp = new TemporaryResources()) { - Path tmpFile = tmp.createTempFile(); + Path tmpFile = tmp.createTempFile(metadata); Files.copy(new BoundedInputStream(maxBytes, input), tmpFile, REPLACE_EXISTING); return detectOnPath(tmpFile, metadata); } finally { diff --git a/tika-core/src/main/java/org/apache/tika/extractor/ParserContainerExtractor.java b/tika-core/src/main/java/org/apache/tika/extractor/ParserContainerExtractor.java index 50d29f8d3b..b2e9cd169c 100644 --- a/tika-core/src/main/java/org/apache/tika/extractor/ParserContainerExtractor.java +++ b/tika-core/src/main/java/org/apache/tika/extractor/ParserContainerExtractor.java @@ -111,7 +111,7 @@ public void parse( throws IOException, SAXException, TikaException { TemporaryResources tmp = new TemporaryResources(); try { - TikaInputStream tis = TikaInputStream.get(stream, tmp); + TikaInputStream tis = TikaInputStream.get(stream, tmp, metadata); // Figure out what we have to process String filename = metadata.get(TikaCoreProperties.RESOURCE_NAME_KEY); diff --git a/tika-core/src/main/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractor.java b/tika-core/src/main/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractor.java index bdfd028f51..8391624a30 100644 --- a/tika-core/src/main/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractor.java +++ b/tika-core/src/main/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractor.java @@ -98,7 +98,8 @@ public void parseEmbedded( // Use the delegate parser to parse this entry try (TemporaryResources tmp = new TemporaryResources()) { - final TikaInputStream newStream = TikaInputStream.get(new CloseShieldInputStream(stream), tmp); + final TikaInputStream newStream = + TikaInputStream.get(new CloseShieldInputStream(stream), tmp, metadata); if (stream instanceof TikaInputStream) { final Object container = ((TikaInputStream) stream).getOpenContainer(); if (container != null) { diff --git a/tika-core/src/main/java/org/apache/tika/io/FilenameUtils.java b/tika-core/src/main/java/org/apache/tika/io/FilenameUtils.java index 42a9b4bbe1..17bc9e9207 100644 --- a/tika-core/src/main/java/org/apache/tika/io/FilenameUtils.java +++ b/tika-core/src/main/java/org/apache/tika/io/FilenameUtils.java @@ -19,6 +19,8 @@ import java.util.HashSet; import java.util.Locale; +import org.apache.tika.utils.StringUtils; + public class FilenameUtils { @@ -93,7 +95,7 @@ public static String normalize(final String name) { public static String getName(final String path) { if (path == null || path.length() == 0) { - return ""; + return StringUtils.EMPTY; } int unix = path.lastIndexOf("/"); int windows = path.lastIndexOf("\\"); @@ -102,8 +104,23 @@ public static String getName(final String path) { int colon = path.lastIndexOf(":"); String cand = path.substring(Math.max(colon, Math.max(unix, windows)) + 1); if (cand.equals("..") || cand.equals(".")) { - return ""; + return StringUtils.EMPTY; } return cand; } + + /** + * This includes the period, e.g. ".pdf" + * @param path + * @return the suffix or an empty string if one could not be found + */ + public static String getSuffixFromPath(String path) { + String n = getName(path); + int i = n.lastIndexOf("."); + //arbitrarily sets max extension length + if (i > -1 && n.length() - i < 6) { + return n.substring(i); + } + return StringUtils.EMPTY; + } } diff --git a/tika-core/src/main/java/org/apache/tika/io/TemporaryResources.java b/tika-core/src/main/java/org/apache/tika/io/TemporaryResources.java index c323083613..c1565ab86d 100644 --- a/tika-core/src/main/java/org/apache/tika/io/TemporaryResources.java +++ b/tika-core/src/main/java/org/apache/tika/io/TemporaryResources.java @@ -27,6 +27,9 @@ import org.slf4j.LoggerFactory; import org.apache.tika.exception.TikaException; +import org.apache.tika.metadata.Metadata; +import org.apache.tika.metadata.TikaCoreProperties; +import org.apache.tika.utils.StringUtils; /** * Utility class for tracking and ultimately closing or otherwise disposing @@ -52,7 +55,7 @@ public class TemporaryResources implements Closeable { /** * Sets the directory to be used for the temporary files created by - * the {@link #createTempFile()} method. + * the {@link #createTempFile(String)} method. * * @param tempFileDir temporary file directory, * or null for the system default @@ -63,7 +66,7 @@ public void setTemporaryFileDirectory(Path tempFileDir) { /** * Sets the directory to be used for the temporary files created by - * the {@link #createTempFile()} method. + * the {@link #createTempFile(String)} method. * * @param tempFileDir temporary file directory, * or null for the system default @@ -76,13 +79,15 @@ public void setTemporaryFileDirectory(File tempFileDir) { /** * Creates a temporary file that will automatically be deleted when * the {@link #close()} method is called, returning its path. - * + * @param suffix -- the suffix of the file if known, starting with "." as in ".pdf" * @return Path to created temporary file that will be deleted after closing * @throws IOException */ - public Path createTempFile() throws IOException { - final Path path = tempFileDir == null ? Files.createTempFile("apache-tika-", ".tmp") : - Files.createTempFile(tempFileDir, "apache-tika-", ".tmp"); + public Path createTempFile(String suffix) throws IOException { + String actualSuffix = StringUtils.isBlank(suffix) ? ".tmp" : suffix; + + final Path path = tempFileDir == null ? Files.createTempFile("apache-tika-", actualSuffix) : + Files.createTempFile(tempFileDir, "apache-tika-", actualSuffix); addResource(() -> { try { Files.delete(path); @@ -95,16 +100,34 @@ public Path createTempFile() throws IOException { return path; } + public Path createTempFile() throws IOException { + return createTempFile(StringUtils.EMPTY); + } + + /** + * Creates a temporary file that will automatically be deleted when + * the {@link #close()} method is called, returning its path. + * + * @return Path to created temporary file that will be deleted after closing + * @throws IOException + */ + public Path createTempFile(Metadata metadata) throws IOException { + String resourceName = metadata.get(TikaCoreProperties.RESOURCE_NAME_KEY); + if (StringUtils.isBlank(resourceName)) { + return createTempFile(StringUtils.EMPTY); + } + return createTempFile(FilenameUtils.getSuffixFromPath(resourceName)); + } /** * Creates and returns a temporary file that will automatically be * deleted when the {@link #close()} method is called. * * @return Created temporary file that'll be deleted after closing * @throws IOException - * @see #createTempFile() + * @see #createTempFile(String) */ public File createTemporaryFile() throws IOException { - return createTempFile().toFile(); + return createTempFile(StringUtils.EMPTY).toFile(); } /** diff --git a/tika-core/src/main/java/org/apache/tika/io/TikaInputStream.java b/tika-core/src/main/java/org/apache/tika/io/TikaInputStream.java index aef9021b36..76db4a2a3a 100644 --- a/tika-core/src/main/java/org/apache/tika/io/TikaInputStream.java +++ b/tika-core/src/main/java/org/apache/tika/io/TikaInputStream.java @@ -119,6 +119,10 @@ public class TikaInputStream extends TaggedInputStream { private int consecutiveEOFs = 0; private byte[] skipBuffer; + //suffix of the file if known. This is used to create temp files + //with the right suffixes. This should include the initial . as in ".doc" + private String suffix = null; + /** * Creates a TikaInputStream instance. This private constructor is used * by the static factory methods based on the available information. @@ -131,6 +135,7 @@ private TikaInputStream(Path path) throws IOException { this.path = path; this.tmp = new TemporaryResources(); this.length = Files.size(path); + this.suffix = FilenameUtils.getSuffixFromPath(path.getFileName().toString()); } private TikaInputStream(Path path, TemporaryResources tmp, long length) throws IOException { @@ -138,6 +143,7 @@ private TikaInputStream(Path path, TemporaryResources tmp, long length) throws I this.path = path; this.tmp = tmp; this.length = length; + this.suffix = FilenameUtils.getSuffixFromPath(path.getFileName().toString()); } /** @@ -154,6 +160,8 @@ private TikaInputStream(File file) throws FileNotFoundException { this.path = file.toPath(); this.tmp = new TemporaryResources(); this.length = file.length(); + this.suffix = FilenameUtils.getSuffixFromPath(path.getFileName().toString()); + } /** @@ -168,11 +176,12 @@ private TikaInputStream(File file) throws FileNotFoundException { * @param tmp tracker for temporary resources associated with this stream * @param length total length of the stream, or -1 if unknown */ - private TikaInputStream(InputStream stream, TemporaryResources tmp, long length) { + private TikaInputStream(InputStream stream, TemporaryResources tmp, long length, String suffix) { super(stream); this.path = null; this.tmp = tmp; this.length = length; + this.suffix = suffix; } /** @@ -215,7 +224,7 @@ public static boolean isTikaInputStream(InputStream stream) { * @return a TikaInputStream instance * @since Apache Tika 0.10 */ - public static TikaInputStream get(InputStream stream, TemporaryResources tmp) { + public static TikaInputStream get(InputStream stream, TemporaryResources tmp, Metadata metadata) { if (stream == null) { throw new NullPointerException("The Stream must not be null"); } @@ -227,17 +236,28 @@ public static TikaInputStream get(InputStream stream, TemporaryResources tmp) { if (!(stream.markSupported())) { stream = new BufferedInputStream(stream); } - return new TikaInputStream(stream, tmp, -1); + return new TikaInputStream(stream, tmp, -1, getExtension(metadata)); } } + /** + * @deprecated use {@link TikaInputStream#get(InputStream, TemporaryResources, Metadata)} + * @param stream + * @param tmp + * @return + */ + @Deprecated + public static TikaInputStream get(InputStream stream, TemporaryResources tmp) { + return get(stream, tmp, null); + } + /** * Casts or wraps the given stream to a TikaInputStream instance. * This method can be used to access the functionality of this class * even when given just a normal input stream instance. *

* Use this method instead of the - * {@link #get(InputStream, TemporaryResources)} alternative when you + * {@link #get(InputStream, TemporaryResources, Metadata)} alternative when you * do explicitly close the returned stream. The recommended * access pattern is: *

@@ -254,7 +274,7 @@ public static TikaInputStream get(InputStream stream, TemporaryResources tmp) {
      * @return a TikaInputStream instance
      */
     public static TikaInputStream get(InputStream stream) {
-        return get(stream, new TemporaryResources());
+        return get(stream, new TemporaryResources(), null);
     }
 
     /**
@@ -301,7 +321,7 @@ public static TikaInputStream get(byte[] data) {
     public static TikaInputStream get(byte[] data, Metadata metadata) {
         metadata.set(Metadata.CONTENT_LENGTH, Integer.toString(data.length));
         return new TikaInputStream(new UnsynchronizedByteArrayInputStream(data), new TemporaryResources(),
-                data.length);
+                data.length, getExtension(metadata));
     }
 
     /**
@@ -414,7 +434,7 @@ public static TikaInputStream get(InputStreamFactory factory) throws IOException
      */
     public static TikaInputStream get(InputStreamFactory factory, TemporaryResources tmp)
             throws IOException {
-        TikaInputStream stream = get(factory.getInputStream(), tmp);
+        TikaInputStream stream = get(factory.getInputStream(), tmp, null);
         stream.streamFactory = factory;
         return stream;
     }
@@ -451,6 +471,7 @@ public static TikaInputStream get(Blob blob) throws SQLException {
      * @throws SQLException if BLOB data can not be accessed
      */
     public static TikaInputStream get(Blob blob, Metadata metadata) throws SQLException {
+
         long length = -1;
         try {
             length = blob.length();
@@ -465,8 +486,17 @@ public static TikaInputStream get(Blob blob, Metadata metadata) throws SQLExcept
             return get(blob.getBytes(1, (int) length), metadata);
         } else {
             return new TikaInputStream(new BufferedInputStream(blob.getBinaryStream()),
-                    new TemporaryResources(), length);
+                    new TemporaryResources(), length,
+                    getExtension(metadata));
+        }
+    }
+
+    private static String getExtension(Metadata metadata) {
+        if (metadata == null) {
+            return StringUtils.EMPTY;
         }
+        String name = metadata.get(TikaCoreProperties.RESOURCE_NAME_KEY);
+        return FilenameUtils.getSuffixFromPath(name);
     }
 
     /**
@@ -570,7 +600,7 @@ public static TikaInputStream get(URL url, Metadata metadata) throws IOException
         }
 
         return new TikaInputStream(new BufferedInputStream(connection.getInputStream()),
-                new TemporaryResources(), length);
+                new TemporaryResources(), length, getExtension(metadata));
     }
 
     /**
@@ -678,7 +708,7 @@ public Path getPath(int maxBytes) throws IOException {
             if (position > 0) {
                 throw new IOException("Stream is already being read");
             } else {
-                Path tmpFile = tmp.createTempFile();
+                Path tmpFile = tmp.createTempFile(suffix);
                 if (maxBytes > -1) {
                     try (InputStream lookAhead = new LookaheadInputStream(this, maxBytes)) {
                         Files.copy(lookAhead, tmpFile, REPLACE_EXISTING);
diff --git a/tika-core/src/main/java/org/apache/tika/parser/AutoDetectParser.java b/tika-core/src/main/java/org/apache/tika/parser/AutoDetectParser.java
index 0a6a5e6dc0..4d870d7718 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/AutoDetectParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/AutoDetectParser.java
@@ -141,7 +141,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
         }
         TemporaryResources tmp = new TemporaryResources();
         try {
-            TikaInputStream tis = TikaInputStream.get(stream, tmp);
+            TikaInputStream tis = TikaInputStream.get(stream, tmp, metadata);
 
             //figure out if we should spool to disk
             maybeSpool(tis, autoDetectParserConfig, metadata);
diff --git a/tika-core/src/main/java/org/apache/tika/parser/CompositeParser.java b/tika-core/src/main/java/org/apache/tika/parser/CompositeParser.java
index 73cffa72a0..6c151e21cf 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/CompositeParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/CompositeParser.java
@@ -287,7 +287,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
             context.set(ParseRecord.class, parserRecord);
         }
         try {
-            TikaInputStream taggedStream = TikaInputStream.get(stream, tmp);
+            TikaInputStream taggedStream = TikaInputStream.get(stream, tmp, metadata);
             TaggedContentHandler taggedHandler =
                     handler != null ? new TaggedContentHandler(handler) : null;
             String parserClassname = ParserUtils.getParserClassname(parser);
diff --git a/tika-core/src/main/java/org/apache/tika/parser/DigestingParser.java b/tika-core/src/main/java/org/apache/tika/parser/DigestingParser.java
index a36785fdff..30736091a0 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/DigestingParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/DigestingParser.java
@@ -47,7 +47,7 @@ public DigestingParser(Parser parser, Digester digester) {
     public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
                       ParseContext context) throws IOException, SAXException, TikaException {
         TemporaryResources tmp = new TemporaryResources();
-        TikaInputStream tis = TikaInputStream.get(stream, tmp);
+        TikaInputStream tis = TikaInputStream.get(stream, tmp, metadata);
         try {
             if (digester != null) {
                 digester.digest(tis, metadata, context);
diff --git a/tika-core/src/main/java/org/apache/tika/parser/NetworkParser.java b/tika-core/src/main/java/org/apache/tika/parser/NetworkParser.java
index a1f1e63e08..3582a70f7b 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/NetworkParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/NetworkParser.java
@@ -67,7 +67,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
                       ParseContext context) throws IOException, SAXException, TikaException {
         TemporaryResources tmp = new TemporaryResources();
         try {
-            TikaInputStream tis = TikaInputStream.get(stream, tmp);
+            TikaInputStream tis = TikaInputStream.get(stream, tmp, metadata);
             parse(tis, handler, metadata, context);
         } finally {
             tmp.dispose();
diff --git a/tika-core/src/main/java/org/apache/tika/parser/RecursiveParserWrapper.java b/tika-core/src/main/java/org/apache/tika/parser/RecursiveParserWrapper.java
index d660cc1757..e9e9457bb7 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/RecursiveParserWrapper.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/RecursiveParserWrapper.java
@@ -155,7 +155,7 @@ public void parse(InputStream stream, ContentHandler recursiveParserWrapperHandl
             }
         }
         try {
-            TikaInputStream tis = TikaInputStream.get(stream, tmp);
+            TikaInputStream tis = TikaInputStream.get(stream, tmp, metadata);
             RecursivelySecureContentHandler secureContentHandler =
                     new RecursivelySecureContentHandler(localHandler, tis, writeLimit,
                             throwOnWriteLimitReached, context);
diff --git a/tika-core/src/main/java/org/apache/tika/parser/digest/CompositeDigester.java b/tika-core/src/main/java/org/apache/tika/parser/digest/CompositeDigester.java
index 595f46f4af..ee4dfe233d 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/digest/CompositeDigester.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/digest/CompositeDigester.java
@@ -39,7 +39,7 @@ public CompositeDigester(DigestingParser.Digester... digesters) {
     @Override
     public void digest(InputStream is, Metadata m, ParseContext parseContext) throws IOException {
         TemporaryResources tmp = new TemporaryResources();
-        TikaInputStream tis = TikaInputStream.get(is, tmp);
+        TikaInputStream tis = TikaInputStream.get(is, tmp, m);
         try {
             for (DigestingParser.Digester digester : digesters) {
                 digester.digest(tis, m, parseContext);
diff --git a/tika-core/src/main/java/org/apache/tika/parser/digest/InputStreamDigester.java b/tika-core/src/main/java/org/apache/tika/parser/digest/InputStreamDigester.java
index 76e3d9adfe..22f89d82a5 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/digest/InputStreamDigester.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/digest/InputStreamDigester.java
@@ -152,7 +152,7 @@ public void digest(InputStream is, Metadata metadata, ParseContext parseContext)
         } else {
             TemporaryResources tmp = new TemporaryResources();
             try {
-                TikaInputStream tmpTikaInputStream = TikaInputStream.get(is, tmp);
+                TikaInputStream tmpTikaInputStream = TikaInputStream.get(is, tmp, metadata);
                 digestFile(tmpTikaInputStream.getFile(), metadata);
             } finally {
                 try {
diff --git a/tika-core/src/main/java/org/apache/tika/parser/external/ExternalParser.java b/tika-core/src/main/java/org/apache/tika/parser/external/ExternalParser.java
index 52c7cdcabc..6b607991d2 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/external/ExternalParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/external/ExternalParser.java
@@ -271,7 +271,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
 
         TemporaryResources tmp = new TemporaryResources();
         try {
-            parse(TikaInputStream.get(stream, tmp), xhtml, metadata, tmp);
+            parse(TikaInputStream.get(stream, tmp, metadata), xhtml, metadata, tmp);
         } finally {
             tmp.dispose();
         }
diff --git a/tika-core/src/main/java/org/apache/tika/parser/external2/ExternalParser.java b/tika-core/src/main/java/org/apache/tika/parser/external2/ExternalParser.java
index ec53d29dd9..3bb1825bee 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/external2/ExternalParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/external2/ExternalParser.java
@@ -104,7 +104,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
         //this may remain null, depending on whether the external parser writes to a file
         Path outFile = null;
         try (TemporaryResources tmp = new TemporaryResources()) {
-            TikaInputStream tis = TikaInputStream.get(stream, tmp);
+            TikaInputStream tis = TikaInputStream.get(stream, tmp, metadata);
             Path p = tis.getPath();
             List thisCommandLine = new ArrayList<>();
             Matcher inputMatcher = INPUT_TOKEN_MATCHER.matcher("");
diff --git a/tika-core/src/main/java/org/apache/tika/parser/multiple/AbstractMultipleParser.java b/tika-core/src/main/java/org/apache/tika/parser/multiple/AbstractMultipleParser.java
index e851d581d7..d05305f9f5 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/multiple/AbstractMultipleParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/multiple/AbstractMultipleParser.java
@@ -270,7 +270,7 @@ private void parse(InputStream stream, ContentHandler handler,
         try {
             // Ensure we'll be able to re-read safely, buffering to disk if so,
             //  to permit Parsers 2+ to be able to read the same data
-            InputStream taggedStream = ParserUtils.ensureStreamReReadable(stream, tmp);
+            InputStream taggedStream = ParserUtils.ensureStreamReReadable(stream, tmp, originalMetadata);
 
             for (Parser p : parsers) {
                 // Get a new handler for this parser, if we can
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 0ad53abd45..837f762955 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
@@ -113,7 +113,8 @@ public static void recordParserFailure(Parser parser, Throwable failure, Metadat
      * Streams that are automatically OK include {@link TikaInputStream}s
      * created from Files or InputStreamFactories, and {@link RereadableInputStream}.
      */
-    public static InputStream ensureStreamReReadable(InputStream stream, TemporaryResources tmp)
+    public static InputStream ensureStreamReReadable(InputStream stream, TemporaryResources tmp,
+                                                     Metadata metadata)
             throws IOException {
         // If it's re-readable, we're done
         if (stream instanceof RereadableInputStream) {
@@ -123,7 +124,7 @@ public static InputStream ensureStreamReReadable(InputStream stream, TemporaryRe
         // Make sure it's a TikaInputStream
         TikaInputStream tstream = TikaInputStream.cast(stream);
         if (tstream == null) {
-            tstream = TikaInputStream.get(stream, tmp);
+            tstream = TikaInputStream.get(stream, tmp, metadata);
         }
 
         // If it's factory based, it's ok
@@ -140,7 +141,7 @@ public static InputStream ensureStreamReReadable(InputStream stream, TemporaryRe
 
     /**
      * Resets the given {@link TikaInputStream} (checked by
-     * {@link #ensureStreamReReadable(InputStream, TemporaryResources)})
+     * {@link #ensureStreamReReadable(InputStream, TemporaryResources, Metadata)})
      * so that it can be re-read again.
      */
     public static InputStream streamResetForReRead(InputStream stream, TemporaryResources tmp)
diff --git a/tika-core/src/test/java/org/apache/tika/TikaTest.java b/tika-core/src/test/java/org/apache/tika/TikaTest.java
index 7c616b0fa9..fa112ca4c3 100644
--- a/tika-core/src/test/java/org/apache/tika/TikaTest.java
+++ b/tika-core/src/test/java/org/apache/tika/TikaTest.java
@@ -44,6 +44,7 @@
 
 import org.apache.tika.config.TikaConfig;
 import org.apache.tika.extractor.EmbeddedResourceHandler;
+import org.apache.tika.io.FilenameUtils;
 import org.apache.tika.io.TikaInputStream;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.metadata.TikaCoreProperties;
@@ -433,8 +434,10 @@ protected List getRecursiveMetadata(String filePath, Parser parserToWr
         RecursiveParserWrapper wrapper = new RecursiveParserWrapper(parserToWrap);
         RecursiveParserWrapperHandler handler =
                 new RecursiveParserWrapperHandler(new BasicContentHandlerFactory(handlerType, -1));
+        Metadata metadata = new Metadata();
+        metadata.set(TikaCoreProperties.RESOURCE_NAME_KEY, FilenameUtils.getName(filePath));
         try (InputStream is = getResourceAsStream("/test-documents/" + filePath)) {
-            wrapper.parse(is, handler, new Metadata(), context);
+            wrapper.parse(is, handler, metadata, context);
         }
         return handler.getMetadataList();
     }
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/gdal/GDALParser.java b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/gdal/GDALParser.java
index 4fc9c2d669..468087c32b 100644
--- a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/gdal/GDALParser.java
+++ b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/gdal/GDALParser.java
@@ -182,7 +182,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
         // first set up and run GDAL
         // process the command
         TemporaryResources tmp = new TemporaryResources();
-        TikaInputStream tis = TikaInputStream.get(stream, tmp);
+        TikaInputStream tis = TikaInputStream.get(stream, tmp, metadata);
 
         String runCommand = processCommand(tis);
         String output = execCommand(new String[]{runCommand});
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/geoinfo/GeographicInformationParser.java b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/geoinfo/GeographicInformationParser.java
index 532a336130..e5732eb759 100644
--- a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/geoinfo/GeographicInformationParser.java
+++ b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/geoinfo/GeographicInformationParser.java
@@ -97,7 +97,7 @@ public void parse(InputStream inputStream, ContentHandler contentHandler, Metada
         TemporaryResources tmp =
                 TikaInputStream.isTikaInputStream(inputStream) ? null : new TemporaryResources();
         try {
-            TikaInputStream tikaInputStream = TikaInputStream.get(inputStream, tmp);
+            TikaInputStream tikaInputStream = TikaInputStream.get(inputStream, tmp, metadata);
             File file = tikaInputStream.getFile();
             dataStore = DataStores.open(file);
             defaultMetadata = new DefaultMetadata(dataStore.getMetadata());
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/isatab/ISArchiveParser.java b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/isatab/ISArchiveParser.java
index 01e4187dac..7fd6f39c09 100644
--- a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/isatab/ISArchiveParser.java
+++ b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/isatab/ISArchiveParser.java
@@ -78,7 +78,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
         TemporaryResources tmp =
                 TikaInputStream.isTikaInputStream(stream) ? null : new TemporaryResources();
 
-        TikaInputStream tis = TikaInputStream.get(stream, tmp);
+        TikaInputStream tis = TikaInputStream.get(stream, tmp, metadata);
         try {
             if (this.location == null) {
                 this.location = tis.getFile().getParent() + File.separator;
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java
index 9dbb613af9..7f6f5a77f9 100644
--- a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java
+++ b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java
@@ -83,7 +83,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
 
         TemporaryResources tmp =
                 TikaInputStream.isTikaInputStream(stream) ? null : new TemporaryResources();
-        TikaInputStream tis = TikaInputStream.get(stream, tmp);
+        TikaInputStream tis = TikaInputStream.get(stream, tmp, metadata);
         try (NetcdfFile ncFile = NetcdfFile.open(tis.getFile().getAbsolutePath())) {
             metadata.set("File-Type-Description", ncFile.getFileTypeDescription());
             // first parse out the set of global attributes
diff --git a/tika-parsers/tika-parsers-ml/tika-parser-advancedmedia-module/src/main/java/org/apache/tika/parser/pot/PooledTimeSeriesParser.java b/tika-parsers/tika-parsers-ml/tika-parser-advancedmedia-module/src/main/java/org/apache/tika/parser/pot/PooledTimeSeriesParser.java
index d86959368b..cfe37dbbb7 100644
--- a/tika-parsers/tika-parsers-ml/tika-parser-advancedmedia-module/src/main/java/org/apache/tika/parser/pot/PooledTimeSeriesParser.java
+++ b/tika-parsers/tika-parsers-ml/tika-parser-advancedmedia-module/src/main/java/org/apache/tika/parser/pot/PooledTimeSeriesParser.java
@@ -125,7 +125,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
 
         TemporaryResources tmp = new TemporaryResources();
         try {
-            TikaInputStream tikaStream = TikaInputStream.get(stream, tmp);
+            TikaInputStream tikaStream = TikaInputStream.get(stream, tmp, metadata);
             File input = tikaStream.getFile();
             String cmdOutput = computePoT(input);
             try (InputStream ofStream = new FileInputStream(
diff --git a/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/journal/JournalParser.java b/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/journal/JournalParser.java
index a81f17dfa7..cc01e49697 100644
--- a/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/journal/JournalParser.java
+++ b/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/journal/JournalParser.java
@@ -53,7 +53,7 @@ public Set getSupportedTypes(ParseContext context) {
 
     public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
                       ParseContext context) throws IOException, SAXException, TikaException {
-        TikaInputStream tis = TikaInputStream.get(stream, new TemporaryResources());
+        TikaInputStream tis = TikaInputStream.get(stream, new TemporaryResources(), metadata);
         File tmpFile = tis.getFile();
 
         GrobidRESTParser grobidParser = new GrobidRESTParser();
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java
index d49941f157..67f74d2186 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java
@@ -96,7 +96,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
                       ParseContext context) throws IOException, SAXException, TikaException {
 
         TemporaryResources tmp = new TemporaryResources();
-        TikaInputStream tstream = TikaInputStream.get(stream, tmp);
+        TikaInputStream tstream = TikaInputStream.get(stream, tmp, metadata);
 
         try (InputStream is = Files.newInputStream(tstream.getPath())) {
 
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/mat/MatParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/mat/MatParser.java
index fef6959f69..dff4947871 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/mat/MatParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/mat/MatParser.java
@@ -70,7 +70,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
                 TikaInputStream.isTikaInputStream(stream) ? null : new TemporaryResources();
         try {
             // Use TIS so we can spool a temp file for parsing.
-            TikaInputStream tis = TikaInputStream.get(stream, tmp);
+            TikaInputStream tis = TikaInputStream.get(stream, tmp, metadata);
 
             //Extract information from header file
             MatFileReader mfr = new MatFileReader(tis.getFile()); //input .mat file
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/HtmlParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/HtmlParser.java
index 8a25e90472..d72f4865ed 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/HtmlParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/HtmlParser.java
@@ -91,7 +91,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
         try {
             if (!TikaInputStream.isTikaInputStream(stream)) {
                 tmp = new TemporaryResources();
-                stream = TikaInputStream.get(stream, tmp);
+                stream = TikaInputStream.get(stream, tmp, metadata);
             }
             //AutoDetectReader can throw exceptions during
             //initialization.  If we just created a
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/AbstractImageParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/AbstractImageParser.java
index d58fca01ba..c07e05e491 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/AbstractImageParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/AbstractImageParser.java
@@ -84,7 +84,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
         }
 
         TemporaryResources tmpResources = new TemporaryResources();
-        TikaInputStream tis = TikaInputStream.get(stream, tmpResources);
+        TikaInputStream tis = TikaInputStream.get(stream, tmpResources, metadata);
         Exception metadataException = null;
         try {
             XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/JpegParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/JpegParser.java
index 3b4e7ee8a1..c64cd98af3 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/JpegParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/JpegParser.java
@@ -52,7 +52,7 @@ void extractMetadata(InputStream stream, ContentHandler contentHandler, Metadata
             throws IOException, SAXException, TikaException {
         TemporaryResources tmp = new TemporaryResources();
         try {
-            TikaInputStream tis = TikaInputStream.get(stream, tmp);
+            TikaInputStream tis = TikaInputStream.get(stream, tmp, metadata);
             new ImageMetadataExtractor(metadata).parseJpeg(tis.getFile());
             new JempboxExtractor(metadata).parse(tis);
         } finally {
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/TiffParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/TiffParser.java
index 2e3205cfa4..89e507cc1a 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/TiffParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/TiffParser.java
@@ -52,7 +52,7 @@ void extractMetadata(InputStream stream, ContentHandler contentHandler, Metadata
             throws IOException, SAXException, TikaException {
         TemporaryResources tmp = new TemporaryResources();
         try {
-            TikaInputStream tis = TikaInputStream.get(stream, tmp);
+            TikaInputStream tis = TikaInputStream.get(stream, tmp, metadata);
             new ImageMetadataExtractor(metadata).parseTiff(tis.getFile());
             new JempboxExtractor(metadata).parse(tis);
         } finally {
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/WebPParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/WebPParser.java
index 810f5f463f..98f7422f4d 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/WebPParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/WebPParser.java
@@ -52,7 +52,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
                       ParseContext context) throws IOException, SAXException, TikaException {
         TemporaryResources tmp = new TemporaryResources();
         try {
-            TikaInputStream tis = TikaInputStream.get(stream, tmp);
+            TikaInputStream tis = TikaInputStream.get(stream, tmp, metadata);
             new ImageMetadataExtractor(metadata).parseWebP(tis.getFile());
         } finally {
             tmp.dispose();
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/epub/EpubParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/epub/EpubParser.java
index a20191da9c..816030e378 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/epub/EpubParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/epub/EpubParser.java
@@ -49,6 +49,7 @@
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.extractor.EmbeddedDocumentExtractor;
 import org.apache.tika.extractor.EmbeddedDocumentUtil;
+import org.apache.tika.io.FilenameUtils;
 import org.apache.tika.io.TemporaryResources;
 import org.apache.tika.io.TikaInputStream;
 import org.apache.tika.metadata.Metadata;
@@ -175,7 +176,7 @@ private void bufferedParse(InputStream stream, ContentHandler bodyHandler,
             }
         } else {
             temporaryResources = new TemporaryResources();
-            tis = TikaInputStream.get(new CloseShieldInputStream(stream), temporaryResources);
+            tis = TikaInputStream.get(new CloseShieldInputStream(stream), temporaryResources, metadata);
         }
         ZipFile zipFile = null;
         try {
@@ -201,7 +202,8 @@ private void trySalvage(Path brokenZip, ContentHandler bodyHandler, XHTMLContent
                             Metadata metadata, ParseContext context)
             throws IOException, TikaException, SAXException {
         try (TemporaryResources resources = new TemporaryResources()) {
-            Path salvaged = resources.createTempFile();
+            Path salvaged =
+                    resources.createTempFile(FilenameUtils.getSuffixFromPath(brokenZip.getFileName().toString()));
             ZipSalvager.salvageCopy(brokenZip.toFile(), salvaged.toFile());
             boolean success = false;
             try (ZipFile zipFile = new ZipFile(salvaged.toFile())) {
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java
index f0b21420a2..a79e05b1d1 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java
@@ -247,7 +247,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
 
 
         try (TemporaryResources tmp = new TemporaryResources()) {
-            TikaInputStream tikaStream = TikaInputStream.get(stream, tmp);
+            TikaInputStream tikaStream = TikaInputStream.get(stream, tmp, metadata);
 
             //trigger the spooling to a tmp file if the stream wasn't
             //already a TikaInputStream that contained a file
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 c9cfc94c76..4f2b2c8647 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
@@ -651,6 +651,7 @@ private RenderResult noContextRenderCurrentPage(Metadata pageMetadata,
             BufferedImage image =
                     renderer.renderImageWithDPI(pageIndex, dpi, config.getOcrImageType());
 
+            //TODO -- get suffix based on OcrImageType
             tmpFile = tmpResources.createTempFile();
             try (OutputStream os = Files.newOutputStream(tmpFile)) {
                 //TODO: get output format from TesseractConfig
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/renderer/pdf/mutool/MuPDFRenderer.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/renderer/pdf/mutool/MuPDFRenderer.java
index d108ba54ba..c3d587ef79 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/renderer/pdf/mutool/MuPDFRenderer.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/renderer/pdf/mutool/MuPDFRenderer.java
@@ -61,7 +61,7 @@ public RenderResults render(InputStream is, Metadata metadata, ParseContext pars
                                 RenderRequest... requests) throws IOException, TikaException {
         TemporaryResources tmp = new TemporaryResources();
         PageBasedRenderResults results = new PageBasedRenderResults(tmp);
-        Path path = TikaInputStream.get(is, tmp).getPath();
+        Path path = TikaInputStream.get(is, tmp, metadata).getPath();
         for (RenderRequest request : requests) {
             renderRequest(path, metadata, parseContext, request, results, tmp);
         }
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/PackageParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/PackageParser.java
index 7fedfd3ba2..9a416340d5 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/PackageParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/PackageParser.java
@@ -267,7 +267,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
             if (sne.getFormat().equals(ArchiveStreamFactory.SEVEN_Z)) {
                 // Rework as a file, and wrap
                 stream.reset();
-                TikaInputStream tstream = TikaInputStream.get(stream, tmp);
+                TikaInputStream tstream = TikaInputStream.get(stream, tmp, metadata);
 
                 // Seven Zip suports passwords, was one given?
                 String password = null;
@@ -445,7 +445,7 @@ private void parseEntry(ArchiveInputStream archive, ArchiveEntry entry,
                 // InputStream, which ArchiveInputStream isn't, so wrap
                 TemporaryResources tmp = new TemporaryResources();
                 try {
-                    TikaInputStream tis = TikaInputStream.get(archive, tmp);
+                    TikaInputStream tis = TikaInputStream.get(archive, tmp, entrydata);
                     extractor.parseEmbedded(tis, xhtml, entrydata, true);
                 } finally {
                     tmp.dispose();
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/RarParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/RarParser.java
index 770f2bc6c0..ac9fbe21c6 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/RarParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/RarParser.java
@@ -70,7 +70,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
         }
         Archive rar = null;
         try (TemporaryResources tmp = new TemporaryResources()) {
-            TikaInputStream tis = TikaInputStream.get(stream, tmp);
+            TikaInputStream tis = TikaInputStream.get(stream, tmp, metadata);
             rar = new Archive(tis.getFile());
 
             if (rar.isEncrypted()) {
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/StringsParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/StringsParser.java
index cb8f045ff5..3be4f32dc7 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/StringsParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/StringsParser.java
@@ -99,7 +99,7 @@ public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
         StringsConfig stringsConfig = context.get(StringsConfig.class, defaultStringsConfig);
 
         try (TemporaryResources tmp = new TemporaryResources()) {
-            TikaInputStream tis = TikaInputStream.get(stream, tmp);
+            TikaInputStream tis = TikaInputStream.get(stream, tmp, metadata);
             File input = tis.getFile();
 
             // Metadata
diff --git a/tika-pipes/tika-fetchers/tika-fetcher-http/src/main/java/org/apache/tika/pipes/fetcher/http/HttpFetcher.java b/tika-pipes/tika-fetchers/tika-fetcher-http/src/main/java/org/apache/tika/pipes/fetcher/http/HttpFetcher.java
index 6d555e3aa2..35e6f3e82c 100644
--- a/tika-pipes/tika-fetchers/tika-fetcher-http/src/main/java/org/apache/tika/pipes/fetcher/http/HttpFetcher.java
+++ b/tika-pipes/tika-fetchers/tika-fetcher-http/src/main/java/org/apache/tika/pipes/fetcher/http/HttpFetcher.java
@@ -66,6 +66,7 @@
 import org.apache.tika.io.TikaInputStream;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.metadata.Property;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.pipes.fetcher.AbstractFetcher;
 import org.apache.tika.pipes.fetcher.RangeFetcher;
 import org.apache.tika.utils.StringUtils;
@@ -228,7 +229,7 @@ public void run() {
     private InputStream spool(InputStream content, Metadata metadata) throws IOException {
         long start = System.currentTimeMillis();
         TemporaryResources tmp = new TemporaryResources();
-        Path tmpFile = tmp.createTempFile();
+        Path tmpFile = tmp.createTempFile(metadata);
         if (maxSpoolSize < 0) {
             Files.copy(content, tmpFile, StandardCopyOption.REPLACE_EXISTING);
         } else {
@@ -285,6 +286,7 @@ private void updateMetadata(String url, HttpResponse response, HttpClientContext
                 if (uri != null) {
                     URL u = uri.toURL();
                     metadata.set(HTTP_TARGET_URL, u.toString());
+                    metadata.set(TikaCoreProperties.RESOURCE_NAME_KEY, u.getFile());
                 }
             } catch (MalformedURLException e) {
                 //swallow
@@ -302,7 +304,6 @@ private void updateMetadata(String url, HttpResponse response, HttpClientContext
                         url);
             }
         }
-
     }
 
     private String responseToString(HttpResponse response) {
diff --git a/tika-pipes/tika-fetchers/tika-fetcher-http/src/test/java/org/apache/tika/pipes/fetcher/http/HttpFetcherTest.java b/tika-pipes/tika-fetchers/tika-fetcher-http/src/test/java/org/apache/tika/pipes/fetcher/http/HttpFetcherTest.java
index 3926710de6..e26e6cfcb2 100644
--- a/tika-pipes/tika-fetchers/tika-fetcher-http/src/test/java/org/apache/tika/pipes/fetcher/http/HttpFetcherTest.java
+++ b/tika-pipes/tika-fetchers/tika-fetcher-http/src/test/java/org/apache/tika/pipes/fetcher/http/HttpFetcherTest.java
@@ -123,7 +123,7 @@ public void testRange() throws Exception {
         HttpFetcher httpFetcher =
                 (HttpFetcher) getFetcherManager("tika-config-http.xml").getFetcher("http");
         try (TemporaryResources tmp = new TemporaryResources()) {
-            Path tmpPath = tmp.createTempFile();
+            Path tmpPath = tmp.createTempFile(metadata);
             try (InputStream is = httpFetcher.fetch(url, start, end, metadata)) {
                 Files.copy(new GZIPInputStream(is), tmpPath, StandardCopyOption.REPLACE_EXISTING);
             }
diff --git a/tika-pipes/tika-fetchers/tika-fetcher-s3/src/main/java/org/apache/tika/pipes/fetcher/s3/S3Fetcher.java b/tika-pipes/tika-fetchers/tika-fetcher-s3/src/main/java/org/apache/tika/pipes/fetcher/s3/S3Fetcher.java
index 95760e145b..12774fda0f 100644
--- a/tika-pipes/tika-fetchers/tika-fetcher-s3/src/main/java/org/apache/tika/pipes/fetcher/s3/S3Fetcher.java
+++ b/tika-pipes/tika-fetchers/tika-fetcher-s3/src/main/java/org/apache/tika/pipes/fetcher/s3/S3Fetcher.java
@@ -48,6 +48,7 @@
 import org.apache.tika.exception.FileTooLongException;
 import org.apache.tika.exception.TikaConfigException;
 import org.apache.tika.exception.TikaException;
+import org.apache.tika.io.FilenameUtils;
 import org.apache.tika.io.TemporaryResources;
 import org.apache.tika.io.TikaInputStream;
 import org.apache.tika.metadata.Metadata;
@@ -169,7 +170,7 @@ private InputStream _fetch(String fetchKey, Metadata metadata,
             } else {
                 start = System.currentTimeMillis();
                 tmp = new TemporaryResources();
-                Path tmpPath = tmp.createTempFile();
+                Path tmpPath = tmp.createTempFile(FilenameUtils.getSuffixFromPath(fetchKey));
                 Files.copy(s3Object.getObjectContent(), tmpPath, StandardCopyOption.REPLACE_EXISTING);
                 TikaInputStream tis = TikaInputStream.get(tmpPath, metadata, tmp);
                 LOGGER.debug("took {} ms to fetch metadata and copy to local tmp file",

From c8f741351cf06ca5720c03e633c0a6b95cbd9af6 Mon Sep 17 00:00:00 2001
From: Tim Allison 
Date: Tue, 1 Nov 2022 18:38:51 -0400
Subject: [PATCH 11/14] TIKA-3914 -- remove unnecessary version tags in poms
 (#781)

---
 tika-app/pom.xml                              |  2 -
 tika-batch/pom.xml                            |  3 -
 tika-bundles/tika-bundle-standard/pom.xml     |  3 -
 .../tika-detector-siegfried/pom.xml           |  2 -
 tika-eval/tika-eval-app/pom.xml               |  3 -
 tika-eval/tika-eval-core/pom.xml              |  4 -
 .../tika-langdetect-lingo24/pom.xml           |  3 -
 .../tika-langdetect-mitll-text/pom.xml        |  3 -
 tika-parent/pom.xml                           | 94 ++++++++++++++++++-
 .../tika-parser-advancedmedia-module/pom.xml  |  9 --
 .../tika-parser-nlp-module/pom.xml            | 12 ---
 .../tika-transcribe-aws/pom.xml               |  7 --
 .../tika-parser-audiovideo-module/pom.xml     |  1 -
 .../tika-parser-cad-module/pom.xml            |  1 -
 .../tika-parser-crypto-module/pom.xml         |  2 -
 .../tika-parser-digest-commons/pom.xml        |  3 -
 .../tika-parser-html-module/pom.xml           |  1 -
 .../tika-parser-image-module/pom.xml          | 15 +--
 .../tika-parser-mail-module/pom.xml           |  1 -
 .../tika-parser-microsoft-module/pom.xml      |  9 --
 .../tika-parser-miscoffice-module/pom.xml     |  5 -
 .../tika-parser-ocr-module/pom.xml            |  1 -
 .../tika-parser-pdf-module/pom.xml            |  7 --
 .../tika-parser-text-module/pom.xml           |  2 -
 .../tika-parser-xml-module/pom.xml            |  1 -
 .../tika-parser-zip-commons/pom.xml           |  1 -
 .../tika-parsers-standard-package/pom.xml     |  1 -
 tika-pipes/pom.xml                            | 10 ++
 .../tika-emitters/tika-emitter-gcs/pom.xml    |  1 -
 .../tika-emitter-opensearch/pom.xml           |  2 -
 .../tika-emitters/tika-emitter-s3/pom.xml     |  1 -
 .../tika-fetchers/tika-fetcher-gcs/pom.xml    |  1 -
 .../tika-fetchers/tika-fetcher-http/pom.xml   |  1 -
 .../tika-fetchers/tika-fetcher-s3/pom.xml     |  1 -
 tika-pipes/tika-httpclient-commons/pom.xml    |  1 -
 .../tika-pipes-iterator-csv/pom.xml           |  1 -
 .../tika-pipes-iterator-gcs/pom.xml           |  1 -
 .../tika-pipes-iterator-s3/pom.xml            |  2 -
 tika-serialization/pom.xml                    |  1 -
 tika-server/tika-server-core/pom.xml          | 11 ---
 tika-server/tika-server-standard/pom.xml      |  2 -
 tika-translate/pom.xml                        | 16 ----
 42 files changed, 108 insertions(+), 140 deletions(-)

diff --git a/tika-app/pom.xml b/tika-app/pom.xml
index 7cc33ca2e7..b9adf75eae 100644
--- a/tika-app/pom.xml
+++ b/tika-app/pom.xml
@@ -83,12 +83,10 @@
     
       org.apache.logging.log4j
       log4j-core
-      ${log4j2.version}
     
     
       org.apache.logging.log4j
       log4j-slf4j2-impl
-      ${log4j2.version}
     
     
       org.slf4j
diff --git a/tika-batch/pom.xml b/tika-batch/pom.xml
index 4dc40f216c..24b50a215a 100644
--- a/tika-batch/pom.xml
+++ b/tika-batch/pom.xml
@@ -49,12 +49,10 @@
     
       org.apache.commons
       commons-compress
-      ${commons.compress.version}
     
     
       commons-cli
       commons-cli
-      ${commons.cli.version}
     
 
     
@@ -67,7 +65,6 @@
     
       org.slf4j
       slf4j-simple
-      ${slf4j.version}
       test
     
   
diff --git a/tika-bundles/tika-bundle-standard/pom.xml b/tika-bundles/tika-bundle-standard/pom.xml
index 0529eab67c..64d625ac92 100644
--- a/tika-bundles/tika-bundle-standard/pom.xml
+++ b/tika-bundles/tika-bundle-standard/pom.xml
@@ -107,7 +107,6 @@
     
       org.osgi
       org.osgi.core
-      ${osgi.core.version}
       test
     
 
@@ -115,14 +114,12 @@
     
       org.slf4j
       slf4j-simple
-      ${slf4j.version}
       test
     
 
     
       org.glassfish.jaxb
       jaxb-runtime
-      ${jaxb.version}
       test
     
     
diff --git a/tika-detectors/tika-detector-siegfried/pom.xml b/tika-detectors/tika-detector-siegfried/pom.xml
index 3fa8eb9ce7..878e8d1e7e 100644
--- a/tika-detectors/tika-detector-siegfried/pom.xml
+++ b/tika-detectors/tika-detector-siegfried/pom.xml
@@ -33,13 +33,11 @@
     
       org.apache.logging.log4j
       log4j-core
-      ${log4j2.version}
       test
     
     
       org.apache.logging.log4j
       log4j-slf4j2-impl
-      ${log4j2.version}
       test
     
     
diff --git a/tika-eval/tika-eval-app/pom.xml b/tika-eval/tika-eval-app/pom.xml
index dce304c34b..c7f3c6f5dd 100644
--- a/tika-eval/tika-eval-app/pom.xml
+++ b/tika-eval/tika-eval-app/pom.xml
@@ -43,12 +43,10 @@
     
       org.apache.logging.log4j
       log4j-core
-      ${log4j2.version}
     
     
       org.apache.logging.log4j
       log4j-slf4j2-impl
-      ${log4j2.version}
     
     
       com.h2database
@@ -57,7 +55,6 @@
     
       org.apache.poi
       poi-ooxml
-      ${poi.version}
     
     
       org.apache.tika
diff --git a/tika-eval/tika-eval-core/pom.xml b/tika-eval/tika-eval-core/pom.xml
index 17e90302ff..23cfeb1e1e 100644
--- a/tika-eval/tika-eval-core/pom.xml
+++ b/tika-eval/tika-eval-core/pom.xml
@@ -52,12 +52,10 @@
     
       commons-codec
       commons-codec
-      ${commons.codec.version}
     
     
       org.apache.commons
       commons-math3
-      ${commons.math3.version}
     
     
       org.apache.lucene
@@ -77,12 +75,10 @@
     
       org.apache.commons
       commons-lang3
-      ${commons.lang3.version}
     
     
       org.ccil.cowan.tagsoup
       tagsoup
-      1.2.1
     
 
     
diff --git a/tika-langdetect/tika-langdetect-lingo24/pom.xml b/tika-langdetect/tika-langdetect-lingo24/pom.xml
index a61b1c4b8e..5f4bb81060 100644
--- a/tika-langdetect/tika-langdetect-lingo24/pom.xml
+++ b/tika-langdetect/tika-langdetect-lingo24/pom.xml
@@ -37,12 +37,10 @@
     
       org.glassfish.jaxb
       jaxb-runtime
-      ${jaxb.version}
     
     
       org.apache.cxf
       cxf-rt-rs-client
-      ${cxf.version}
     
     
       com.fasterxml.jackson.core
@@ -53,7 +51,6 @@
     
       org.apache.logging.log4j
       log4j-slf4j2-impl
-      ${log4j2.version}
     
     
       ${project.groupId}
diff --git a/tika-langdetect/tika-langdetect-mitll-text/pom.xml b/tika-langdetect/tika-langdetect-mitll-text/pom.xml
index f6578ed940..4066ef89b4 100644
--- a/tika-langdetect/tika-langdetect-mitll-text/pom.xml
+++ b/tika-langdetect/tika-langdetect-mitll-text/pom.xml
@@ -36,7 +36,6 @@
     
       org.glassfish.jaxb
       jaxb-runtime
-      ${jaxb.version}
     
     
       com.fasterxml.jackson.core
@@ -45,14 +44,12 @@
     
       org.apache.cxf
       cxf-rt-rs-client
-      ${cxf.version}
     
 
     
     
       org.apache.logging.log4j
       log4j-slf4j2-impl
-      ${log4j2.version}
     
     
       ${project.groupId}
diff --git a/tika-parent/pom.xml b/tika-parent/pom.xml
index 7aad1a3e41..65457cb177 100644
--- a/tika-parent/pom.xml
+++ b/tika-parent/pom.xml
@@ -410,6 +410,11 @@
         org.osgi.util.function
         1.2.0
       
+      
+        com.drewnoakes
+        metadata-extractor
+        ${metadata.extractor.version}
+      
       
         com.mchange
         c3p0
@@ -460,6 +465,7 @@
           
         
       
+      
       
         com.github.jai-imageio
         jai-imageio-core
@@ -480,6 +486,17 @@
         guava
         ${guava.version}
       
+      
+        com.googlecode.json-simple
+        json-simple
+        ${json.simple.version}
+        
+          
+            junit
+            junit
+          
+        
+      
       
         com.google.protobuf
         protobuf-java
@@ -505,6 +522,16 @@
         commons-codec
         ${commons.codec.version}
       
+      
+        org.apache.commons
+        commons-collections4
+        ${commons.collections4.version}
+      
+      
+        org.apache.commons
+        commons-csv
+        ${commons.csv.version}
+      
       
         commons-io
         commons-io
@@ -515,6 +542,11 @@
         commons-logging
         ${commons.logging.version}
       
+      
+        org.apache.commons
+        commons-math3
+        ${commons.math3.version}
+      
       
         io.netty
         netty-common
@@ -550,6 +582,11 @@
         javax.annotation-api
         ${javax.annotation.version}
       
+      
+        javax.ws.rs
+        javax.ws.rs-api
+        ${javax.rest.version}
+      
       
         javax.xml.soap
         javax.xml.soap-api
@@ -570,11 +607,41 @@
         commons-compress
         ${commons.compress.version}
       
+      
+        org.apache.commons
+        commons-exec
+        ${commons.exec.version}
+      
       
         org.apache.commons
         commons-lang3
         ${commons.lang3.version}
       
+      
+        org.apache.cxf
+        cxf-rt-frontend-jaxrs
+        ${cxf.version}
+      
+      
+        org.apache.cxf
+        cxf-rt-rs-client
+        ${cxf.version}
+      
+      
+        org.apache.cxf
+        cxf-rt-rs-service-description
+        ${cxf.version}
+      
+      
+        org.apache.cxf
+        cxf-rt-rs-security-cors
+        ${cxf.version}
+      
+      
+        org.apache.cxf
+        cxf-rt-transports-http-jetty
+        ${cxf.version}
+      
       
         org.apache.felix
         org.apache.felix.scr.annotations
@@ -637,6 +704,16 @@
         opennlp-tools
         ${opennlp.version}
       
+      
+        org.apache.poi
+        poi
+        ${poi.version}
+      
+      
+        org.apache.poi
+        poi-ooxml
+        ${poi.version}
+      
       
         org.bouncycastle
         bcmail-jdk15on
@@ -652,6 +729,11 @@
         bcprov-jdk15on
         ${bouncycastle.version}
       
+      
+        org.ccil.cowan.tagsoup
+        tagsoup
+        1.2.1
+      
       
         org.codehaus.plexus
         plexus-utils
@@ -716,6 +798,11 @@
             
         
       
+      
+        org.mockito
+        mockito-core
+        ${mockito.version}
+      
       
         org.netpreserve
         jwarc
@@ -741,6 +828,11 @@
         quartz
         2.3.2
       
+      
+        org.slf4j
+        jcl-over-slf4j
+        ${slf4j.version}
+      
       
         org.slf4j
         slf4j-api
@@ -748,7 +840,7 @@
       
       
         org.slf4j
-        jcl-over-slf4j
+        slf4j-simple
         ${slf4j.version}
       
       
diff --git a/tika-parsers/tika-parsers-ml/tika-parser-advancedmedia-module/pom.xml b/tika-parsers/tika-parsers-ml/tika-parser-advancedmedia-module/pom.xml
index 5257689dd7..495bcfa387 100644
--- a/tika-parsers/tika-parsers-ml/tika-parser-advancedmedia-module/pom.xml
+++ b/tika-parsers/tika-parsers-ml/tika-parser-advancedmedia-module/pom.xml
@@ -37,27 +37,22 @@
     
       com.googlecode.json-simple
       json-simple
-      1.1.1
     
     
       org.apache.httpcomponents
       httpclient
-      ${httpcomponents.version}
     
     
       org.apache.httpcomponents
       httpcore
-      ${httpcore.version}
     
     
       commons-codec
       commons-codec
-      ${commons.codec.version}
     
     
       org.apache.httpcomponents
       httpmime
-      ${httpcomponents.version}
     
     
       com.github.openjson
@@ -67,23 +62,19 @@
     
       javax.ws.rs
       javax.ws.rs-api
-      ${javax.rest.version}
     
     
       org.apache.commons
       commons-exec
-      ${commons.exec.version}
     
     
       org.apache.commons
       commons-lang3
-      ${commons.lang3.version}
       test
     
     
       org.apache.cxf
       cxf-rt-rs-client
-      ${cxf.version}
       test
     
   
diff --git a/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/pom.xml b/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/pom.xml
index f1b4f142fd..3b547e149a 100644
--- a/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/pom.xml
+++ b/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/pom.xml
@@ -83,38 +83,26 @@
         
             com.googlecode.json-simple
             json-simple
-            ${json.simple.version}
-            
-                
-                    junit
-                    junit
-                
-            
         
         
             org.apache.cxf
             cxf-rt-rs-client
-            ${cxf.version}
         
         
             javax.annotation
             javax.annotation-api
-            ${javax.annotation.version}
         
         
             org.apache.httpcomponents
             httpclient
-            ${httpcomponents.version}
         
         
             org.apache.httpcomponents
             httpcore
-            ${httpcore.version}
         
         
             commons-codec
             commons-codec
-            ${commons.codec.version}
         
         
             com.google.code.gson
diff --git a/tika-parsers/tika-parsers-ml/tika-transcribe-aws/pom.xml b/tika-parsers/tika-parsers-ml/tika-transcribe-aws/pom.xml
index 09aba010f7..b7b8fb8c0c 100644
--- a/tika-parsers/tika-parsers-ml/tika-transcribe-aws/pom.xml
+++ b/tika-parsers/tika-parsers-ml/tika-transcribe-aws/pom.xml
@@ -47,13 +47,6 @@
     
       com.googlecode.json-simple
       json-simple
-      ${json.simple.version}
-      
-        
-          junit
-          junit
-        
-      
     
   
   
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/pom.xml b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/pom.xml
index 4c83ae3a6e..eeb0234f93 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/pom.xml
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/pom.xml
@@ -33,7 +33,6 @@
     
       com.drewnoakes
       metadata-extractor
-      ${metadata.extractor.version}
     
 
   
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/pom.xml b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/pom.xml
index 5588afa8e4..93ff2b38a2 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/pom.xml
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/pom.xml
@@ -67,7 +67,6 @@
       
     
   
-
   
     2.2.1-rc2
   
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module/pom.xml b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module/pom.xml
index 6208345c8b..b2ee5987b5 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module/pom.xml
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module/pom.xml
@@ -33,12 +33,10 @@
     
       org.bouncycastle
       bcmail-jdk15on
-      ${bouncycastle.version}
     
     
       org.bouncycastle
       bcprov-jdk15on
-      ${bouncycastle.version}
     
   
   
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-digest-commons/pom.xml b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-digest-commons/pom.xml
index 55f8cf3973..5cb3ba49d8 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-digest-commons/pom.xml
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-digest-commons/pom.xml
@@ -33,17 +33,14 @@
     
       commons-codec
       commons-codec
-      ${commons.codec.version}
     
     
       org.bouncycastle
       bcmail-jdk15on
-      ${bouncycastle.version}
     
     
       org.bouncycastle
       bcprov-jdk15on
-      ${bouncycastle.version}
     
 
   
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-module/pom.xml b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-module/pom.xml
index 5e9d041d89..ab6061b98c 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-module/pom.xml
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-module/pom.xml
@@ -39,7 +39,6 @@
     
       commons-codec
       commons-codec
-      ${commons.codec.version}
     
 
     
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/pom.xml b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/pom.xml
index c3dbc26429..4553a50415 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/pom.xml
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/pom.xml
@@ -33,18 +33,20 @@
     
       com.drewnoakes
       metadata-extractor
-      ${metadata.extractor.version}
     
     
       ${project.groupId}
       tika-parser-xmp-commons
       ${project.version}
     
-    
     
       com.github.jai-imageio
       jai-imageio-core
-      ${imageio.version}
+    
+    
+      org.apache.pdfbox
+      jbig2-imageio
+      ${jbig2.version}
     
     
@@ -54,12 +56,6 @@
       ${imageio.version}
       test
     
-    
-      org.apache.pdfbox
-      jbig2-imageio
-      ${jbig2.version}
-    
-
     
       ${project.groupId}
       tika-parser-xmp-commons
@@ -70,7 +66,6 @@
     
       org.mockito
       mockito-core
-      ${mockito.version}
       test
     
   
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-module/pom.xml b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-module/pom.xml
index c7a55da3c3..7da8b4bf3a 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-module/pom.xml
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-module/pom.xml
@@ -48,7 +48,6 @@
     
       org.mockito
       mockito-core
-      ${mockito.version}
       test
     
     
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/pom.xml b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/pom.xml
index baf48892a4..1aec55de16 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/pom.xml
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/pom.xml
@@ -68,17 +68,14 @@
     
       commons-codec
       commons-codec
-      ${commons.codec.version}
     
     
       org.apache.commons
       commons-lang3
-      ${commons.lang3.version}
     
     
       org.apache.poi
       poi
-      ${poi.version}
     
     
       org.apache.poi
@@ -88,13 +85,11 @@
     
       org.apache.poi
       poi-ooxml
-      ${poi.version}
     
     
     
       commons-logging
       commons-logging
-      ${commons.logging.version}
     
     
       com.healthmarketscience.jackcess
@@ -117,24 +112,20 @@
     
       org.bouncycastle
       bcmail-jdk15on
-      ${bouncycastle.version}
     
     
       org.bouncycastle
       bcprov-jdk15on
-      ${bouncycastle.version}
     
     
     
       org.apache.logging.log4j
       log4j-core
-      ${log4j2.version}
       test
     
     
       org.apache.logging.log4j
       log4j-slf4j2-impl
-      ${log4j2.version}
       test
     
   
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/pom.xml b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/pom.xml
index df419aef1c..14c78a4bbc 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/pom.xml
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/pom.xml
@@ -48,27 +48,22 @@
     
       org.apache.commons
       commons-lang3
-      ${commons.lang3.version}
     
     
       org.apache.commons
       commons-collections4
-      ${commons.collections4.version}
     
     
       org.apache.poi
       poi
-      ${poi.version}
     
     
       commons-codec
       commons-codec
-      ${commons.codec.version}
     
     
       org.glassfish.jaxb
       jaxb-runtime
-      ${jaxb.version}
     
     
       ${project.groupId}
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/pom.xml b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/pom.xml
index 2444cf1c61..a552d2407a 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/pom.xml
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/pom.xml
@@ -33,7 +33,6 @@
     
       org.apache.commons
       commons-lang3
-      ${commons.lang3.version}
     
     
       org.apache.commons
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/pom.xml b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/pom.xml
index eacca9fae1..dcdbf5182c 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/pom.xml
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/pom.xml
@@ -63,12 +63,10 @@
     
       org.bouncycastle
       bcmail-jdk15on
-      ${bouncycastle.version}
     
     
       org.bouncycastle
       bcprov-jdk15on
-      ${bouncycastle.version}
     
     
     
       com.github.jai-imageio
       jai-imageio-core
-      ${imageio.version}
       test
     
   
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/pom.xml b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/pom.xml
index cc78f2ce50..e24c2f51be 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/pom.xml
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/pom.xml
@@ -38,12 +38,10 @@
     
       commons-codec
       commons-codec
-      ${commons.codec.version}
     
     
       org.apache.commons
       commons-csv
-      ${commons.csv.version}
     
   
 
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/pom.xml b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/pom.xml
index 24202eaf9b..b31abe4178 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/pom.xml
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/pom.xml
@@ -33,7 +33,6 @@
     
       commons-codec
       commons-codec
-      ${commons.codec.version}
     
     
       xerces
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-zip-commons/pom.xml b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-zip-commons/pom.xml
index c9e0fd4eea..7131a79db9 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-zip-commons/pom.xml
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-zip-commons/pom.xml
@@ -33,7 +33,6 @@
     
       org.apache.commons
       commons-compress
-      ${commons.compress.version}
     
   
   
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/pom.xml b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/pom.xml
index e034afad80..6aa841ed9e 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/pom.xml
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/pom.xml
@@ -34,7 +34,6 @@
     
       org.osgi
       org.osgi.core
-      ${osgi.core.version}
       provided
       true
     
diff --git a/tika-pipes/pom.xml b/tika-pipes/pom.xml
index 6a79e7baba..f18f0a25b2 100644
--- a/tika-pipes/pom.xml
+++ b/tika-pipes/pom.xml
@@ -50,6 +50,11 @@
         in the submodules.
         -->
     
+      
+        com.amazonaws
+        aws-java-sdk-s3
+        ${aws.version}
+      
       
         com.azure
         azure-storage-blob
@@ -72,6 +77,11 @@
             
         
       
+      
+        com.google.cloud
+        google-cloud-storage
+        ${google.cloud.version}
+      
       
         io.projectreactor
         reactor-core
diff --git a/tika-pipes/tika-emitters/tika-emitter-gcs/pom.xml b/tika-pipes/tika-emitters/tika-emitter-gcs/pom.xml
index b6eb980558..339e1e2060 100644
--- a/tika-pipes/tika-emitters/tika-emitter-gcs/pom.xml
+++ b/tika-pipes/tika-emitters/tika-emitter-gcs/pom.xml
@@ -46,7 +46,6 @@
     
       com.google.cloud
       google-cloud-storage
-      ${google.cloud.version}
     
   
 
diff --git a/tika-pipes/tika-emitters/tika-emitter-opensearch/pom.xml b/tika-pipes/tika-emitters/tika-emitter-opensearch/pom.xml
index 8634fdbce2..9127453b4d 100644
--- a/tika-pipes/tika-emitters/tika-emitter-opensearch/pom.xml
+++ b/tika-pipes/tika-emitters/tika-emitter-opensearch/pom.xml
@@ -56,12 +56,10 @@
     
       org.eclipse.jetty
       jetty-io
-      ${jetty.version}
     
     
       org.eclipse.jetty
       jetty-http
-      ${jetty.version}
     
     
       ${project.groupId}
diff --git a/tika-pipes/tika-emitters/tika-emitter-s3/pom.xml b/tika-pipes/tika-emitters/tika-emitter-s3/pom.xml
index 04abfb1a01..8c22411b16 100644
--- a/tika-pipes/tika-emitters/tika-emitter-s3/pom.xml
+++ b/tika-pipes/tika-emitters/tika-emitter-s3/pom.xml
@@ -46,7 +46,6 @@
     
       com.amazonaws
       aws-java-sdk-s3
-      ${aws.version}
     
     
       org.apache.logging.log4j
diff --git a/tika-pipes/tika-fetchers/tika-fetcher-gcs/pom.xml b/tika-pipes/tika-fetchers/tika-fetcher-gcs/pom.xml
index 20a2221259..654c951da7 100644
--- a/tika-pipes/tika-fetchers/tika-fetcher-gcs/pom.xml
+++ b/tika-pipes/tika-fetchers/tika-fetcher-gcs/pom.xml
@@ -38,7 +38,6 @@
         
             com.google.cloud
             google-cloud-storage
-            ${google.cloud.version}
         
     
 
diff --git a/tika-pipes/tika-fetchers/tika-fetcher-http/pom.xml b/tika-pipes/tika-fetchers/tika-fetcher-http/pom.xml
index a6877aa761..fce84e2a35 100644
--- a/tika-pipes/tika-fetchers/tika-fetcher-http/pom.xml
+++ b/tika-pipes/tika-fetchers/tika-fetcher-http/pom.xml
@@ -55,7 +55,6 @@
     
       org.mockito
       mockito-core
-      ${mockito.version}
       test
     
   
diff --git a/tika-pipes/tika-fetchers/tika-fetcher-s3/pom.xml b/tika-pipes/tika-fetchers/tika-fetcher-s3/pom.xml
index 3a72f656a5..d45172dd1e 100644
--- a/tika-pipes/tika-fetchers/tika-fetcher-s3/pom.xml
+++ b/tika-pipes/tika-fetchers/tika-fetcher-s3/pom.xml
@@ -32,7 +32,6 @@
         
             com.amazonaws
             aws-java-sdk-s3
-            ${aws.version}
         
         
             org.apache.logging.log4j
diff --git a/tika-pipes/tika-httpclient-commons/pom.xml b/tika-pipes/tika-httpclient-commons/pom.xml
index 02d645c22e..28298c5e8b 100644
--- a/tika-pipes/tika-httpclient-commons/pom.xml
+++ b/tika-pipes/tika-httpclient-commons/pom.xml
@@ -39,7 +39,6 @@
     
       org.apache.httpcomponents
       httpclient
-      ${httpcomponents.version}
     
   
 
diff --git a/tika-pipes/tika-pipes-iterators/tika-pipes-iterator-csv/pom.xml b/tika-pipes/tika-pipes-iterators/tika-pipes-iterator-csv/pom.xml
index a75258603f..75c40cde5f 100644
--- a/tika-pipes/tika-pipes-iterators/tika-pipes-iterator-csv/pom.xml
+++ b/tika-pipes/tika-pipes-iterators/tika-pipes-iterator-csv/pom.xml
@@ -41,7 +41,6 @@
     
       org.apache.commons
       commons-csv
-      ${commons.csv.version}
     
   
   
diff --git a/tika-pipes/tika-pipes-iterators/tika-pipes-iterator-gcs/pom.xml b/tika-pipes/tika-pipes-iterators/tika-pipes-iterator-gcs/pom.xml
index ff995afe8e..74bd2e9d9d 100644
--- a/tika-pipes/tika-pipes-iterators/tika-pipes-iterator-gcs/pom.xml
+++ b/tika-pipes/tika-pipes-iterators/tika-pipes-iterator-gcs/pom.xml
@@ -41,7 +41,6 @@
     
       com.google.cloud
       google-cloud-storage
-      ${google.cloud.version}
     
   
   
diff --git a/tika-pipes/tika-pipes-iterators/tika-pipes-iterator-s3/pom.xml b/tika-pipes/tika-pipes-iterators/tika-pipes-iterator-s3/pom.xml
index 5a1ee12f6d..2809bebe25 100644
--- a/tika-pipes/tika-pipes-iterators/tika-pipes-iterator-s3/pom.xml
+++ b/tika-pipes/tika-pipes-iterators/tika-pipes-iterator-s3/pom.xml
@@ -41,12 +41,10 @@
     
       com.amazonaws
       aws-java-sdk-s3
-      ${aws.version}
     
     
       org.apache.logging.log4j
       log4j-slf4j2-impl
-      ${log4j2.version}
       provided
     
   
diff --git a/tika-serialization/pom.xml b/tika-serialization/pom.xml
index 03f810dae9..c1d5fad70c 100644
--- a/tika-serialization/pom.xml
+++ b/tika-serialization/pom.xml
@@ -38,7 +38,6 @@
     
       org.osgi
       org.osgi.core
-      ${osgi.core.version}
       provided
       true
     
diff --git a/tika-server/tika-server-core/pom.xml b/tika-server/tika-server-core/pom.xml
index eff551787f..dfc52365b4 100644
--- a/tika-server/tika-server-core/pom.xml
+++ b/tika-server/tika-server-core/pom.xml
@@ -70,43 +70,35 @@
     
       org.apache.commons
       commons-csv
-      ${commons.csv.version}
     
     
       org.apache.cxf
       cxf-rt-frontend-jaxrs
-      ${cxf.version}
     
     
       org.apache.cxf
       cxf-rt-rs-service-description
-      ${cxf.version}
       test
     
     
       org.apache.cxf
       cxf-rt-transports-http-jetty
-      ${cxf.version}
     
     
       org.apache.cxf
       cxf-rt-rs-security-cors
-      ${cxf.version}
     
     
       commons-cli
       commons-cli
-      ${commons.cli.version}
     
     
       org.apache.cxf
       cxf-rt-rs-client
-      ${cxf.version}
     
     
       org.apache.commons
       commons-lang3
-      ${commons.lang3.version}
     
     
     
@@ -129,14 +121,11 @@
     
       org.apache.logging.log4j
       log4j-core
-      ${log4j2.version}
     
     
       org.apache.logging.log4j
       log4j-slf4j2-impl
-      ${log4j2.version}
     
-
   
 
   
diff --git a/tika-server/tika-server-standard/pom.xml b/tika-server/tika-server-standard/pom.xml
index b8c48cdd99..a3c8a2d783 100644
--- a/tika-server/tika-server-standard/pom.xml
+++ b/tika-server/tika-server-standard/pom.xml
@@ -67,12 +67,10 @@
     
       org.apache.logging.log4j
       log4j-core
-      ${log4j2.version}
     
     
       org.apache.logging.log4j
       log4j-slf4j2-impl
-      ${log4j2.version}
     
     
     
diff --git a/tika-translate/pom.xml b/tika-translate/pom.xml
index 7bed8b3386..85b3880655 100644
--- a/tika-translate/pom.xml
+++ b/tika-translate/pom.xml
@@ -50,23 +50,10 @@
       microsoft-translator-java-api
       ${microsoft.translator.version}
       jar
-      
-        
-          com.googlecode.json-simple
-          json-simple
-        
-      
     
     
       com.googlecode.json-simple
       json-simple
-      ${json.simple.version}
-      
-        
-          junit
-          junit
-        
-      
     
     
     2.14.0
-    1.12.332
+    1.12.333
     9.4
     1.1.0
     

From 02bd6f7095f540c1bfc498fb64773e317bd6358e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 3 Nov 2022 05:07:51 +0000
Subject: [PATCH 13/14] Bump aws.version from 1.12.333 to 1.12.334

Bumps `aws.version` from 1.12.333 to 1.12.334.

Updates `aws-java-sdk-transcribe` from 1.12.333 to 1.12.334
- [Release notes](https://github.com/aws/aws-sdk-java/releases)
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.333...1.12.334)

Updates `aws-java-sdk-s3` from 1.12.333 to 1.12.334
- [Release notes](https://github.com/aws/aws-sdk-java/releases)
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.333...1.12.334)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-transcribe
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] 
---
 tika-parent/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tika-parent/pom.xml b/tika-parent/pom.xml
index 07c232d5d2..788915b724 100644
--- a/tika-parent/pom.xml
+++ b/tika-parent/pom.xml
@@ -296,7 +296,7 @@
 
     
     2.14.0
-    1.12.333
+    1.12.334
     9.4
     1.1.0
     

From f6d80dfe1c620c6fd7cbbac2852c4dded1301277 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 3 Nov 2022 05:08:31 +0000
Subject: [PATCH 14/14] Bump maven-release-plugin from 3.0.0-M6 to 3.0.0-M7

Bumps [maven-release-plugin](https://github.com/apache/maven-release) from 3.0.0-M6 to 3.0.0-M7.
- [Release notes](https://github.com/apache/maven-release/releases)
- [Commits](https://github.com/apache/maven-release/compare/maven-release-3.0.0-M6...maven-release-3.0.0-M7)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-release-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] 
---
 tika-parent/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tika-parent/pom.xml b/tika-parent/pom.xml
index 07c232d5d2..9eb12c35a6 100644
--- a/tika-parent/pom.xml
+++ b/tika-parent/pom.xml
@@ -1047,7 +1047,7 @@
       
         org.apache.maven.plugins
         maven-release-plugin
-        3.0.0-M6
+        3.0.0-M7
         
           true